Ir al contenidoIr a la navegación de la página: página anterior [tecla de acceso p]/página siguiente [tecla de acceso n]
documentation.suse.com / Gestión de registros del sistema de SLE Micro

Gestión de registros del sistema de SLE Micro

Fecha de publicación: 29 Sep 2024
DESCRIPCIÓN

El análisis de los archivos de registro del sistema es una de las tareas más importantes a la hora de analizar el sistema. De hecho, lo primero que se debe hacer cuando se realiza el mantenimiento o la resolución de problemas de un sistema es examinar los archivos de registro del sistema. SLE Micro registra automáticamente casi todo lo que ocurre en el sistema en detalle.

INTENCIÓN

Este artículo proporciona instrucciones sobre cómo examinar lo que ha ocurrido en el sistema mediante la visualización de los registros del sistema.

ESFUERZO

Se tardan unos 20 minutos en leer y comprender este artículo.

OBJETIVO

Obtendrá una descripción general de dónde se encuentran los archivos de registro y cómo gestionarlos.

REQUISITOS
  • Privilegios de root.

1 ¿Dónde encontrar los archivos de registro del sistema?

SLE Micro registra varios tipos de mensajes, por ejemplo, del kernel, SELinux u otros servicios.

Los mensajes del kernel y los mensajes de los servicios del sistema registrados con systemd se registran en el diario systemd (consulte la Sección 4, “El sistema de registro systemd: diario”). Otros archivos de registro del sistema se encuentran en el directorio /var/log. Los mensajes de SELinux se registran en /var/log/audit/audit.log. Para obtener información detallada, consulte SELinux troubleshooting.

La siguiente lista proporciona una descripción general de todos los archivos de registro del sistema que se encuentran en SLE Micro después de una instalación por defecto. Dependiendo del ámbito de instalación, /var/log también contiene archivos de registro de otros servicios y aplicaciones que no aparecen aquí. Algunos archivos y directorios descritos a continuación son marcadores de posición y solo se utilizan cuando se instala la aplicación correspondiente. La mayoría de los archivos de registro solo son visibles para el usuario root. Por lo general, puede ver estos archivos utilizando un editor, ya que son de texto sin formato.

Importante
Importante: archivos de registro no compatibles

utmp, wtmp y lastlog se han eliminado de SLE Micro y ya no son compatibles. Si hay aplicaciones que escriban en estos archivos de registro, recuerde que los archivos de registro estarán incompletos. wtmp se ha sustituido por wtmpdb, lastlog con lastlog2.

audit/

Registros del marco de auditoría.

ConsoleKit/

Registros del daemon ConsoleKit (daemon para realizar un seguimiento de los usuarios que han iniciado sesión y cómo interactúan con el equipo).

cups/

Registros de acceso y de errores del software CUPS (sistema de impresión común de Unix, cups).

firewalld

Registros del cortafuegos.

krb5/

Archivos de registro del sistema de autenticación de red Kerberos.

chrony/

Registros del daemon de protocolo de hora de red (chrony).

YaST2/

Todos los archivos de registro de YaST.

zypp/

Archivos de registro de libzypp. Consulte estos archivos para ver el historial de instalación del paquete.

zypper.log

Registros del instalador de la línea de comandos zypper.

2 Visualización y análisis de archivos de /var/log

Puede ver y analizar registros de texto sin formato de /var/log mediante los comandos de la interfaz de línea de comandos, como se describe más adelante.

Para ver los archivos de registro, utilice los comandos less o more. Utilice head y tail para ver el principio o el final de un archivo de registro. Para ver las entradas adjuntas a un archivo de registro en tiempo real, utilice tail -f. Para obtener información sobre cómo utilizar estas herramientas, consulte las páginas de manual correspondientes.

Para buscar cadenas o expresiones regulares en los archivos de registro, utilice grep. awk es útil para analizar y reescribir archivos de registro.

3 Gestión de archivos de registro con logrotate

Los archivos de registro de /var/log crecen a diario y se vuelven muy grandes rápidamente. logrotate es una herramienta que le ayuda a gestionar los archivos de registro y su crecimiento. Permite la rotación, eliminación, compresión y envío por correo automáticos de los archivos de registro. Los archivos de registro se pueden gestionar de forma periódica (diaria, semanal o mensual) o cuando superan un tamaño determinado.

systemd ejecuta normalmente a diario logrotate y, por lo tanto, los archivos de registro solo se modifican una vez al día. Sin embargo, se producen excepciones cuando un archivo de registro se modifica debido a su tamaño, si logrotate se ejecuta varias veces al día o si ‑‑force está habilitado. Consulte el archivo /var/lib/misc/logrotate.status para averiguar cuándo se rotó por última vez un archivo concreto.

logrotate puede configurarse según sus necesidades. Para obtener información detallada, consulte la Sección 3.1, “Configuración de logrotate.

3.1 Configuración de logrotate

El archivo de configuración principal logrotate.conf define, por ejemplo, la frecuencia con la que se deben rotar los registros o qué herramienta se utiliza para la compresión de datos. Cada servicio puede tener su propia configuración de logrotate en /etc/logrotate.d/.

3.1.1 Ajuste de logrotate.conf

La versión por defecto de logrotate.conf se encuentra en el directorio /usr/etc/. Si esta versión por defecto no se ajusta a sus necesidades, copie el archivo en /etc/logrotate.conf y cambie los valores de configuración. No modifique la versión de /usr/etc/, ya que puede sobrescribirse con una actualización del sistema. Puede sustituir los siguientes valores:

weekly

La frecuencia de rotación del registro. Puede utilizar cualquiera de estos valores: hourly, daily, weekly, monthly o yearly.

maxage

Puede especificar el número de días que se conservarán los registros.

rotate 4

El número determina la cantidad de rotaciones de registro que se deben retener los registros rotados. Cuando se define en rotate 0, los registros se suprimen inmediatamente. Cuando se define en rotate -1, los registros no se eliminan hasta que alcanzan el valor de maxage.

dateext

Si la opción está presente en el archivo de configuración, los nombres de archivo de registro rotados reciben una extensión con una fecha en el formato: logname.YYYYMMDD. Si no está presente, el esquema de nombre de archivo por defecto es: logname.1, logname.2.

compress

Si están comentados, los registros no se comprimen.

compresscmd y uncompresscmd

Aquí puede cambiar las herramientas de compresión y descompresión por defecto definiendo las vías absolutas correspondientes a las herramientas.

include PATH

Puede cambiar la ubicación por defecto del archivo con la información de rotación del registro. El valor por defecto es /var/lib/misc/logrotate.status.

3.1.2 Configuración de logrotate específica del servicio

Los servicios y las aplicaciones pueden tener una configuración específica de logrotate en /etc/logrotate.d. Además de las opciones mencionadas en la Sección 3.1.1, “Ajuste de logrotate.conf, también puede utilizar las siguientes configuraciones:

missingok

La rotación de registros no informa de errores si falta alguno de los archivos de registro especificados.

notifempty

Los archivos de registro vacíos no se rotan.

delaycompress

La compresión de los registros rotados se pospone hasta la siguiente rotación de registros.

sharedscripts

Indica una sección con guiones que solo se deben ejecutar una vez, independientemente del número de registros que se roten. Si se omite, los guiones se ejecutan para cada archivo de registro que se va a rotar.

size

Define el tamaño que puede alcanzar un archivo de registro antes de que se inicie la rotación del registro. Esta opción puede ignorar la programación horaria. El valor puede ser en megabytes (M), kilobytes (K) o bytes (B).

minsize

Los registros se rotan según la programación horaria especificada si su tamaño supera este valor. El valor puede ser en megabytes (M), kilobytes (K) o bytes (B).

maxsize

Especifica el tamaño máximo del archivo de registro. Al alcanzar este límite, se activa la rotación incluso cuando no se ha alcanzado el intervalo de tiempo. El valor puede ser en megabytes (M), kilobytes (K) o bytes (B).

4 El sistema de registro systemd: diario

systemd cuenta con su propio sistema de registro denominado diario (journal). En sí, el diario es un servicio del sistema gestionado por systemdsystemd-journald.service.

El servicio recopila y almacena los datos de registro manteniendo diarios indexados estructurados basados en la información de registro recibida del kernel, los procesos de usuario, la entrada estándar y los errores de servicio del sistema. El servicio systemd-journald está habilitado y se inicia por defecto.

El diario almacena los datos de registro en /var/log/journal/.

4.1 Uso del comando journalctl

Esta sección presenta varias opciones útiles para mejorar el comportamiento por defecto de journalctl.

El comando journalctl tiene la siguiente sintaxis:

        journalctl [options…] [matches…]
Sugerencia
Sugerencia: mensajes relacionados con un ejecutable específico

Para mostrar todos los mensajes del diario relacionados con un ejecutable específico, especifique la vía completa al ejecutable:

> sudo journalctl /usr/lib/systemd/systemd

El comando acepta las siguientes opciones:

-f

Muestra solo los mensajes del diario más recientes e imprime nuevas entradas de registro a medida que se añaden al diario.

-e

Imprime los mensajes y salta al final del diario, de modo que las entradas más recientes sean visibles en el paginador.

-r

Imprime los mensajes del diario en orden inverso, de modo que las entradas más recientes aparezcan primero.

-k

Muestra solo los mensajes del kernel. Esto es equivalente a la coincidencia de campo _TRANSPORT=kernel.

-u

Muestra solo los mensajes de la unidad systemd especificada. Esto es equivalente a la coincidencia de campo _SYSTEMD_UNIT=UNIT.

> sudo journalctl -u apache2
 [...]
 Jun 03 10:07:11 pinkiepie systemd[1]: Starting The Apache Webserver...
 Jun 03 10:07:12 pinkiepie systemd[1]: Started The Apache Webserver.

4.2 Filtrado de registros del diario

Cuando se llama a journalctl sin opciones, el comando muestra el contenido completo del diario, con las entradas más antiguas primero. El resultado se puede filtrar por opciones específicas o campos del diario.

4.2.1 Filtrado basado en intervalo de tiempo

Puede filtrar el resultado de journalctl especificando la fecha de inicio o finalización. La especificación de fecha debe tener el formato 2014-06-30 9:17:16. Si se omite la parte horaria, se entiende que es la medianoche. Si se omiten los segundos, se entiende que es :00. Si se omite la parte de la fecha, se entiende que es el día actual. En lugar de una expresión numérica, puede especificar las palabras clave ayer, hoy o mañana. Se refieren a la medianoche del día anterior al actual, del día actual o del día siguiente. Si especifica ahora, hace referencia a la hora actual. También puede especificar horas relativas con el prefijo - o +, en referencia a las horas anteriores o posteriores a la hora actual.

Para mostrar solo los mensajes nuevos desde ahora y actualizar el resultado continuamente:

> sudo journalctl --since "now" -f

Para mostrar todos los mensajes desde la medianoche hasta las 3:20 horas.

> sudo journalctl --since "today" --until "3:20"

4.2.2 Filtrado basado en un número de arranque

journalctl puede filtrar mensajes basados en un arranque de sistema específico. Para mostrar todos los arranques disponibles, ejecute:

> sudo journalctl --list-boots
 -1 097ed2cd99124a2391d2cffab1b566f0 Mon 2014-05-26 08:36:56 EDT—Fri 2014-05-30 05:33:44 EDT
  0 156019a44a774a0bb0148a92df4af81b Fri 2014-05-30 05:34:09 EDT—Fri 2014-05-30 06:15:01 EDT

La primera columna muestra el desplazamiento de arranque: 0 para el arranque actual, -1 para el anterior, -2 para el anterior a ese, etc. La segunda columna contiene el ID de arranque, seguido de las marcas horarias límite del arranque específico.

Para mostrar todos los mensajes del arranque actual:

> sudo journalctl -b

Si necesita ver los mensajes del diario del arranque anterior, añada un parámetro de desplazamiento. El siguiente ejemplo muestra los mensajes de arranque anteriores:

> sudo journalctl -b -1

Otra forma es mostrar los mensajes de arranque según el ID de arranque. Para ello, utilice el campo _BOOT_ID:

> sudo journalctl _BOOT_ID=156019a44a774a0bb0148a92df4af81b

4.2.3 Filtrado basado en campos

Puede filtrar el resultado del diario por campos específicos. La sintaxis de un campo por el que se deba filtrar es FIELD_NAME=MATCHED_VALUE, por ejemplo, _SYSTEMD_UNIT=httpd.service. Puede especificar varios criterios en una sola consulta para filtrar aún más los mensajes de salida. Consulte man 7 systemd.journal-fields para obtener una lista de los campos por defecto.

Para mostrar mensajes producidos por un ID de proceso específico:

> sudo journalctl _PID=1039

Para mostrar mensajes que pertenecen a un ID de usuario específico:

# journalctl _UID=1000

Para mostrar mensajes del buffer de anillo del kernel (lo mismo que produce dmesg):

> sudo journalctl _TRANSPORT=kernel

Para mostrar mensajes del resultado estándar o de los errores del servicio:

> sudo journalctl _TRANSPORT=stdout

Para mostrar mensajes producidos solo por un servicio especificado:

> sudo journalctl _SYSTEMD_UNIT=avahi-daemon.service

Si se especifican dos campos diferentes, solo se muestran las entradas que coinciden con ambas expresiones al mismo tiempo:

> sudo journalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=1488

Si dos coincidencias hacen referencia al mismo campo, se muestran todas las entradas que coincidan con cualquiera de las dos expresiones:

> sudo journalctl _SYSTEMD_UNIT=avahi-daemon.service _SYSTEMD_UNIT=dbus.service

Puede utilizar el separador + para combinar dos expresiones en un operador OR lógico. El siguiente ejemplo muestra todos los mensajes del proceso de servicio de Avahi con el ID de proceso 1480 junto con todos los mensajes del servicio D-Bus:

> sudo journalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=1480 + _SYSTEMD_UNIT=dbus.service

4.3 Configuración de journald

> sudo systemctl restart systemd-journald

4.3.1 Cambio del límite de tamaño del diario

Los datos de registro del diario utilizan hasta el 10 % del espacio del sistema de archivos en el que se encuentra /var/log/journal. Por ejemplo, si /var/log/journal se encuentra en una partición /var de 30 GB, el diario puede utilizar hasta 3 GB de espacio en disco. Para cambiar este límite, cambie (y elimine el comentario) de la opción SystemMaxUse:

SystemMaxUse=50M

4.3.2 Remisión del diario a /dev/ttyX

Puede remitir el diario a un dispositivo terminal para informar acerca de los mensajes del sistema en la pantalla de terminal que se prefiera, por ejemplo, /dev/tty12. Cambie las siguientes opciones de journald a:

ForwardToConsole=yes
TTYPath=/dev/tty12