systemd (Español)/Journal (Español)
systemd tiene un sistema de registro («log») propio llamado journal. Por tanto, ya no es necesario hacer funcionar el demonio syslog. Para leer el registro, utilice:
# journalctl
En Arch Linux, el directorio /var/log/journal/
es parte del paquete systemd, y journal (cuando Storage=
está definido a auto
en /etc/systemd/journald.conf
) escribirá en /var/log/journal/
. Si usted o algún programa eliminan ese directorio, systemd no lo volverá a crear automáticamente y en su lugar escribirá sus registros en /run/systemd/journal
de una manera no persistente. Sin embargo, la carpeta se volverá a crear cuando establezca Storage=persistent
y reinicie systemd-journald.service
(o reinicie el equipo).
El journald de systemd clasifica los mensajes por #Nivel de prioridad y #Nivel del recurso. La clasificación del registro corresponde al protocolo clásico de Syslog (RFC 5424).
Nivel de prioridad
Se utiliza el código de severidad de syslog (en systemd llamado prioridad) para marcar la importancia de un mensaje RFC 5424 Section 6.2.1.
Valor | Severidad | Palabra clave | Descripción | Ejemplos |
---|---|---|---|---|
0 | Emergencia | emerg | El sistema está inutilizable | Bug importante del kernel, núcleo de systemd volcado. Este nivel no debe ser utilizado por las aplicaciones. |
1 | Alerta | alert | Debe corregirse inmediatamente | El subsistema vital parece no funcionar. Pérdida de datos. kernel: BUG: unable to handle kernel paging request at ffffc90403238ffc . |
2 | Crítico | crit | Condiciones criticas | Quiebra, volcado del núcleo. Tales como:systemd-coredump[25319]: Process 25310 (plugin-containe) of user 1000 dumped core Error en la aplicación principal del sistema, como X11. |
3 | Error | err | Condiciones de error | Se informa de error no grave: , , ). |
4 | Advertencia | warning | Puede indicar que se producirá un error si no se toman medidas. | Un sistema de archivos no root tiene solo 1GB libre.org.freedesktop. Notifications[1860]: (process:5999): Gtk-WARNING **: Locale not supported by C library. Using the fallback 'C' locale . |
5 | Aviso | notice | Eventos que son inusuales, pero que no presuponen un error. | . . |
6 | Informativo | info | Mensajes de operaciones normales que no requieren ninguna acción. | . |
7 | Depuración errores | debug | Información útil para los desarrolladores para depurar errores de la aplicación. | . |
Si no puede encontrar un mensaje en el nivel de prioridad esperado, puede buscar también un par de niveles por encima y por debajo: estas reglas son recomendaciones y el desarrollador de la aplicación afectada puede tener una percepción diferente de la importancia del problema con respecto a la suya.
Nivel del recurso
Se utiliza un código de recursos de syslog para especificar el tipo de programa que está registrando el mensaje RFC 5424 Section 6.2.1.
Código del recurso | Palabra clave | Descripción | Información |
---|---|---|---|
0 | kern | mensajes del kernel | |
1 | user | mensajes a nivel de usuario | |
2 | sistema de correo | El arcaico POSIX todavía se admite y se usa a veces (para más información ) | |
3 | daemon | demonios del sistema | Todos los demonios, incluyendo systemd y sus subsistemas |
4 | auth | mensajes de seguridad/autorización | También tenga en cuenta los diferentes recursos del código 10 |
5 | syslog | mensajes generados internamente por syslogd | Para las implementaciones de syslogd (no utilizadas por systemd, consulte el código 3) |
6 | lpr | impresora de línea]] (subsistema arcaico) | |
7 | news | subsistema de noticias de la red (subsistema arcaico) | |
8 | uucp | subsistema UUCP (subsistema arcaico) | |
9 | demonio para el reloj del sistema | systemd-timesyncd | |
10 | authpriv | mensajes de seguridad/autorización | También tenga en cuenta los diferentes recursos del código 4 |
11 | ftp | subsistema FTP | |
12 | - | subsistema NTP | |
13 | - | auditoría de registro | |
14 | - | alerta de registro | |
15 | cron | demonio de programación | |
16 | local0 | uso local 0 (local0) | |
17 | local1 | uso local 1 (local1) | |
18 | local2 | uso local 2 (local2) | |
19 | local3 | uso local 3 (local3) | |
20 | local4 | uso local 4 (local4) | |
21 | local5 | uso local 5 (local5) | |
22 | local6 | uso local 6 (local6) | |
23 | local7 | uso local 7 (local7) |
Por lo tanto, son códigos útiles para observar: 0,1,3,4,9,10,15.
Filtrar la salida
journalctl le permite filtrar los resultados por campos específicos. Tenga en cuenta que si hay muchos mensajes para mostrar o el filtrado que hay que hacer abarca mucho tiempo, la salida de esta orden puede retrasarse durante bastante tiempo.
Ejemplos:
- Mostrar todos los mensajes del arranque: Sin embargo, a veces a uno le interesan no los mensajes actuales, sino los mensajes desde el arranque anterior (por ejemplo, si ocurrió un fallo del sistema irrecuperable). Esto es posible pasando el parámetro : muestra los mensajes del arranque actual,
journalctl -b -1
muestra los mensajes del arranque anterior,journalctl -b -2
muestra los mensajes desde los dos últimos arranques y así sucesivamente. Véase para una descripción completa, dado que los argumentos que se pueden pasar a la orden hacen que el filtrado pueda ser mucho más potente. - Mostrar todos los mensajes de fecha (y hora opcional):
- Mostrar todos los mensajes desde hace 20 minutos:
- Seguir los mensajes nuevos:
- Mostrar todos los mensajes por un ejecutable específico:
- Mostrar todos los mensajes para un proceso específico:
- Mostrar todos los mensajes por una unidad específica:
- Mostrar el búfer del kernel
- Mostrar solo mensajes de error, críticos y de prioridad de alerta
# journalctl -p err..alert
También se pueden usar números, . Si se utiliza un solo número/palabra clave,journalctl -p 3
—también se incluyen todos los niveles de prioridad más altos—. - Mostrar el equivalente de auth.log para filtrar en el código de instalación de syslog:
- Si el directorio de journal (de manera predeterminada, ubicado en ) contiene una gran cantidad de datos de registro, entonces puede tardar varios minutos en filtrar la salida. Puede acelerarlo significativamente usando la opción para forzar a a buscar solo en el journal más reciente:
Véase , o esta entrada de blog de Lennert para obtener más detalles.
$ strings /mnt/arch/var/log/journal/af4967d77fba44c6b093d0e9862f6ddd/system.journal | grep -i ''message''
Límite del tamaño de journal
Si journal se ha creado como permanente (no volátil), el límite de su tamaño se establece con un valor predeterminado correspondiente al 10% del tamaño del sistema de archivos pero limitado a 4 GiB. Por ejemplo, con alojado en una partición raíz de 20 GiB, esto permitiría almacenar hasta 2 GiB de datos en journal. En una de 50 GiB, tendría un máximo de 4 GiB.
El tamaño máximo del journal permanente puede ser controlado descomentando y modificando la correspondiente línea:
También es posible utilizar el mecanismo de sobrescribir la configuración con fragmentos insertados en lugar de editar el archivo de configuración global. En este caso, no olvide colocar el reemplazo debajo del encabezado de :
Reinicie el servicio systemd-journald.service
después de cambiar esta configuración para aplicar inmediatamente el nuevo límite.
Vea para más información.
Limpiar manualmente archivos journal
Los archivos journal se pueden eliminar globalmente de /var/log/journal/
utilizando por ejemplo , o se pueden recortar de acuerdo con varios criterios usando . Ejemplos:
- Eliminar los archivos journal archivados hasta que el espacio en disco que utilizan esté por debajo de 100M:
- Hacer que todos los archivos journal no contengan datos de más de 2 semanas.
Vea para más información.
Journald coexistiendo con syslog
La compatibilidad con una implementación clásica, syslog, no reconocida por journald, se puede proporcionar al permitir que systemd reenvíe todos los mensajes a través del socket . Para hacer que el demonio syslog funcione con journal, debe vincularse a este socket en lugar de a /dev/log
(anuncio oficial).
El journald.conf
predeterminado para reenviar al socket es para evitar la sobrecarga del sistema, porque rsyslog o syslog-ng tiran de los mensajes de journal por sí mismo.
Vea Syslog-ng#Overview y Syslog-ng#syslog-ng and systemd journal, o rsyslog respectivamente, para obtener detalles sobre la configuración.
Reenviar journald a /dev/tty12
Cree un directorio inclusivo y cree un archivo en él:
Depués reinicie systemd-journald.service
.
Especificar un journal diferente para visulizar
Puede ser necesario verificar los registros de un sistema inoperativo, arrancado desde un sistema live para recuperar un sistema operativo. En tal caso, se puede montar el disco, por ejemplo en , y especificar la ruta de journal a través de /, así:
$ journalctl -D /mnt/var/log/journal -xe