Estoy ejecutando una aplicación de nodo usando systemd con un archivo de unidad. El registro de aplicaciones se puede ver usando, journalctl -u example.com
pero el registro se corta en algún momento, borrando el historial (que necesito para la depuración).
¿Cómo configuro la rotación de registros con systemd para que los registros de mi aplicación se almacenen example.com.log.1
, example.com.log.2
etc. , para poder consultar el historial de mi aplicación?
Este es mi archivo de unidad:
ExecStart=/usr/bin/node keystone.js
#Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=example.com
User=user
Group=user
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
man journald.conf
para revisar las opciones que controlan el espacio en disco del diario systemd. Si aún tiene una pregunta, publique el contenido de su/etc/systemd/journald.conf
.Respuestas:
Aumento de almacenamiento
Si está almacenando en el disco, puede aumentar la cantidad de espacio utilizado cambiando
SystemMaxUse
y / oSystemKeepFree
. Tener más espacio permitiría almacenar más entradas.Por defecto, el límite de uso máximo (
SystemMaxUse
) es del 10% del sistema de archivos, y el valor mínimo de espacio libre (SystemKeepFree
) es del 15%, aunque ambos tienen un límite de 4G.Rotación de diario
Los diarios deben rotarse automáticamente cuando alcanzan el
SystemMaxFileSize
valor, y el número de diarios está controlado porSystemMaxFiles
. Si prefiere la rotación basada en el tiempo, puede establecer aMaxFileSec
para establecer el tiempo máximo de entradas almacenadas en un único diario.Nota sobre la ubicación / tipo de almacenamiento
Con journald puede elegir almacenar las entradas de diario en la memoria (
Storage=volatile
) o en el disco (Storage=persistent
). Lo anterior supone que está almacenando diarios en el disco; si este no es el caso, "Sistema" deberá ser reemplazado por "Tiempo de ejecución" en las variables anteriores.Más detalles están disponibles en
man journald.conf
.Alternativa: pasar las entradas del diario
Si ya está familiarizado con el demonio SYSLOG tradicional, puede pasar los eventos del diario configurando la
ForwardToSyslog
opción (que reenvía los mensajes de inmediato) o hacer que el demonio syslog funcione como un cliente de diario y obtenga los registros en sí.fuente