Escuela para principiantes: para comprender los entresijos del procesamiento de registros de Linux

  

Todos los que usan UNIX /LINUX conocen la utilidad del registro, ¿saben los entresijos del procesamiento de LINUX de esta información de registro?

Podemos ver las siguientes dos formas de registro de información del sistema LINUX:

(1) dmesg view ---- Este comando es más común

(2) Archivos bajo /var /log /

Comencemos por estas 2 formas, paso a paso.

(1) Primero, veamos el comando común dmesg. ¡¡Qué se esconde detrás!

(1) Vengamos a HOMBRE a este tipo

------------- man dmesg ----- ---------------------

NAME

dmesg - imprima o controle el búfer en anillo del núcleo

SYNOPSIS

dmesg [-c] [-n level] [-s bufsize]

DESCRIPTION

dmesg se utiliza para examinar o controlar el búfer de anillo del núcleo.

El programa ayuda a los usuarios a imprimir sus mensajes de inicio. En lugar de copiar los mensajes a mano, el usuario solo necesita:

dmesg > boot.messages

y enviar por correo el inicio archivo de mensajes a quienquiera puede depurar su problema

.

OPCIONES

-c Borre el contenido del búfer de anillo después de imprimir.

-sbufsize

Usa un Búfer de tamaño bufsize para consultar el búfer de anillo del kernel. Esto es 16392 de manera predeterminada.
(El tamaño predeterminado del búfer de syslog del kernel era 4096 al principio, 8192 desde 1.3.54, 16384 desde la 2.1.113). Ser más grande que el valor predeterminado, esta opción se puede usar para ver el búfer completo.

-nlevel

Establezca el nivel en el que se realiza el registro de mensajes en la consola. Por ejemplo, -n 1 evita que todos los mensajes, espere que aparezcan mensajes de pánico, aparezcan en la consola. Todos los niveles de mensajes aún se escriben en /proc /kmsg, por lo que aún se puede usar syslogd (8) para controlar exactamente dónde aparecen los mensajes del kernel.

Cuando se usa la opción -n, dmesg no imprimirá ni borrará el búfer de anillo del kernel.

Cuando se usan ambas opciones, solo la última opción en la línea de comandos tendrá efecto.

Por el manual proporcionado por LINUX, podemos saber que la información más importante es leer información del búfer de anillo del kernel.

(2) ¿Qué es el búfer de anillo?

En En LINUX, toda la información del sistema (información del kernel del paquete) se transfiere al búfer de anillo. La información generada por el kernel se imprime con printk (). La información que ve cuando se inicia el sistema se imprime mediante la función en la pantalla. La información impresa por printk () tiende a indicar el nivel de importancia del mensaje con un número de <0> <2>. Se imprimirá un cierto nivel de prioridad en la pantalla, de lo contrario solo permanecerá en el búfer del sistema (búfer de anillo).

En cuanto a dmesg, específicamente cómo leer desde el búfer de anillo, puede ver el código fuente de dmesg.c. Muy corto, más fácil de leer.

(b) Cómo hacer dmesg Debería ser muy claro. En cuanto a los archivos en /var /log /, ¡está familiarizado con él y no puede estar familiarizado con él otra vez!

(1) /var /log /... ¿Por qué hay tantos archivos? Br>

Explicación: el daemon syslogd registra los registros generados por diferentes servicios en diferentes archivos de acuerdo con /etc/syslog.conf.

donde /etc/syslog.conf No entraré en detalles, mucha información sobre esto (verifíquelo).

(2) Ahora que sabe, /var /log /.. es generado por el daemon syslogd. Luego, Siga por esta línea.

Después de que se inicie el sistema Linux, klogd y syslogd se inician con /etc/init.d/sysklogd.

El klogd obtendrá la información enviada por el kernel printk ()

desde el búfer del sistema a través de la llamada al sistema syslog () o el sistema de archivos proc. El syslogd es Lea la información del kernel del sistema a través de klogd.

Creo que en este punto, todos deberían sentir la generación de registros, la lectura y otras acciones.

Resumen:

(1) Toda la información del sistema se envía al búfer de anillo. El contenido mostrado por .dmesg también se lee desde el búfer de anillo.

(2) /etc/init.d/sysklogd en el sistema LINUX Comenzará 2 daemons: Klogd &&Syslogd

(3) klogd es responsable de leer la información del kernel, hay 2 formas:

syslog () llamada al sistema (uso de esta función Más completo, vamos a MAN para verlo.

Lea directamente /proc /kmsg (nuevamente, /proc /kmsg es el lugar para generar información del kernel)

(4) La salida de Klogd se enviará a syslogd para su procesamiento. Syslogd emitirá la información de registro

a diferentes archivos en /var /log /según la configuración de /etc/syslog.conf.

Copyright © Conocimiento de Windows All Rights Reserved