Ci sono sempre nuove opzioni per il problema della data, aggiungendo solo un paio di righe.
La mia soluzione arriva aggiungendo un file a /etc/rsyslog.d/
, ad esempio myrsyslog.conf
, quindi aggiungi il formato che preferisci, il mio è:
$template myformat,"%TIMESTAMP:1:10:date-rfc3339% %TIMESTAMP:19:12:date-rfc3339% %syslogtag%%msg%\n"
$ActionFileDefaultTemplate myformat
questo applicherà il nuovo formato ai tuoi log rendendone facile l'analisi.
prima
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 ...
dopo
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...
Anche se hai trovato una soluzione diversa, do una risposta per gli altri.
Modifica il tuo file di configurazione syslog (su Debian per esempio:/etc/syslog-ng/syslog-ng.conf
).
Quindi dichiara un nuovo modello come questo :
template template_date_format { template("${YEAR}-${MONTH}-${DAY} ${HOUR}:${MIN}:${SEC} ${HOST} ${MSGHDR}${MSG}\n"); template_escape(no); };
Questo è un esempio, ma puoi utilizzare macro diverse in base alla documentazione di syslog collegata nella risposta di user9645.
Successivamente, trova in questo file di configurazione tutti i file di cui desideri modificare il formato di output e applica loro questo modello.
Ad esempio, voglio cambiare /var/log/auth.log
formato di output, quindi cambio :
destination d_auth { file("/var/log/auth.log"); };
a :
destination d_auth { file("/var/log/auth.log" template(template_date_format)); };
Quindi riavviare syslog (service syslog-ng restart
) e prova un login per vedere le modifiche nel tuo auth.log
.
Ho riscontrato lo stesso problema utilizzando FreeBSD 9.2 e Zabbix GUI del monitor di sistema che non è in grado di gestire cose come 'Jan' o 'Feb' nel timbro della data (!) sui messaggi di log di sistema.
Quello che ho fatto è stato installare il sysutils/syslog-ng
port e usa convert-syslogconf.awk script per migrare il mio /etc/syslog.conf
a /usr/local/etc/syslog-ng.conf
(che per fortuna sembrava funzionare bene anche con una configurazione abbastanza complessa) e ha aggiunto questo modello di formattazione personalizzato a tutti i file()
destinazioni:
template t_msgfmt {
template("${ISODATE} ${HOST} ${FACILITY} ${LEVEL} ${MSGHDR}${MSG}\n");
template_escape(no);
};
Puoi trovare (molte) più informazioni sulla formattazione nella sezione 11.1 del manuale di syslog-ng . Sta funzionando bene per me (finora) spero che ti aiuti!