GOOGLE ADS

Montag, 2. Mai 2022

Konvertieren Sie das Zeitformat der Apache-Fehlerprotokolle in Fluentd

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

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...