Estoy usando Centos 6, registro rsyslog. La consola está inundada de mensajes del núcleo.
- Klogd no se está ejecutando (estoy usando rsyslog)
- La configuración de Rsyslog no dirige nada a la consola
- Incluso intenté detener por completo rsyslog
Aún así, algo está inundando mi consola con mensajes de registro del kernel. ¿Qué es y cómo hago que pare?
Actualización : Estos son los mensajes generados por el núcleo (hardware, iptables, etc.), cosas que salen de /proc/kmsg
esta manera:
Shorewall: pub2loc: DROP: IN = br0 OUT = MAC = xxx SRC = xxx DST = xxx LEN = 60 TOS = 0x00 PREC = 0x00 TTL = 128 ID = 15731 DF PROTO = TCP SPT = 63767 DPT = 3493 WINDOW = 8192 RES = 0x00 SYN URGP = 0
xterm
ventana, por lo que si la consola se inunda no me molesta).Respuestas:
Te sugiero que modifiques tu
/etc/sysctl.conf
. Específicamente, desea ajustar la línea kernel.printk .No estoy seguro de cuáles son las configuraciones predeterminadas de centos, pero parece probable que las cosas estén más detalladas de lo que necesita.
También vea la sección de muro costero en el registro. No tiene que usar el objetivo LOG para iniciar sesión, puede usar otras herramientas o ajustar la gravedad del registro y ajustar las cosas para controlar a dónde van los mensajes.
fuente
Para establecer los valores en tiempo de ejecución, use
sysctl
. (Supongo que también se puede escribir/proc/sys/kernel/printk
directamente y aparentemente también se puede usardmesg -n CUR
como se describe aquí )Monitor:
Los separadores en la salida son pestañas individuales, por cierto.
Conjunto. Aquí los separadores son solo espacios. Funciona igual
Consulte
man sysctl
- "configurar los parámetros del kernel en tiempo de ejecución" para obtener más información.Recordatorio de los niveles de gravedad y los cuatro valores de kernel.printk dados por Brian arriba:
En mi CentOS: 7 4 1 7
Esto es demasiado ruidoso, solo quiero crítico y activo (sin errores). Los mensajes sin etiquetar deben considerarse como advertencia, por lo que DEF es bueno:
Establecer como: 3 4 1 3
fuente
man klogctl
También explica los niveles.También encontré esto útil. En las distribuciones basadas en RHEL puede
cat /proc/sys/kernel/printk
ver cuáles son sus configuraciones actuales.Se encuentran cuatro valores en el archivo printk. Cada uno de estos valores define una regla diferente para tratar con mensajes de error. El primer valor, llamado nivel de registro de la consola, define la prioridad más baja de los mensajes impresos en la consola. (Tenga en cuenta que, cuanto menor sea la prioridad, mayor será el número de nivel de registro). El segundo valor establece el nivel de registro predeterminado para los mensajes sin un nivel de registro explícito asociado a ellos. El tercer valor establece la configuración de nivel de registro más baja posible para el nivel de registro de la consola. El último valor establece el valor predeterminado para el nivel de registro de la consola.
El uso del parámetro LOGLEVEL en / etc / sysconfig / init para establecer el nivel de registro de la consola ya no es compatible. Para establecer el nivel de registro de la consola en Red Hat Enterprise Linux 6, pase loglevel = 'como parámetro de tiempo de arranque. Por ejemplo, loglevel = 6 imprimirá todos los mensajes menores que 6 (no igual a solo menor que).
Crédito a:
fuente
Aquí está la forma "oficial" de hacerlo, según RedHat :
fuente
También puede suprimir temporalmente todo el registro del núcleo en la consola utilizando:
Ver también: https://askubuntu.com/questions/97256/how-do-i-disable-messages-or-logging-from-printing-on-the-console-virtual-termin
fuente
Lo que ves son mensajes de registro del kernel impresos en la consola. Los mensajes de registro que llegan a la consola dependen del nivel de registro de consola actualmente establecido.
Cuando el cmdline del kernel incluye el
quiet
parámetro del kernel, el nivel de registro de la consola resultante es4
( es decir, errores y peor). Sin él, se establece en7
(es decir, información y peor).Puede ver los parámetros activos del kernel con
cat /proc/cmdline
y su nivel de registro de consola actual consysctl kernel.printk
. Se puede cambiar dinámicamente condmesg -n X
(o incluso consysctl -w
).Para que el cambio sea permanente, puede agregar parámetros del kernel a cmdline del kernel (por ejemplo,
quiet
y / ologlevel=X
) o agregar un.conf
archivo sysctl en/etc/sysctl.d
.El parámetro del núcleo se puede agregar así:
fuente
Como se trata de un sitio relacionado con el desbordamiento de la pila, comenzaré diciendo que no debe apagar la salida, debe abordar los errores.
Si está en una consola y ni siquiera puede ver lo que está haciendo debido a los mensajes, intente escribir esto.
sudo dmesg -D
Eso debería hacer que sea lo suficientemente silencioso como para mirar las otras soluciones.
fuente
Si está en un atasco real, simplemente puede deshabilitar el servicio syslog temporalmente en caso de que haya una inundación tal que no pueda ver o escribir nada correctamente.
fuente