Administre mensajes de registro en Systemd usando JournalCTL [Guía integral]

Administre mensajes de registro en Systemd usando JournalCTL [Guía integral]

System es un sistema de servicio y administrador de servicios para sistemas Linux: un reemplazo de demonio init con el objetivo de iniciar procesos en paralelo en el arranque del sistema. Ahora se respalda en una serie de distribución actual de la corriente principal, incluidas Fedora, Debian, Ubuntu, OpenSuse, Arch, Rhel, Centos, etc.

Anteriormente, explicamos la historia detrás de 'init' y 'systemd'; donde discutimos cuáles son los dos demonios, por qué 'en eso'Técnicamente debía ser reemplazado'system'así como las características principales de Systemd.

Una de las principales ventajas de Systemd sobre otros sistemas de inicio comunes es el soporte para la gestión centralizada del sistema y la registro de procesos utilizando una revista. En este artículo, aprenderemos cómo administrar y ver los mensajes de registro en Systemd usando Journalctl Comando en Linux.

Importante: Antes de avanzar más en esta guía, es posible que desee aprender cómo administrar los servicios y unidades 'Systemd' utilizando el comando 'SystemCTL', y también crear y ejecutar nuevas unidades de servicio en Systemd utilizando scripts de shell en Linux. Sin embargo, si está de acuerdo con todo lo anterior, continúe leyendo.

Configuración de Journald para recopilar mensajes de registro en Systemd

diario es un demonio que se reúne y escribe entradas de diario desde todo el sistema; Estos son esencialmente mensajes de arranque, mensajes desde el núcleo y de syslog o varias aplicaciones y almacena todos los mensajes en una ubicación central - archivo de revista.

Puedes controlar el comportamiento de diario a través de su archivo de configuración predeterminado: /etc/systemd/Journald.confusión que se genera en el momento de la compilación. Este archivo contiene opciones cuyos valores pueden cambiar para cumplir con sus requisitos de entorno local.

A continuación se muestra una muestra de cómo se ve el archivo, visto usando el comando CAT.

$ Cat/Etc/Systemd/Journald.confusión 
Archivo de configuración de Journald
# Ver Journald.conf (5) para más detalles. [Journal] #Storage = Auto #compress = sí #sell = sí #splitmode = uid #syncintervalsec = 5m #ratelimitinterval = 30s #ratelimitburst = 1000 #systemmaxuse = #systemkeepfree = #systemmaxfilesize = #systemmaxfiles = 100 #runtimeMaxuse = #runtimekeepfree = = #RuntimeMaxFilesize = #runtimeMaxFiles = 100 #maxretentionsec = #maxfileseC = 1Month #flowtosysLog = yes #flowTokmsg = no #flowToconsole = no #hacia adelante MaxLevelConsole = info #maxlevelwall = emerg 

Tenga en cuenta que varios paquetes instalan y usan extractos de configuración en /usr/lib/systemd/*.confusión.d/ y las configuraciones de tiempo de ejecución se pueden encontrar en /Run/Systemd/Journald.confusión.d/*.confusión que no necesariamente usa.

Habilitar el almacenamiento de datos de la revista en el disco

Varias distribuciones de Linux, incluida Ubuntu y sus derivadas como Linux Mint, no habilitan el almacenamiento persistente de mensajes de arranque en el disco por defecto.

Es posible habilitar esto estableciendo el "Almacenamiento"Opción para"persistente" Como se muestra abajo. Esto creará el /var/log/Journal directorio y todos los archivos de revista se almacenarán en él.

$ sudo vi/etc/systemd/Journald.conf o $ sudo nano/etc/systemd/Journald.confusión 
[Journal] Storage = Persistente 

Para configuraciones adicionales, encuentre el significado de todas las opciones que se supone que deben estar configuradas en el "[Diario]" Sección mediante la escritura.

$ Man Journald.confusión 

Configuración del tiempo correcto del sistema usando el comando Timedatectl

Para una gestión de registro confiable en Systemd utilizando el servicio de Journald, asegúrese de que la configuración de tiempo, incluida la zona horaria, sea correcta en el sistema.

Para ver la configuración actual de fecha y hora en su sistema, escriba.

$ Timedatectl o $ Timedatectl Status Hora local: Jue 2017-06-15 13:29:09 Eat Tiempo universal: Jue 2017-06-15 10:29:09 UTC RTC Hora: Jue 2017-06-15 10:29:09 Zona horaria: África/Kampala (EAT, +0300) Tiempo de red en: Sí NTP Sincronizado: Sí RTC en TZ local: No 

Para establecer la zona horaria correcta y posiblemente el tiempo del sistema, use los comandos a continuación.

$ sudo timedatectl set-timezone africa/kampala $ sudo timedatectl tiempo de ajuste "13:50:00" 

Visualización de mensajes de registro utilizando el comando JournalCTL

Journalctl es una utilidad utilizada para ver el contenido del SystemD Journal (que está escrito por el servicio Journald).

Para mostrar todos los registros recopilados sin ningún filtrado, escriba.

$ JournalCtl 
Ver mensajes de registro
-- Los registros comienzan en el miércoles 2017-06-14 21:56:43 EAT, termine en el Jus 2017-06-15 12:28:19 Eat 14 de junio 21:56:43 TecMint Systemd-Journald [336]: Runtime Journal (/Run /Log/Journal 14 de junio 21:56:43 Tecmint Kernel: Inicialización de cgroup subsys cpuset cpuset CPUSET 21:56:43 Tecmint Kernel: Inicialización de la CPU subsys CPU de junio de junio 21:56:43 Tecmint Kernel: Inicialización de CPROUPS CPUACCT Jun 14 21 21: 56:43 Tecmint Kernel: Linux versión 4.4.0-21-Generic ([correo electrónico protegido]) 14 de junio 21:56:43 Tecmint Kernel: Command Line: Boot_image =/Boot/VMlinuz-4.4.0-21- 14 de junio 21:56:43 Tecmenta Núcleo: Kernel compatible con CPU: 14 de junio 21:56:43 Tecmenta Núcleo: Intel Genuineintel 14 de junio 21:56:43 Tecmenta núcleo: AMD Autenticamd 14 de junio 21:56:43 Tecmint Kernel: Centauro Centaurhauls 14 de junio 21:56:43 Tecmint Kernel: x86/fpu: xstate_offset [2]: 576, xstate_sizes [2] 14 de junio 21:56:43 Tecmint Kernel: x86/fpu: soporte de la característica xsave 0x01: 'x87 Flo 14 de junio 21:56:43 Tecmint Kernel: x86/fpu: soporte de la función XSave 0x02: 'SSE Reg 14 de junio 21:56:43 Tecmint Kernel: x86/fpu: soporte de la característica xsave 0x04:' Avx Reg 14 21:56 : 43 Tecmint Kernel: x86/fpu: características de Xstate habilitadas 0x7, contexto SI 14 de junio 21:56:43 Tecmint Kernel: x86/fpu: Uso de interruptores de contexto 'ansiosos'. 14 de junio 21:56:43 Tecmint Kernel: E820: Mapa de RAM físico proporcionado por BIOS: 14 de junio 21:56:43 Tecmenta Núcle E820: [MEM 0x000000000000090000-0X00000000000 14 JUN 21:56:43 TECMINT KERNEL: BIOS-E820: [MEM 0x000000000000100000-0X0000000000001FF JUN 14 21:56:43 TECMINT KERNEL: BIOS-E820: [MEMEX 0X000000200000-20000-0X0000002020202020202020202020200020202000200020202000202020200020002000200020202020000020002020202020002000200000202020202020002000200020202000202000200020002000200020002000002TOS DE TECMACIÓN. : 43 Tecmint Kernel: BioS-E820: [MEM 0x0000000020200000-0X00000000400 

Ver mensajes de registro basados ​​en botas

Puede mostrar una lista de números de arranque (en relación con el arranque actual), sus ID y las marcas de tiempo del primer y último mensaje correspondiente al arranque con el --botas de lista opción.

$ Journalctl --list-Boots -1 9fb590b48e1242f58c2579defdbbddc9 thu 2017-06-15 16:43:36 EAT-Thu 2017-06-15 1 0 464ae35c6e264a4ca08794936be434a thu 2017-06-15 16:47:47:47:47:47:47:47:46:47:47:47:47:47:47:47:46:47:47:4CO 201715 16:4715 16:4715 16: 15 1 

Para ver las entradas del diario desde el arranque actual (número 0), use el -b Cambiar así (igual que la salida de muestra anterior).

$ JournalCtl -B 

y para ver un diario desde el arranque anterior, use el -1 puntero relativo con el -b Opción como se muestra a continuación.

$ JournalCtl -B -1 

Alternativamente, use el ID de arranque como este.

$ JournalCtl -B 9FB590B48E1242F58C2579DEFDBBDDC9 

Filtrando mensajes de registro basados ​​en el tiempo

Para usar el tiempo en formato de tiempo universal coordinado (UTC), agregue el --UTC Opciones de la siguiente manera.

$ JournalCtl --Utc 

Para ver todas las entradas desde una fecha y hora particular, e.gramo. 15 de junio de 2017 a las 8:15 am, escriba este comando.

$ Journalctl --since "2017-06-15 08:15:00" $ Journalctl --sindo hoy $ Journalctl 

Ver mensajes de registro recientes

Para ver los mensajes de registro recientes (10 por defecto), use el -norte bandera como se muestra a continuación.

$ Journalctl -n $ JournalCtl -n 20 

Ver mensajes de registro generados por Kernel

Para ver solo mensajes de núcleo, similar a la salida del comando DMESG, puede usar el -k bandera.

$ Journalctl -k $ JournalCtl -k -B $ JournalCtl -k -B 9FB590B48E1242F58C2579DEFDBBDDC9 

Ver mensajes de registro generados por unidades

Puede ver todas las entradas de diario para una unidad en particular, use el -u Cambiar de la siguiente manera.

$ JournalCtl -U Apache2.servicio 

A cero hasta el arranque actual, escriba este comando.

$ JournalCtl -B -U Apache2.servicio 

Para mostrar registros desde el arranque anterior, use esto.

$ JournalCtl -B -1 -U Apache2.servicio 

A continuación se presentan algunos otros comandos útiles:

$ JournalCtl -U Apache2.Servicio $ JournalCtl -U Apache2.Servicio --sinde hoy $ JournalCtl -U Apache2.servicio -u nagios.Servicio -Desde ayer 

Ver mensajes de registro generados por procesos

Para ver registros generados por un proceso específico, especifique su PID como este.

$ JournalCtl _Pid = 19487 $ JournalCtl _PID = 19487 --sCinde hoy $ JournalCtl _PID = 19487 --sinse ayer 

Ver mensajes de registro generados por el usuario o ID de grupo

Para ver registros generados por un usuario o grupo específico, especifique su ID de usuario o grupo como esta.

$ JournalCtl _Uid = 1000 $ JournalCtl _Uid = 1000 --sindo hoy $ JournalCtl _Uid = 1000 -B -1 --sinde hoy 

Ver registros generados por un archivo

Para mostrar todos los registros generados por un archivo (posiblemente un ejecutable), como el ejecutable D-bus o los ejecutables bash, simplemente escriba.

$ Journalctl/usr/bin/dbus-daemon $ Journalctl/usr/bin/bash 

Ver mensajes de registro por prioridad

También puede filtrar la salida en función de las prioridades de mensajes o los rangos de prioridad utilizando el -pag bandera. Los valores posibles son: 0 - Emerg, 1 - Alerta, 2 - Crit, 3 - Err, 4 - Advertencia, 5 - Aviso, 6 - Información, 7 - Debug):

$ JournalCtl -p err 

Para especificar un rango, use el formato a continuación (Emerg a advertencia).

$ JournalCtl -p 1 ... 4 o $ JournalCtl -P Emerg ... Advertencia 

Ver mensajes de registro en tiempo real

Prácticamente puedes ver registros mientras se están escribiendo con el -F opción (similar a cola -f funcionalidad).

$ JournalCtl -f 

Manejo del formato de visualización del diario

Si desea controlar el formato de salida de las entradas del diario, agregue el -O FLAG y use estas opciones: CAT, Export, JSON, JSON-Pretty, JSON-SSE, Short, Short-ISO, Short Monotonic, Short-Precise y Levy (verifique el significado de las opciones en la página del hombre:

El gato La opción muestra el mensaje real de cada entrada de diario sin ningún metadato (marca de tiempo, etc.).

$ JournalCtl -B -U Apache2.servicio -o gato 

Administrar revistas en un sistema

Para consultar el archivo del diario en busca de consistencia interna, use el --verificar opción. Si todo está bien, la salida debe indicar un pase.

$ JournalCtl --verify pase:/run/log/journal/2a5d5f96ef9147c0b355535562b32d0ff/sistema.Revista 491F68: Datos no utilizados (Entry_offset == 0) pase:/run/log/Journal/2a5d5f96ef9147c0b35535562b32d0ff/[correos electrónicos protegidos] 9866c3d4d.pase de diario:/run/log/journal/2a5d5f96ef9147c0b35535562b32d0ff/[correo electrónico protegido] 5D8945A9E.pase de diario:/run/log/journal/2a5d5f96ef9147c0b35535562b32d0ff/[correo electrónico protegido] 1becab02f.pase de diario:/run/log/journal/2a5d5f96ef9147c0b35535562b32d0ff/[correos electrónicos protegidos] 01cfcedff.diario 

Eliminar archivos de diario antiguos

También puede mostrar el uso actual de disco de todos los archivos de diario con el --uso del disco opción. Muestra la suma del uso del disco de todos los archivos de diario archivados y activos:

$ JournalCtl--Disk-Usage 

Para eliminar archivos de diario antiguos (archivados) ejecuta los comandos a continuación:

$ sudo JournalCtl --Vacuum-size = 50m #Delete archivos hasta que el espacio de disco que usan cae por debajo del tamaño especificado $ sudo Journalctl --vacuum-timhime = 1 año #delete archivos para que todos los archivos de revista no contengan datos más antiguos que el Timespan especificado $ sudo JournalCtl --Vacuum-Files = 4 #Delete Archivos para que no sea más que el número especificado de archivos de diario separados en ubicación de almacenamiento 

Archivos de diario giratorios

Por último, pero no menos importante, puede instruir a Journald para que gire los archivos de diario con el --girar opción. Tenga en cuenta que esta directiva no regresa hasta que se termine la operación de rotación:

$ sudo Journalctl - -Rotate 

Para obtener una guía y opciones de uso en profundidad, vea la página del hombre de diario de la siguiente manera.

$ Man Journalctl 

Echa un vistazo a algunos artículos útiles.

  1. Administración de procesos y servicios de inicio del sistema (Sysvinit, Systemd y Upstart)
  2. Petiti: una herramienta de análisis de registro de código abierto para Sysadmins de Linux
  3. Cómo configurar y administrar la rotación del registro usando Logrotate en Linux
  4. LNAV: mire y analice los registros de Apache desde un terminal de Linux

Eso es todo por ahora. Use los comentarios de abajo para hacer cualquier pregunta o agregarle pensamientos sobre este tema.