ich die logstash config-Datei verwenden, die ich von diesem Artikel ...Import sysdig Daten in elastische
http://logz.io/blog/sysdig-elk-stack/
Der Inhalt /etc/logstash/sysdig-logstash.conf
input {
stdin { }
}
filter {
grok {
pattern => "^%{NUMBER:num:int} %{NUMBER:time:float} %{INT:cpu:int} %{NOTSPACE:procname} %{NOTSPACE:tid} (?<direction>[<>]) %{WORD:event} %{DATA:args}$"
}
date {
match => [ "time", "UNIX" ]
}
if [args] {
kv {
source => "args"
remove_field => "args"
}
}
}
output {
#stdout { codec => rubydebug }
elasticsearch {
}
}
Wenn ich versuche, die Daten in elastisch mit logstash, erhalte ich einen Fehler zu Dump ...
# sysdig -t a "not(proc.name = sysdig)" | bin/logstash -f /etc/logstash/sysdig-logstash.conf
hat eine ungültige Konfiguration abgerufen
Was ist die korrekte Konfigurationsdatei für die Verarbeitung von sysdig-Daten?
Update:
Nach der Korrektur => kann ich den Text zu elastischen einzuloggen. Aber mit einem Problem. Die gesamte Protokollzeile wurde als Nachrichtenfeld gespeichert, wobei das in der Konfigurationsdatei erwähnte grok-Muster ignoriert wurde. Für z.B. Dies ist die Ausgabe, wenn ich stdout zu rubydebug aktiviert habe.
{
"message" => "1894246 1478069107.694757379 1 sysdig (16910) > switch next=0 pgft_maj=0 pgft_min=1658 vm_size=97364 vm_rss=7816 vm_swap=0 ",
"@version" => "1",
"@timestamp" => "2016-11-02T06:45:07.725Z",
"host" => "ip-172-31-0-192",
"tags" => [
[0] "_grokparsefailure"
]
}
Der Artikel erwähnt separate Felder für CPU, procname usw.
Stellen Sie sicher, alle Vorkommen von '= >' durch '=>' – Val
zu ersetzen Ich erhalte keinen Fehler nach der Änderung zu =>, aber ich bekomme immer noch nicht die Felder korrekt verarbeitet in elastischen. Mit anderen Worten, der Grok-Filter wird nicht angewendet, und die gesamte Zeile wird im Feld "Nachricht" angezeigt. – shantanuo