2017-10-22 3 views
0

Ich brauche lesen Nachrichten (Inhalt ist Logs) von rabbitMq von Logstash und dann senden, dass elasticsearch für die Visualisierung in Kibana visualisieren. so schrieb ich Eingang für Lese von rabbitmq in logstash wie folgt aus:elastic stack: Ich brauche Zeit Filter Feldname mit einem anderen Feld

input { 
    rabbitmq { 
    queue => "testLogstash" 
    host => "localhost" 
    } 
} 

und ich schrieb Ausgangskonfiguration für Speicher in Elasticsearch in logstash wie folgt aus:

output { 
elasticsearch{ 
    hosts => "http://localhost:9200" 
      index => "d13-%{+YYYY.MM.dd}" 
} 
} 

Beide platziert sind in myConf.conf

im Inhalt jeder Nachricht gibt es eine Json, die die Felder wie folgt enthält:

{ 
    "mDate":"MMMM dd YYYY, HH:mm:ss.SSS" 
    "name":"test name" 
} 

Aber es gibt zwei Probleme. Erstens gibt es im Feld zum Erstellen eines neuen Indexes (Feldname des Zeitfilters) kein Datumsfeld. Zweitens benutze ich den gleichen Zeitstempel wie der Standard @ Zeitstempel, dieses Feld wird nicht im Build-Typ von Graphen angezeigt. Ich denke, der Grund dafür liegt am Datentyp des Feldes. Das Feld hat den Typ date, aber die Zeichenfolge wird berücksichtigt.

ich versuche Wert des Feldes durch mutieren in logstash Config wie dies bisher zu konvertieren:

filter { 
    mutate { 
    convert => { "mdate" => "date" } 
    } 
} 

Jetzt entstehen zwei Fragen: 1- Ist das das Problem? Wenn ja Was ist die richtige Lösung, um es zu beheben? 2- Mein Hauptbedarf besteht darin, die Zeit zu verwenden, in der Nachrichten in die Warteschlange eingegeben werden, nicht wenn Logstash sie übernimmt. Was ist die beste Lösung?

Antwort

0

Wenn Sie keinen Wert für @timestamp angeben, sollten Sie die aktuelle Systemzeit ermitteln, wenn elasticsearch das Dokument indiziert. Damit solltest du Gegenstände in Kibana sehen können.

Wenn ich Sie richtig verstehe, verwenden Sie lieber mDate Feld für @timestamp. Verwenden Sie dazu die date{} filter im Logstash.

+0

tanx, ich mache es. Filter { # Spiel Datum und Uhrzeit Datum { "match" => [ "mdate", "MMMM dd JJJJ, HH: mm: ss.SSS"] "Ziel" => "mdate" } } –

Verwandte Themen