Gestión de registros del sistema de SLE Micro
- 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.
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
oyearly
.-
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 enrotate -1
, los registros no se eliminan hasta que alcanzan el valor demaxage
.-
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
yuncompresscmd
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 systemd
—systemd-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…]
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
5 Información legal #
Copyright © 2006 –2024 SUSE LLC y colaboradores. Reservados todos los derechos.
Está permitido copiar, distribuir y modificar este documento según los términos de la licencia de documentación gratuita GNU, versión 1.2 o (según su criterio) versión 1.3. Este aviso de copyright y licencia deberán permanecer inalterados. En la sección titulada “GNU Free Documentation License” (Licencia de documentación gratuita GNU) se incluye una copia de la versión 1.2 de la licencia.
Para obtener información sobre las marcas comerciales de SUSE, consulte https://www.suse.com/company/legal/. Todas las marcas comerciales de otros fabricantes son propiedad de sus respectivas empresas. Los símbolos de marcas comerciales (®, ™, etc.) indican marcas comerciales de SUSE y sus filiales. Los asteriscos (*) indican marcas comerciales de otros fabricantes.
Toda la información recogida en esta publicación se ha compilado prestando toda la atención posible al más mínimo detalle. Sin embargo, esto no garantiza una precisión total. Ni SUSE LLC, ni sus filiales, ni los autores o traductores serán responsables de los posibles errores o las consecuencias que de ellos pudieran derivarse.