Es gibt immer neue Optionen für das Datumsproblem, indem nur ein paar Zeilen hinzugefügt werden.
Meine Lösung besteht darin, eine Datei zu /etc/rsyslog.d/
hinzuzufügen , zum Beispiel myrsyslog.conf
, dann fügen Sie das Format Ihrer Wahl hinzu, meins ist:
$template myformat,"%TIMESTAMP:1:10:date-rfc3339% %TIMESTAMP:19:12:date-rfc3339% %syslogtag%%msg%\n"
$ActionFileDefaultTemplate myformat
Dadurch wird das neue Format auf Ihre Protokolle angewendet, was das Parsen erleichtert.
vorher
Sep 3 12:52:37 whs dhcpcd[477]: wlan0: expired address ...
Sep 3 12:52:37 whs dhcpcd[477]: wlan0: part of Router Advertisement expired
Sep 3 12:52:37 whs dhcpcd[477]: wlan0: deleting route to ...
nach
2020-09-03 13:00:49 systemd[1]: rsyslog.service: Succeeded.
2020-09-03 13:00:49 systemd[1]: Stopped System Logging Service.
2020-09-03 13:00:49 systemd[1]: Starting System Logging Service...
Auch wenn Sie eine andere Lösung gefunden haben, gebe ich eine Antwort für andere.
Bearbeiten Sie Ihre Syslog-Konfigurationsdatei (unter Debian zum Beispiel:/etc/syslog-ng/syslog-ng.conf
).
Deklarieren Sie dann eine neue Vorlage wie folgt:
template template_date_format { template("${YEAR}-${MONTH}-${DAY} ${HOUR}:${MIN}:${SEC} ${HOST} ${MSGHDR}${MSG}\n"); template_escape(no); };
Dies ist ein Beispiel, aber Sie können verschiedene Makros gemäß der Syslog-Dokumentation verwenden, die in der Antwort von user9645 verlinkt ist.
Suchen Sie danach in dieser Konfigurationsdatei alle Dateien, für die Sie das Ausgabeformat ändern möchten, und wenden Sie diese Vorlage auf sie an.
Zum Beispiel möchte ich /var/log/auth.log
ändern Ausgabeformat, dann ändere ich :
destination d_auth { file("/var/log/auth.log"); };
zu :
destination d_auth { file("/var/log/auth.log" template(template_date_format)); };
Starten Sie dann Syslog neu (service syslog-ng restart
) und versuchen Sie, sich anzumelden, um die Änderungen in Ihrem auth.log
zu sehen .
Ich hatte das gleiche Problem mit FreeBSD 9.2 und Zabbix Systemmonitor-GUI, die Dinge wie 'Jan' oder 'Feb' im Datumsstempel (!) der Systemprotokollmeldungen nicht verarbeiten kann.
Ich habe sysutils/syslog-ng
installiert Port und verwenden Sie die convert-syslogconf.awk Skript zum Migrieren meines /etc/syslog.conf
bis /usr/local/etc/syslog-ng.conf
(was zum Glück auch mit einer ziemlich komplexen Konfiguration gut zu funktionieren schien) und fügte diese benutzerdefinierte Formatierungsvorlage zu allen file()
hinzu Ziele:
template t_msgfmt {
template("${ISODATE} ${HOST} ${FACILITY} ${LEVEL} ${MSGHDR}${MSG}\n");
template_escape(no);
};
Sie können (viele) weitere Formatierungsinformationen im Abschnitt 11.1 des syslog-ng-Handbuchs finden . Es funktioniert gut für mich (bisher) hoffe es hilft dir!