Guía para principiantes para analizar archivos de registro de Linux con el comando journalctl

¿Cómo estais? me llamo Luis. Os traigo un nuevo post sobre el sistema operativo mas molón. Encantado linuxeros.

systemd es el predeterminado para la mayoría de las principales distribuciones de Linux. Una de las principales características de systemd es la forma en que recopila registros y las herramientas que proporciona para analizar esos registros.

En el tradicional SysVinit sistema, tienes syslog que almacena registros en archivos de texto. Leer y analizar estos archivos requiere el uso de find, grep, cut y más.

systemd recopila registros de más fuentes que los registros del sistema, mantiene los registros en formato binario y le brinda una herramienta de línea de comandos para leer, analizar y manipular registros. Esto es más simple que los syslog.

¿Qué es una revista? ¿Qué es journalctl?

journald es el demonio systemd que recopila registros de varias fuentes de registro, como syslog.

journalctl es una herramienta de línea de comandos que le permite interactuar con los registros de registro.

Con journalctl puede leer registros, monitorearlos en tiempo real, filtrar registros basados ​​en tiempo, servicio, peso y otros parámetros.

En este tutorial, le mostraré cómo usar journalctl para leer, monitorear y analizar archivos de registro de Linux.

Verifique que los registros de registro estén activados en su sistema

Algunas distribuciones de Linux, especialmente las distribuciones de escritorio, no habilitan los registros de registro predeterminados.

De forma predeterminada, la ubicación de los registros de diario es /var/log/journal directorio. Debe asegurarse de que este directorio exista. Si no es así, créelo usted mismo.

Luego, en el archivo /etc/systemd/journald.conf, asegúrese de que el valor Storage está configurado en o auto o persistent.

El archivo journald.conf muestra los valores predeterminados. Entonces, incluso si hay un # delante de las entradas, significa que estas son las configuraciones predeterminadas utilizadas. Si desea cambiar algo, elimine # de esta línea.

Cómo enumerar los servicios de Systemd en Linux »Wiki Ùtil [Beginner’s Guide]

Compruebe qué servicios de systemd se están ejecutando en su sistema Linux en este tutorial.

Usando comandos journalctl

Déjame mostrarte algunos de los ejemplos más básicos pero útiles del comando journalctl.

Lea y busque en las revistas con journalctl

Si solo escribes journalctl en la terminal se mostrarán los registros del registro en orden cronológico.

journalctl

journalctl utiliza less a continuación para mostrarte los diarios. Lo que significa que puede usar las mismas teclas para navegar por los registros que con el comando less.

Si no recuerda esto, aquí tiene una convulsión rápida:

Descripción clave

Flecha Mover una línea
Espacio Mover una página hacia abajo
B Subir una página
gramo Ir a la primera fila
GRAMO Ir a la última fila
100 gramos Ir a la fila 100
/ cuerda Busque la cadena de la posición actual
n / n Ir a la coincidencia anterior o siguiente al realizar la búsqueda
q Sal de los troncos

Si no desea que los registros se muestren en un modo de vista menos similar, puede usar --no-pager bandera. Esto mostrará registros completos directamente en la pantalla.

journalctl --no-pager

Esto no es muy útil e inundará tu pantalla si tienes una gran cantidad de registros.

Mostrar registros en orden cronológico inverso

Como habrá notado, los registros se muestran en orden cronológico. Esto significa que los registros guardados más antiguos se muestran primero.

Si desea ver los registros más recientes primero, puede mostrar los registros en orden inverso con la opción -r:

journalctl -r

Todavía usa menos comando como vista. Entonces, presione q para salir del modo de visualización de registros.

Mostrar solo las últimas N líneas de los registros de registro

En lugar de mostrar todos los registros, puede optar por mostrar solo un cierto número de líneas de registro utilizando -n opción.

Por ejemplo, el siguiente comando mostrará las últimas 25 líneas de registros:

journalctl -n 25

Visualización de revistas en tiempo real

Ver los registros más recientes es una cosa, si desea verlos en tiempo real, puede usar -f Opción de comando journalctl:

journalctl -f

Al igual que la opción -f en el comando tail, esto mostrará los registros en tiempo real en el modo de seguimiento.

Utilice Ctrl + C para salir de la vista en tiempo real.

Mostrar registros en hora UTC

De forma predeterminada, los registros de registro se muestran en la hora local de su sistema. Si la hora de su sistema está configurada en una hora que no sea UTC y desea ver los archivos de registro en UTC, puede hacerlo usando --utc bandera.

journalctl --utc

Mostrar solo mensajes del kernel con -k

El diario systemd acumula registros de varias fuentes. Si solo desea ver los registros del kernel de Linux, puede usar la opción -k.

journalctl -k

Sugerencia: use sudo para ver todas las revistas

Systemd protege qué tipo de registros mostrar a qué usuario.

Puede mostrar algunos registros, pero no todos, si es un usuario habitual:

abhishek@linuxhandbook:~$ journalctl -u ssh
Hint: You are currently not seeing messages from other users and the system.
      Users in groups 'adm', 'systemd-journal' can see all messages.
      Pass -q to turn off this notice.
-- Logs begin at Mon 2020-06-22 12:05:47 UTC, end at Tue 2020-07-14 11:59:29 UTC. --
-- No entries --

Si desea acceder a todos los registros, debe usar sudo si es un usuario de sudo:

sudo journalctl -u ssh

Mostrar mensajes de una sesión de arranque específica

Ésta es una característica excelente del jounrald. El comando journalctl le permite acceder a los registros que pertenecen a una sesión de arranque específica usando la opción -b.

Puede enumerar todas las sesiones para cargar --list-boots bandera.

journalctl --list-boots

El resultado mostrará las sesiones de arranque con el tiempo de arranque y un número entero asignado a las sesiones de arranque:

  -5 513008ead8464c23aab732a2feed5277 Sun 2020-07-12 20:43:38 IST—Sun 2020-07-12 22:40:02 IST
  -4 caff16e3f46a4479b5287fb9e294f610 Mon 2020-07-13 07:36:04 IST—Mon 2020-07-13 19:13:44 IST
  -3 5665f41cc50a4dec9955efacc2596d68 Mon 2020-07-13 20:30:55 IST—Mon 2020-07-13 22:20:34 IST
  -2 c7d17407b0bd476a930af503f64b6006 Tue 2020-07-14 07:58:41 IST—Tue 2020-07-14 18:50:04 IST
  -1 7ab5e04518ec455abe0e2c86fdaa46fa Tue 2020-07-14 21:19:27 IST—Tue 2020-07-14 22:42:11 IST
   0 91856e86d4ee4e828717913deb288568 Wed 2020-07-15 08:11:51 IST—Wed 2020-07-15 17:14:10 IST

La sesión de inicio 0 es la sesión de inicio actual. La sesión de arranque -1 es la última sesión iniciada, etc.

journalctl -b -2

¡Imagínese que está intentando hacer esto en el antiguo sistema syslog!

No puede simplemente obtener registros de arranque como los que ve en /var/log/boot.log. Sin embargo, los registros de arranque están siempre al principio de los registros si se encuentra en la vista de la sesión de arranque.

Filtrar registros de registro para un servicio systemd específico

El filtrado es un punto fuerte de los diarios de las revistas. Puede filtrar registros según los servicios de systemd.

journalctl -u service_name

Por ejemplo, si desea ver los archivos de registro generados por SSH, puede usarlos de la siguiente manera:

journalctl -u ssh

Por supuesto, necesitará saber el nombre del servicio systemd.

Filtrar los registros para un intervalo de tiempo específico

Este es otro ejemplo de la capacidad de filtrar registros de registros de registro. Puede filtrar registros durante un período de tiempo y hay diferentes formas de hacerlo.

Puede utilizar lenguaje natural para filtrar los registros. Términos como ayer, hoy y mañana son reconocibles.

journalctl --since=yesterday --until=now

También puede especificar una fecha o una combinación de fecha y hora:

journalctl --since "2020-07-10"

También puede especificar un período de tiempo con fechas y horas:

journalctl --since "2020-07-10 15:10:00" --until "2020-07-12"

La clase comienza a las 00:00:00 y determina el día y la fecha.

También puede usar un tiempo relativo como -1h20min para especificar 1 hora y 20 minutos en el pasado.

Filtrar archivos de registro basados ​​en UID, GID y PID

Si está depurando un problema, es posible que desee verificar los registros de un proceso en particular utilizando su PID.

Los registros de registro también se pueden filtrar por ID de usuario (UID), ID de grupo (GID) e ID de proceso (PID). Lo siguiente es un ejemplo:

journalctl _PID=1234

Consejo: combine más de una opción para una exploración de revistas más personalizada

Puede combinar varias opciones para ver los registros deseados.

Por ejemplo, si solo desea ver los registros SSH de ayer de las marcas de tiempo UTC, puede usar:

sudo journalctl -u ssh --since=yesterday --utc

Otro uso común es filtrar registros basados ​​en sesiones de arranque. Si solo desea ver los registros SSH en la sesión actual, puede usar:

sudo journalctl -u ssh -b0

Las posibilidades son infinitas y puedes combinar las opciones según tus necesidades.

Utilice journalctl -xe para ver los últimos registros

A menudo encontrará personas que se ofrecen a usar journalctl -xe equipo.

-e: Ir al final de los registros del diario.

-x: Muestra información adicional sobre las entradas del registro (si las hubiera)

Algunas entradas del registro tienen información adicional que no se muestra durante la visualización normal del registro. Usando -x La opción puede mostrar dicha información.

Lo que ves como una línea como esta:

Jul 09 16:33:40 itsfoss systemd[1]: Started Run anacron jobs.

Puede mostrar más información como esta:

Jul 09 16:33:40 itsfoss systemd[1]: Started Run anacron jobs.
-- Subject: A start job for unit anacron.service has finished successfully
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
-- 
-- A start job for unit anacron.service has finished successfully.
-- 
-- The job identifier is 3702.

La información adicional ayuda a explicar el contexto del error o evento y las posibles soluciones.

Mostrar solo errores en archivos de registro con journalctl

Para mostrar todos los errores en la sesión actual, puede usar:

journalctl -p 3 -xb

-p 3: filtrar los registros para la prioridad 3 (que es un error) -x: proporcionar información adicional del registro (si está disponible) b: desde la última carga (que es la sesión actual)

También puede utilizar otro nivel de prioridad para obtener errores, advertencias o incluso registros críticos. Esta tabla enumera todos los niveles de prioridad.

Código de prioridad

0 surgir
1 ansiedad
2 critico
3 error
4 atención
5 aviso
6 información
7 depuración

También puede mostrar registros de rango de gravedad. Por ejemplo, si desea ver todos los registros con alertas, notificaciones e información de la sesión actual, puede usar:

journalctl -p 4..6 -b0

También podrías usar warning..info en el comando anterior en su lugar 4..6.

Compruebe cuánto espacio en disco ocupan los archivos de registro

El diario recopila registros de varias fuentes y almacena registros de varios niveles, incluidos los registros de depuración. Créame, si bien guardar registros ayuda con el análisis y la auditoría, pueden ocupar una cantidad significativa de espacio en disco.

Puede verificar cuánto espacio en disco ocupan los registros con este comando journalctl:

journalctl --disk-usage

Puede recibir una sorpresa (o un shock) cuando vea el resultado:

abhishek@linuxhandbook:~$ journalctl --disk-usage 
Archived and active journals take up 2.8G in the file system.

2,8 GB? Eso es mucho. Es posible que desee borrar los registros de registro.

Cómo borrar los archivos de registro de Systemd Journal en Linux

Este tutorial rápido le muestra dos formas de borrar los registros del sistema de su sistema Linux.

Disfrute del análisis de registros con el comando journalctl

Hay muchas más opciones y uso del comando journalctl y no puedo cubrirlas todas. Te recomiendo que leas su manual si quieres más detalles al respecto.

Creo que le he dado lo suficiente para usar el comando journalctl para el análisis de registro regular. Espero que disfrutes de este tutorial detallado de la revista.

Si tiene sugerencias o preguntas, no dude en dejar un comentario.

Este Blog lo escribimos para colaborar y servir de referencia a la gente Linux. Esperamos que os guste.

Leave a Reply