2016-04-19 5 views
0

ジオロケーションフィールドを追加するように設定を変更すると、システム全体がクラッシュします。Logstashジオロケーションが正しく機能しない

input { 
syslog 
{ 
    host => "localhost4" 
    port => 5140 
    type => "system" 
} 


} 
filter { 

grok { match => { message => [ ".*ipaddr: %{IP:ipaddr}.*" ] }} 
grok { match => { message => [ ".*dnsname: %{HOSTNAME:query_name}.*" ] }} 
grok { match => { message => [ ".*mal_rank: %{NUMBER:malrank:int}.*" ] }} 
grok { match => { message => [ ".*packet_size: %{NUMBER:packetsize:int}.*" ] }} 
grok { match => { message => [ ".*source_ip: %{IP:sourceip}.*" ] }} 
grok { match => { message => [ ".*dest_ip: %{IP:dest_ip}.*" ] }} 
grok { match => { message => [ ".*source_ip: %{IP:src_ip}.*" ] }} 
grok { match => { message => [ ".*sport: %{NUMBER:sport:int}.*" ] }} 

} 

output { 

elasticsearch { hosts => ["localhost4:9200"] } 
stdout { codec => rubydebug } 
} 

しかし、私は

input { 
syslog 
{ 
    host => "localhost4" 
    port => 5140 
    type => "system" 
} 


} 
filter { 

grok { match => { message => [ ".*ipaddr: %{IP:ipaddr}.*" ] }} 
grok { match => { message => [ ".*dnsname: %{HOSTNAME:query_name}.*" ] }} 
grok { match => { message => [ ".*mal_rank: %{NUMBER:malrank:int}.*" ] }} 
grok { match => { message => [ ".*packet_size: %{NUMBER:packetsize:int}.*" ] }} 
grok { match => { message => [ ".*source_ip: %{IP:sourceip}.*" ] }} 
grok { match => { message => [ ".*dest_ip: %{IP:dest_ip}.*" ] }} 
grok { match => { message => [ ".*source_ip: %{IP:src_ip}.*" ] }} 
grok { match => { message => [ ".*sport: %{NUMBER:sport:int}.*" ] }} 

geoip { 
    source => "ipaddr" 
    target => "geoip" 
    add_tag => ["geoip"] 
    database => "/etc/logstash/GeoLiteCity.dat" 
} 
} 

output { 

elasticsearch { hosts => ["localhost4:9200"] } 
stdout { codec => rubydebug } 
} 

私のフィルターにコードを追加したとき、私はcurlコマンドを実行し、正しい出力を得ることができます

:私の設定は次のようになりますとき

私のシステムが正常に動作します

curl http://localhost:9200/logstash-2016.04.19/_mapping/system/field/geoip.location?pretty 

と返さ:

{ 
    "logstash-2016.04.19" : { 
    "mappings" : { 
     "system" : { 
    "geoip.location" : { 
     "full_name" : "geoip.location", 
     "mapping" : { 
     "location" : { 
      "type" : "geo_point" 
     } 
     } 
    } 
    } 
    } 
} 
} 

しかし、何かを得る代わりに、私のlogstashはsyslogからの読み込みを停止します。

提案がありますか?

+0

stdout {}の出力に何も表示されません。 –

+0

非常に多くのgroks(それぞれが大きなメッセージフィールドに対して小さな正規表現を実行している)の代わりに、単一のregexpを適用する方法を探します。また、kv {}フィルタを使用して文字列を解析することもできます。 –

+0

私はstdout {}から何も見ていません。私は一緒にgroksを組み合わせているが、私はそれを行うときにすべてが死ぬ傾向があります。私はkv {}フィルターを調べなければなりません。 –

答えて

0

私は遅延が何であるかわかりませんが、システムが約1時間待機すると、ログの処理が再開されます。私は、このコードが正しく機能することを確認したかっただけです。

関連する問題