Ich versuche, das Zeitformat des Apache-Fehlerprotokolls in Fluentd zu konvertieren, um es als Zeitstempel für Kibana zu verwenden.
Es gibt ein Feld „Zeit" mit Zeitstempel aus dem Fehlerprotokoll.
Ich verwende die nächste Konfiguration dafür
<filter apache.**>
@type record_transformer
enable_ruby
<record>
# timestamp ${Time.at(time).utc.strftime('%Y-%m-%dT%H:%M:%S%z')}
# or
# timestamp ${time.strftime('%Y-%m-%dT%H:%M:%S%z')}
# or
timestamp ${time.iso8601}
</record>
remove_keys time
</filter>
Aber alle drei Versionen konvertieren falsch (Uhrzeit und Tag stimmen nicht überein): „May 03 08:04:19.147574 2021" zu „1993-10-24T22:41:18+00:00"
Dieselbe Konfiguration ist für Apache-Zugriffsprotokolle in Ordnung.
Vielen Dank für Ihre Vorschläge.
Lösung des Problems
Für mich funktioniert das Hinzufügen von time_key zu Elasticsearch. Danach setzt Elastic das Zeitstempelfeld time vom Schlüssel "time" ein. Ich habe nicht diesen ganzen Abschnitt wie Sie: record_transformer
<match example>
@type elasticsearch
host XX.XX.XX.XX
port 9200
time_key time
</match>
Keine Kommentare:
Kommentar veröffentlichen