Ich habe einen Logstash-Server, der Ereignisse an einen Elasticsearch-Server sendet, der die Ergebnisse in Kibana anzeigt. Alles funktioniert ziemlich gut, abgesehen davon, dass Kibana 2 Namen im Host-Feld anzeigt. Ich verwende den folgenden Grok-Filter in Logstash.
^(?:<%{POSINT:syslog_pri}>)?%{SYSLOGTIMESTAMP:timestamp} %{IPORHOST:host} (?:%{PROG:program}(?:\[%{POSINT:pid}\])?: )?%{GREEDYDATA:message}
Wenn ich den Grok-Debugger verwende, wird alles korrekt analysiert. Wenn ich es mir jedoch in Kibana ansehe, wird Folgendes angezeigt:
"host": [
"logstash1",
"servername.domain.com"
],
Wobei logstash1 der Name meines Logstash-Servers ist, der die Analyse durchführt und an Elasticsearch sendet. Ich bin nicht sicher, warum sowohl der Logstash-Server als auch die eigentliche Quelle als Host angezeigt werden. Wie kann ich logstash1 aus dem Host-Feld entfernen? Ein Beispiel für die Protokolle sind:
Dec 18 00:00:08 servername.domain.com pam_rhosts_auth[24233]: allowed to [email protected] as user1
Antwort1
Option zum Überschreiben der Kassehttp://logstash.net/docs/1.3.1/filters/grok#overwrite
grok{
...
overwrite => [ "host" ]
...
}