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からの読み込みを停止します。
提案がありますか?
stdout {}の出力に何も表示されません。 –
非常に多くのgroks(それぞれが大きなメッセージフィールドに対して小さな正規表現を実行している)の代わりに、単一のregexpを適用する方法を探します。また、kv {}フィルタを使用して文字列を解析することもできます。 –
私はstdout {}から何も見ていません。私は一緒にgroksを組み合わせているが、私はそれを行うときにすべてが死ぬ傾向があります。私はkv {}フィルターを調べなければなりません。 –