Mensagens de sistema em Linux
Sistemas Operacionais devem prover meios de saber o que usuários fazem, tempo de permanência, programas executados, arquivos acessados, serviços em execução e coisas semelhantes. As mensagens com estes dados são denominadas Mensagens do Sistema.
Kernel Ring Buffer
Durante a inicialização do sistema são emitidas diversas mensagens. A maioria delas é acerca do carregamento de módulos. Essas mensagens são armazenadas no Kernel Ring Buffer. Para exibir estas mensagens utilizamos o comando dmesg. Experimente-o digitando:
dmesg | less
Daemon syslogd
As mensagens de sistema são controladas pelo daemon syslogd. Este daemon é carregado, geralmente, no início da inicialização do sistema. O arquivo de configuração do syslogd é o /etc/syslog.conf. Neste arquivo especificamos as regras do sistema de log das mensagens de sistema.
Cada linha deste arquivo é composto de um seletor e uma ação, separados por espaços ou marcas de tabulação, preferencialmente. O seletor é formado de dois subcampos: recurso e prioridade, separados por um ponto. Cada regra pode ocupar diversas linhas se as linhas (exceto a última) terminarem com uma barra invertida (‘\’).
Recursos
Os recursos ou facilidades especificam o subsistema produtor de mensagens. Podem ser:
- auth: eventos de segurança (recomendável uso do authpriv)
- authpriv: controle de acesso a eventos
- cron: serviços de agendamento crond e atd
- daemon: todos serviços sem recursos específicos
- ftp: serviço que implementa o FTP
- kern: kernel
- lpr: serviço de impressão
- mail: servidor de correio eletrônico
- mark: uso interno
- news: servidor de notícias
- security: o mesmo que auth (em desuso)
- syslog: serviço syslog
- user: mensagens do nível de usuário
- uucp: subsistema UUCP (protocolo primitivo de transferência de arquivos)
- local0 a local7: reservados para uso local. O recurso local7 costuma ser utilizado para o processo de boot.
Um asterisco pode ser utilizado para indicar todos os recursos simultaneamente
Prioridade
As prioridades definem o grau de importância de uma mensagem. Pode ser, do menor para o maior grau de importância:
- debug: depuração e testes
- info: informação básica
- notice: condição normal e significativa
- warning ou warn (em desuso): alerta, advertência
- err ou error (em desuso): erro
- crit: condição crítica
- alert: necessidade imediata de ação para solução de problema
- emerg ou panic (em desuso): situação de emergência. O sistema pode estar inutilizável.
Ao contrário do que ocorre no BSD, cada prioridade é utilizada para indicar as mensagens do seu grau de importância e superiores.
Um asterisco pode ser utilizado para indicar todas as prioridades simultaneamente. A expressão “none” indica nenhuma prioridade.
Prioridades que seguem-se a um sinal de igual especifica exatamente aquela prioridade. Prioridades precedidas por um sinal de exclamação, indicam a exclusão da prioridade e todas de maior grau de importância. Prioridades precedidas por um sinal de exclamação e um de igual excluem exatamente aquela prioridade
Recursos e prioridades múltiplos
Mais de um recurso pode ser indicado no mesmo seletor. Para tal os recursos devem ser separados por vírgulas. Se a prioridade for a mesma para os recursos pode ser indicada somente uma vez. Isto permite que o seletor
kern.info,auth.info
seja equivalente a
kern,auth.info
Múltiplos seletores podem ser especificados para a mesma ação. Basta separá-los com um ponto-e-vírgula. Seletores mais à direta têm mais precedência dos mais á esquerda, podendo ser utilizados para excluir determinados recursos, como veremos adiante.
Ação
A ação descreve o destino das mensagens do recurso especificado, na prioridade definida. As ações possíveis são:
- Arquivo: deve ser indicado o caminho completo do arquivo. Esta é a ação mais comum. Se precedido de um sinal de menos, a gravação efetiva em disco pode ser adiada, garantindo maior desempenho à custa de menor confiabilidade. A maior parte dos sistemas Linux mantém a maioria das mensagens do sistema no arquivo /var/log/syslog (como é o caso do Ubuntu) ou no /var/log/messages.
- Named Pipe ou FIFO: indica, à grosso modo, que as mensagens seja encaminhadas a um programa ou dispositivo apontado pelo named pipe. O named pipe deve ser criado com mkfifo (ou equivalente) antes do serviço syslogd ser iniciado.
- Terminal ou console: mensagem deve aparecer em determinado terminal ou console do sistema
- Computador remoto: as mensagens podem ser encaminhadas a outros computadores cujo nome esteja precedido de um sinal ‘@’. Estas mensagens não devem ser redirecionadas no computador de destino. Podemos criar assim um servidor centralizado para armazenamento de mensagens de sistema
- Usuários: enviar mensagens para usuário ou lista de usuários, geralmente em casos críticos. Um símbolo de asterisco indica que a mensagem deve ser enviada a todos usuários logados.
Exemplos
Envio para arquivo
mail.info -/var/log/mail.info
Mensagens com prioridade info ou superior do serviço de correio eletrônico, são enviadas para o arquivo /var/log/mail.info, sem sincronização (gravação) imediata.
Se o arquivo de destino for o próprio console, as mensagens serão exibidas neste
*.alert /dev/console
Seletores, recursos e prioridades múltiplas
Todos os níveis de prioridade para os recursos auth e authpriv enviados para /var/log/auth.log
auth,authpriv.* /var/log/auth.log
Exceções
Toda prioridades de todos os recursos, exceto auth e authpriv enviados para /var/log/syslog
*.*;auth,authpriv.none /var/log/syslog
Mensagens do serviço de correio, exceto as de prioridade info, enviada para o arquivo /var/log/mail
mail.*;mail.!=info /var/log/mail
Especificação de prioridade e uso de múltiplas linhas
Exatamente a prioridade debug de todos recursos, exceto auth e authpriv, para /var/log/debug, sem sincronização imediata
*.=debug;\
auth,authpriv.none -/var/log/debug
Emergências
Mensagens com prioridade de emergência de todos recursos enviadas para todos usuários
*.emerg *
Console
Todas mensagens de serviços e do serviço de correio enviadas para o terminal TTY6
daemon,mail.* /dev/tty6
Computador remoto
Mensagens críticas dos serviços enviadas para o computador pepinos.empresa.com. O endereço deste computador deve ser especificado no arquivo /etc/hosts. Também é possível resolver este nome por DNS, mas devemos nos precaver de eventual falhas neste serviço.
daemon.crit @pepinos.empresa.com
Usuário
Mensagens do serviço de correio eletrônico enviadas para os usuários root e chefao
mail.* root,chefao
Named Pipe
Mensagens de advertência (e somente estas) de todos recursos enviados para o console gráfico. O programa geralmente utilizado para exibir mensagens no console gráfico é o xconsole. Neste caso, o named pipe para ele deve ser criado com
sudo xconsole -file /dev/xconsole
A linha do /etc/syslog.conf para utilizar este named pipe é
*.=warn |/dev/xconsole
Futuro
Alguns sistemas têm instalado um substituto para o daemon syslogd. Este substituto é o syslog-ng (New Generation) e promete ser mais flexível do que o syslogd original.
[...] Mensagens de sistema [...]