Mein gesamtes System stürzt ab, nachdem ich die Konfiguration geändert habe, um das Geo-Standortfeld hinzuzufügen.Logstash Geolocation funktioniert nicht richtig
Mein System läuft einwandfrei, wenn mein Config wie folgt aussieht:
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 }
}
Aber wenn ich den Code zu meinem Filter
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 }
}
hinzufügen kann ich den curl Befehl ausführen und die korrekte Ausgabe erhalten
curl http://localhost:9200/logstash-2016.04.19/_mapping/system/field/geoip.location?pretty
und zurückgegeben:
{
"logstash-2016.04.19" : {
"mappings" : {
"system" : {
"geoip.location" : {
"full_name" : "geoip.location",
"mapping" : {
"location" : {
"type" : "geo_point"
}
}
}
}
}
}
}
Aber anstatt etwas zu bekommen, hört mein logstash auf, vom syslog zu lesen.
Irgendwelche Vorschläge?
Sie sehen auch nichts von Ihrer stdout {} Ausgabe? –
Anstatt so viele Groks (von denen jede eine kleine Regexp gegen Ihr größeres Nachrichtenfeld ausführt), suchen Sie nach einer Möglichkeit, eine einzelne Regexp anzuwenden. Möglicherweise können Sie auch den kv {} - Filter verwenden, um die Zeichenfolge zu analysieren. –
Ich sehe nichts von meinem Stand {}. Ich habe die Grows miteinander kombiniert, aber wenn ich das tue, stirbt alles. Ich muss den kv {} Filter nachsehen. –