Introducción a los niveles de registro del kernel de Linux

Introducción a los niveles de registro del kernel de Linux

Objetivo

El objetivo de este tutorial es aprender sobre los diversos niveles de registro del núcleo de Linux, cómo están organizados y cómo podemos configurar qué mensajes deben mostrarse en la consola dependiendo de su gravedad.

Requisitos

  • Privilegios raíz para editar archivos de configuración

Dificultad

FÁCIL

Introducción

La administración de los archivos de registro de kernel de Linux es un aspecto crucial de una administración de la máquina: los registros simplemente pueden informarnos sobre el estado de demonio, o mostrar mensajes o advertencias críticas. En este tutorial, veremos el tipo de nivel de registro utilizado por el núcleo Linux, cómo están organizados por la gravedad y cómo podemos filtrar los mensajes que se muestran en la consola dependiendo de ella.

Los niveles de registro del núcleo de Linux

Básicamente, hay ocho niveles de registro que puede adoptar un mensaje enviado por el kernel de Linux, comenzando desde Nivel 0 y disminuyendo en severidad hasta nivel 7: El identificador de nivel de registro más bajo, el contexto más crítico.

Cuando un nivel de registro se establece como el valor predeterminado para la consola, ya sea de manera persistente o temporal, actúa como un filtro, de modo que solo se muestran mensajes con un nivel de registro más bajo que él (por lo tanto, mensajes con una gravedad más alta) se muestran. Veamos, brevemente, cómo se organizan los niveles de registro:

El primer nivel de registro es 0, identificado por el Kern_emerg cadena. Este es el nivel más alto en orden de gravedad: es adoptado por mensajes sobre inestabilidad del sistema o bloqueos inminentes.

Nivel de registro 1, o Kern_alert Es lo que viene inmediatamente después. Este nivel se utiliza en situaciones en las que se requiere la atención del usuario inmediatamente.

El siguiente nivel de registro en orden de gravedad es Kern_crit, o Loglevel 2. Este nivel de gravedad se utiliza para informar sobre errores críticos, tanto relacionados con el hardware como el software.

Nivel de registro 3, también identificado por el Kern_err cadena, es la siguiente en la escala. Los mensajes que adoptan este nivel a menudo se usan para notificar al usuario sobre errores no críticos, como por ejemplo, un reconocimiento de dispositivo fallido o problemático, o problemas más relacionados con el conductor.



Kern_warning, o Loglevel 4 Es el nivel de registro generalmente utilizado como el valor predeterminado en la mayoría de las distribuciones de Linux. Este nivel se usa para mostrar advertencias o mensajes sobre errores no inminentes.

Nivel de registro 5 es Nótica. Los mensajes que usan este nivel de gravedad son sobre eventos que pueden valer la pena señalar.

Nivel de registro 6 es Kern_info: Este es el nivel de registro utilizado para mensajes informativos sobre la acción realizada por el kernel.

Finalmente tenemos Kern_debug, o Loglevel 7, que se usa principalmente para la depuración.

Cómo verificar el nivel de registro predeterminado actual actual

Comprobación del Logel de Logel utilizado en nuestro sistema es muy fácil. Todo lo que tenemos que hacer es examinar el contenido del /proc/sys/kernel/printk archivo. Para aquellos de ustedes que no saben, /Proc es un sistema de archivos virtual: Los archivos contenidos en él no están realmente en el disco, sino que son una representación visual del estado del sistema creado por el núcleo y mantenidos en la memoria. En este caso, por ejemplo, podemos usar el archivo mencionado anteriormente para consultar la información sobre el nivel de registro de consola predeterminado establecido en nuestro sistema. Todo lo que tenemos que hacer es ejecutar:

$ cat/proc/sys/kernel/printk

Esta es la salida típica del comando:

4 4 1 7

El primer valor en nuestra salida es la corriente console_loglevel. Esta es la información que estábamos buscando: el valor, 4 En este caso, representa el nivel de registro utilizado actualmente. Como se dijo antes, esto significa que solo los mensajes que adoptan un nivel de gravedad más alto que él, se mostrarán en la consola.

El segundo valor en la salida representa el default_message_loglevel. Este valor se usa automáticamente para mensajes sin un nivel de registro específico: si un mensaje no está asociado con un nivel de registro, este se usará para ello.

El tercer valor en la salida informa el Minimum_Console_Loglevel estado. Indica el mínimo de nivel de loglel que se puede usar para console_loglevel. El nivel aquí usa su 1, el más alto.

Finalmente, el último valor representa el default_console_loglevel, cuál es el nivel de logel predeterminado utilizado para console_loglevel en el momento de la bota.

En aras de la integridad, debemos decir que la misma información también se puede recuperar utilizando el sysctl comando, ejecutando:

$ sysctl kernel.imprimir


Cambiar el nivel de registro de consola predeterminado

Acabamos de ver cómo recuperar información sobre el Logel de Logel actual en uso para la consola. En algunas situaciones podemos querer cambiar ese valor: veamos cómo podemos lograr esta tarea.

El método más directo que podemos usar es escribir el nuevo valor para el /proc/sys/kernel/printk archivo. Sin embargo, esta es una solución temporal, y la nueva configuración no persistirá un reinicio de la máquina. Digamos que queremos cambiar el Logel de Logel de consola predeterminado a 3, Esto es lo que ejecutaríamos:

$ Echo "3" | sudo tee/proc/sys/kernel/printk

O si usa el raíz cuenta directamente:

# echo "3">/proc/sys/kernel/printk

Al observar el contenido del archivo, podemos verificar que Loglevel es ahora el que especificamos en nuestro comando:

$ cat/proc/sys/kernel/printk 3 4 1 7 

Podemos obtener el mismo resultado usando el sysctl dominio:

sudo sysctl -w kernel.printk = 3

Permítanme repetirlo nuevamente: estas son soluciones temporales no persistentes. Para cambiar el Logel de Logel predeterminado de una manera persistente, debemos modificar el /etc/default/grub archivo, pasando el nivel de registro Parámetro a la línea de comandos del núcleo en el arranque:

Grub_timeout = 5 grub_distributor = "$ (Sed 's, lanzamiento .*$ ,, G ' /etc /System-Lelease) "Grub_default = Saved Grub_Disable_Submenu = True Grub_Merminal_output =" Console "Grub_CMDLine_Linux ="Loglevel = 3 currículum = uuid = df5a0685-43f8-433a-8611-57335a10ca8d "grub_disable_recovery =" true " 

Arriba está el contenido del archivo/etc/default/grub, y se destacó que es el parámetro que debe agregarse a Grub_cmdline_linux, que contiene las instrucciones de la línea de comandos del núcleo. En este caso usamos Loglevel = 3, Dado que queríamos usar ese Logel de Logel específico para la consola. Después de modificar el archivo y guardar los cambios, debemos volver a cargar la comida para que la nueva configuración se aplique en el siguiente reinicio: el comando para realizar esta operación depende de la distribución que estamos ejecutando. Generalmente el comando es:

$ sudo grub2 -mkconfig -o/boot/grub2/grub.CFG

En la distribución con sede en Debian, se utiliza un script de envoltura para realizar básicamente la misma operación:

$ SUDO Update-GRUB

La configuración de grub se actualizará y en el siguiente reinicio, el nivel de registro especificado se adoptará como el valor predeterminado.

Conclusiones

En este tutorial hemos aprendido cómo se organizan los registros de núcleo de Linux dependiendo de su nivel de gravedad. También vimos cómo podemos alterar la configuración predeterminada para que solo ciertos mensajes enviados por el núcleo se muestren en la consola, utilizando los mismos criterios. Finalmente vimos cómo hacer que esos cambios sean persistentes.

Tutoriales de Linux relacionados:

  • Cosas para instalar en Ubuntu 20.04
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Registro avanzado y auditoría en Linux
  • Cómo administrar y solucionar problemas de Kubernetes
  • Archivos de configuración de Linux: los 30 principales más importantes
  • Descarga de Linux
  • Cosas que hacer después de instalar Ubuntu 22.04 Jellyfish de Jammy ..
  • Instale Arch Linux en VMware Workstation
  • ¿Puede Linux obtener virus?? Explorando la vulnerabilidad de Linux ..