¿Cómo iniciar sesión con systemd?

11

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.compero 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.2etc. , 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
htor
fuente
1
Incluya su versión de systemd, así como su sistema operativo y versión.
Mark Stosberg
1
Revisar man journald.confpara 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.
Mark Stosberg

Respuestas:

6

Aumento de almacenamiento

Si está almacenando en el disco, puede aumentar la cantidad de espacio utilizado cambiando SystemMaxUsey / o SystemKeepFree. 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 SystemMaxFileSizevalor, y el número de diarios está controlado por SystemMaxFiles. Si prefiere la rotación basada en el tiempo, puede establecer a MaxFileSecpara 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 ForwardToSyslogopció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í.

DougC
fuente