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?
tanx, ich mache es. Filter { # Spiel Datum und Uhrzeit Datum { "match" => [ "mdate", "MMMM dd JJJJ, HH: mm: ss.SSS"] "Ziel" => "mdate" } } –