Siempre hay nuevas opciones para el problema de la fecha, agregando solo un par de líneas.
Mi solución viene agregando un archivo a /etc/rsyslog.d/
, por ejemplo myrsyslog.conf
, luego agregue el formato de su elección, el mío es:
$template myformat,"%TIMESTAMP:1:10:date-rfc3339% %TIMESTAMP:19:12:date-rfc3339% %syslogtag%%msg%\n"
$ActionFileDefaultTemplate myformat
esto aplicará el nuevo formato a sus registros, lo que facilitará su análisis.
antes
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 ...
después
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...
Incluso si encontró una solución diferente, doy una respuesta para los demás.
Edite su archivo de configuración de syslog (en Debian, por ejemplo:/etc/syslog-ng/syslog-ng.conf
).
Luego declare una nueva plantilla como esta:
template template_date_format { template("${YEAR}-${MONTH}-${DAY} ${HOUR}:${MIN}:${SEC} ${HOST} ${MSGHDR}${MSG}\n"); template_escape(no); };
Este es un ejemplo, pero puede usar diferentes macros de acuerdo con la documentación de syslog vinculada en la respuesta del usuario 9645.
Después de eso, busque en este archivo de configuración, todos los archivos a los que desea cambiar el formato de salida y aplíqueles esta plantilla.
Por ejemplo, quiero cambiar /var/log/auth.log
formato de salida, luego cambio:
destination d_auth { file("/var/log/auth.log"); };
a :
destination d_auth { file("/var/log/auth.log" template(template_date_format)); };
Luego reinicie syslog (service syslog-ng restart
) e intente iniciar sesión para ver los cambios en su auth.log
.
Tuve el mismo problema con FreeBSD 9.2 y Zabbix GUI del monitor del sistema que no puede manejar cosas como 'Jan' o 'Feb' en la marca de fecha (!) en los mensajes de registro del sistema.
Lo que hice fue instalar el sysutils/syslog-ng
y use el convert-syslogconf.awk script para migrar mi /etc/syslog.conf
a /usr/local/etc/syslog-ng.conf
(que afortunadamente parecía funcionar bien incluso con una configuración bastante compleja) y agregó esta plantilla de formato personalizado a todos los file()
destinos:
template t_msgfmt {
template("${ISODATE} ${HOST} ${FACILITY} ${LEVEL} ${MSGHDR}${MSG}\n");
template_escape(no);
};
Puede encontrar (mucha) más información de formato en la sección 11.1 del manual de syslog-ng . Me está funcionando bien (hasta ahora), ¡espero que te ayude!