Ubuntu - por que o / var / log / dmesg pararia de atualizar após o boot? não mostra erros de panic / cpu_hung que o console mostra

4

Portanto, eu tenho uma VM de instalação do Ubuntu 10.04 em um host. Último kernel do servidor 2.6.38-15. / var / log / dmesg exibe apenas o boot, mas irá parar de gravar depois disso. Ele não mostrará os erros trace / cpu_hung que estou tentando solucionar. /var/log/dmesg.0, dmesg.1 nothing - Eu fiz uma busca de string pelo texto que aparece no console durante o travamento e NADA é logado em qualquer lugar em / var / log / *.

Eu tenho que ligar para o provedor e pedir que façam uma captura de tela do console, pois nada aparece no dmesg.

Por que o / var / log / dmesg não registraria pânico no kernel, ou algo assim?

    
por Tom G 06.07.2012 / 02:17

2 respostas

7

Se você corrigir o registro do kernel após o tempo de inicialização ou não, isso não ajudará nas mensagens de kernel panic. Quando seu kernel entra em pane, ele pára o agendamento, então seu daemon de registro nunca conseguirá anotar as mensagens do kernel. Se você quiser pegá-los, você pode procurar em kdump para obter descrições completas do kernel e / ou o netconsole módulo do kernel para enviar as mensagens do kernel via UDP para um servidor syslog remoto.

Quanto à obtenção de mensagens do kernel em /var/log/dmesg tempo de inicialização passado, mas fora de falhas graves do kernel, tente ter algo assim em /etc/syslog.conf (ou /etc/rsyslog.conf se estiver usando rsyslog ):

kern.* /var/log/dmesg

Para rsyslog , o arquivo também deve conter:

$ModLoad imklog.so

Deixe-me saber se você está usando syslog-ng , seria um pouco mais complicado de cobrir.

    
por 06.07.2012 / 02:26
2

A razão é que /var/log/dmesg é um arquivo estático, criado no final do processo de inicialização.

Estou mais familiarizado com o Debian, no qual o arquivo /etc/init.d/bootmisc.sh cria /var/log/dmesg em uma chamada para o savelog. O Ubuntu faz isso através de /etc/init/dmesg.conf .

Para o registro do sistema durante operações normais, você vai querer se referir a /var/log/syslog , como Pierre Carrier nota.

Como o kernel panic frequentemente (embora nem sempre) interrompe processos do usuário (como syslog) e E / S de disco, você terá que usar um recurso de criação de log do kernel (kdump, netconsole) para capturar panes do kernel. Outra opção é registrar via console serial (possivelmente serial-over-LAN com suporte IPMI / ILOM apropriado), ou com uma sessão gdb anexada.

    
por 06.07.2012 / 03:57