Administre mensajes de registro en Systemd usando JournalCTL [Guía integral]
- 1278
- 48
- Adriana Tórrez
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ónArchivo 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.
$ JournalCtlVer 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.
- Administración de procesos y servicios de inicio del sistema (Sysvinit, Systemd y Upstart)
- Petiti: una herramienta de análisis de registro de código abierto para Sysadmins de Linux
- Cómo configurar y administrar la rotación del registro usando Logrotate en Linux
- 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.
- « Cómo instalar Samba en Ubuntu para compartir archivos en Windows
- Cómo extender/reducir los LVM (gestión de volumen lógico) en Linux - Parte II »