Introdução aos níveis de log do kernel do Linux

Introdução aos níveis de log do kernel do Linux

Objective

O objectivo deste tutorial é aprender sobre os vários níveis de log do kernel do linux, como eles são organizados, e como podemos configurar as mensagens que devem ser exibidas na consola, dependendo da sua gravidade.

Requisitos

  • privilégios do Root para editar arquivos de configuração

Dificuldade

FÁCIL

Introdução

gestão do kernel Linux arquivos de log é um aspecto crucial de uma máquina de administração: os logs podem simplesmente nos informar sobre o estado de daemon, ou mostrar crítica avisos ou mensagens., Neste tutorial, vamos ver os vários tipos de nível de log usado pelo kernel linux, como eles são organizados por gravidade e como podemos filtrar mensagens exibidas no console dependendo dele.

O kernel do Linux níveis de log

basicamente, Existem oito níveis de log que uma mensagem enviada pelo kernel do linux pode adotar, a partir delevel 0e diminuição na severidade ” atélevel 7: o mais baixo nível de log de identificador, a mais crítica do contexto., quando um nível de log é definido como o padrão para o console, persistentemente ou temporariamente, ele atua como um filtro, de modo que apenas mensagens com um nível de log inferior a ele, (portanto, mensagens com maior severidade) são exibidas. Vejamos, brevemente, como os níveis de log são organizados: o primeiro nível de log é0, identificado peloKERN_EMERGstring. Este é o nível mais alto em ordem de gravidade: é adotado por mensagens sobre instabilidade do sistema ou acidentes iminentes.,
Loglevel1, ouKERN_ALERTé o que vem imediatamente depois. Este nível é utilizado em situações em que a atenção do utilizador é imediatamente necessária.
The next log level in order of severity isKERN_CRIT, or loglevel2. Este nível de gravidade é usado para informar sobre erros críticos, tanto de hardware ou software relacionados.
Loglevel3, also identified by theKERN_ERRstring, it’s the next in the scale., As mensagens que adotam este nível são frequentemente usadas para notificar o usuário sobre erros não críticos, como por exemplo um reconhecimento falhado ou problemático do dispositivo, ou mais geralmente problemas relacionados com o driver.

SUBSCRIBE NEWSLETTER& RSS
Subscreva RSS e NEWSLETTER e receba as últimas notícias, empregos, conselhos de carreira e tutoriais do Linux.,

KERN_WARNING, ou loglevel4é o nível de log é normalmente usado como padrão na maioria das distribuições linux. Este nível é usado para exibir avisos ou mensagens sobre erros não iminentes.
Loglevel5it’sKERN_NOTICE

. Mensagens que usam este nível de gravidade são sobre eventos que podem ser dignos de nota.,
Loglevel6it’sKERN_INFO: this is the log level used for informational messages about the action performed by the kernel.
Finalmente, temosKERN_DEBUG, ou loglevel7, que é usado principalmente para a depuração.

Como verificar o nível de Registo predefinido actual

verificar o nível de Registo predefinido usado no nosso sistema é muito fácil. Tudo o que temos a fazer é examinar o conteúdo do arquivo/proc/sys/kernel/printk., Para aqueles de vocês que não sabem,/procé umvirtual filesystem: os arquivos contidos nela não são, na verdade, sobre o disco,mas são uma representação visual do estado do sistema criado pelo kernel andmaintained na memória. Neste caso, por exemplo, podemos usar o arquivo mencionado acima para consultar informações sobre o nível padrão de log da consola definido em nosso sistema. Tudo o que temos a fazer é:

$ cat /proc/sys/kernel/printk

Esse é o típico saída do comando:

4 4 1 7

O primeiro valor em nossa saída é o atualconsole_loglevel., Esta é a informação que estávamos procurando: o valor,4neste caso, representa o nível de log atualmente usado. Como dito anteriormente, isso significa que apenas as mensagens que adotam um nível de gravidade maior do que ele, serão exibidas no console.
O segundo valor na saída representa odefault_message_loglevel. Este valor é usado automaticamente para mensagens sem um nível de log específico: se uma mensagem não estiver associada a um nível de log, este será usado para ele.
The third value in the output reports theminimum_console_loglevelstatus., Indica o loglevel mínimo que pode ser usado paraconsole_loglevel. O nível aqui usado é1, o mais alto.
Finally, the last value represents thedefault_console_loglevel, which is the default loglevel used forconsole_loglevelat boot time.,
Por uma questão de completude, deve dizer-se que a mesma informação pode ser recuperada usando osysctlcomando, executando:

$ sysctl kernel.printk

Alterar o padrão do console do nível de log

só vimos como obter informações sobre o atual loglevel em uso para o console. Em algumas situações podemos querer mudar esse valor: vamos ver como podemos realizar esta tarefa.
O método mais simples que podemos usar, é escrever o novo valor para o arquivo/proc/sys/kernel/printk., Esta, no entanto, é uma solução temporária, e a nova configuração não vai persistir uma reinicialização da máquina., Dizer que queremos mudar o padrão do console loglevel3, é aqui que gostaríamos de executar:

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

Ou, se estiver usando orootconta diretamente:

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

examinando o conteúdo do arquivo, podemos verificar o loglevel agora é o especificado em nosso comando:

$ cat /proc/sys/kernel/printk3 4 1 7

podemos obter o mesmo resultado usando osysctlcomando:

sudo sysctl -w kernel.printk=3

Deixe-me repetir novamente: estes são temporários, não-persistente soluções., Para alterar o padrão de loglevel de forma persistente, devemos modificar o/etc/default/grubarquivo, passando ologlevelparâmetro de linha de comando do kernel no boot: Acima é o conteúdo de /etc/default/grub arquivo, e o destaque é o parâmetro que deve ser adicionado aoGRUB_CMDLINE_LINUX, que contém o kernel instruções de linha de comando. Neste caso, usamosloglevel=3, uma vez que queríamos usar esse loglevel específico para o console., Depois de modificar o arquivo e salvar as alterações, precisamos recarregar grub, para que a nova configuração será aplicada na próxima reinicialização: o comando para executar esta operação depende da distribuição, estamos executando. Genericamente, o comando é:

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

Na distribuição baseada no Debian, um script wrapper é usado basicamente para executar a mesma operação:

$ sudo update-grub

configuração Do grub será atualizada, e na próxima reinicialização, o nível de log especificado será adotado como padrão.,

Conclusions

In this tutorial we have learned how the linux kernel logs are organized depending on their severity level. Também vimos como podemos alterar a configuração padrão para que apenas certas mensagens enviadas pelo kernel sejam exibidas no console, usando os mesmos critérios. Finalmente vimos como tornar essas mudanças persistentes.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *