Guia do Linux/Avançado/Arquivos e daemons de Log/Daemons de log do sistema
Daemons de log do sistema
[editar | editar código]Os daemons de log do sistema registram as mensagens de saída do kernel (klogd) e sistema (syslogd) nos arquivos em /var/log .
A classificação de qual arquivo em /var/log receberá qual tipo de mensagem é controlado pelo arquivo de configuração /etc/syslog.conf através de facilidades e níveis (veja [#s-log-syslogd-exemplo Arquivo de configuração syslog.conf, Seção 6.2.1.1] para detalhes).
syslogd
[editar | editar código]Este daemon controla o registro de logs do sistema.
syslogd [opções]
- opções
- -f
- Especifica um arquivo de configuração alternativo ao
/etc/syslog.conf. - -h
- Permite redirecionar mensagens recebidas a outros servidores de logs especificados.
- -l [computadores]
- Especifica um ou mais computadores (separados por ":") que deverão ser registrados somente com o nome de máquina ao invés do FQDN (nome completo, incluindo domínio).
- -m [minutos]
- Intervalo em minutos que o syslog mostrará a mensagem --MARK--. O valor padrão padrão é 20 minutos, 0 desativa.
- -n
- Evita que o processo caia automaticamente em background. Necessário principalmente se o
syslogdfor controlado peloinit. - -p [soquete]
- Especifica um soquete UNIX alternativo ao invés de usar o padrão
/dev/log. - -r
- Permite o recebimento de mensagens através da rede através da porta UDP 514. Esta opção é útil para criar um servidor de logs centralizado na rede. Por padrão, o servidor
syslogrejeitará conexões externas. - -s [domínios]
- Especifica a lista de domínios (separados por ":") que deverão ser retirados antes de enviados ao log.
- -a [soquetes]
- Especifica soquetes adicionais que serão monitorados. Esta opção será necessária se estiver usando um ambiente
chroot. É possível usar até 19 soquetes adicionais - -d
- Ativa o modo de depuração do
syslog. O syslog permanecerá operando em primeiro plano e mostrará as mensagens no terminal atual.
Na distribuição Debian, o daemon syslogd é iniciado através do script /etc/init.d/sysklogd.
Arquivo de configuração syslog.conf
[editar | editar código]O arquivo de configuração /etc/syslog.conf possui o seguinte formato:
facilidade.nível destino
A facilidade e nível são separadas por um "." e contém parâmetros que definem o que será registrado nos arquivos de log do sistema:
- facilidade - É usada para especificar que tipo de programa está enviando a mensagem. Os seguintes níveis são permitidos (em ordem alfabética):
- auth - Mensagens de segurança/autorização (é recomendável usar authpriv ao invés deste).
- authpriv - Mensagens de segurança/autorização (privativas).
- cron - Daemons de agendamento (
croneat). - daemon - Outros daemons do sistema que não possuem facilidades específicas.
- ftp - Daemon de ftp do sistema.
- kern - Mensagens do kernel.
- lpr - Subsistema de impressão.
- local0 a local7 - Reservados para uso local.
- mail - Subsistema de e-mail.
- news - Subsistema de notícias da USENET.
- security - Sinônimo para a facilidade auth (evite usa-la).
- syslog - Mensagens internas geradas pelo
syslogd. - user - Mensagens genéricas de nível do usuário.
- uucp - Subsistema de UUCP.
- * - Confere com todas as facilidades.
Mais de uma facilidade pode ser especificada na mesma linha do syslog.conf separando-as com ",".
- nível - Especifica a importância da mensagem. Os seguintes níveis são permitidos (em ordem de importância invertida; da mais para a menos importante):
- emerg - O sistema está inutilizável.
- alert - Uma ação deve ser tomada imediatamente para resolver o problema.
- crit - Condições críticas.
- err - Condições de erro.
- warning - Condições de alerta.
- notice - Condição normal, mas significante.
- info - Mensagens informativas.
- debug - Mensagens de depuração.
- * - Confere com todos os níveis.
- none - Nenhuma prioridade.
Além destes níveis os seguintes sinônimos estão disponíveis:
- error - Sinônimo para o nível err.
- panic - Sinônimo para o nível emerg.
- warn - Sinônimo para o nível warning.
- destino - O destino das mensagens pode ser um arquivo, um pipe (se iniciado por um "|"), um computador remoto (se iniciado por uma "@"), determinados usuários do sistema (especificando os logins separados por vírgula) ou para todos os usuários logados via
wall(usando "*").
Todas as mensagens com o nível especificado e superiores a esta especificadas no syslog.conf serão registradas, de acordo com as opções usadas. Conjuntos de facilidades e níveis podem ser agrupadas separando-as por ";".
OBS1: Sempre use TABS ao invés de espaços para separar os parâmetros do syslog.conf.
OBS2: Algumas facilidades como security, emitem um beep de alerta no sistema e enviam uma mensagem para o console, como forma de alerta ao administrador e usuários logados no sistema.
Existem ainda 4 caracteres que garantes funções especiais: "*", "=", "!" e "-":
- "*" - Todas as mensagens da facilidade especificada serão redirecionadas.
- "=" - Somente o nível especificado será registrado.
- "!" - Todos os níveis especificados e maiores NÃO serão registrados.
- "-" - Pode ser usado para desativar o sync imediato do arquivo após sua gravação.
Os caracteres especiais "=" e "!" podem ser combinados em uma mesma regra.
Exemplo: Veja abaixo um exemplo de um arquivo /etc/syslog.conf padrão de sistemas Debian
#
# Primeiro alguns arquivos de log padrões. Registrados por facilidade
#
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
cron.* /var/log/cron.log
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
lpr.* -/var/log/lpr.log
mail.* /var/log/mail.log
user.* -/var/log/user.log
uucp.* -/var/log/uucp.log
#
# Registro de logs do sistema de mensagens. Divididos para facilitar
# a criação de scripts para manipular estes arquivos.
#
mail.info -/var/log/mail.info
mail.warn -/var/log/mail.warn
mail.err /var/log/mail.err
# Registro para o sistema de news INN
#
news.crit /var/log/news/news.crit
news.err /var/log/news/news.err
news.notice -/var/log/news/news.notice
#
# Alguns arquivos de registro "pega-tudo".
# São usadas "," para especificar mais de uma prioridade (por
# exemplo, "auth,authpriv.none") e ";" para especificar mais de uma
# facilidade.nível que será gravada naquele arquivo.
# Isto permite deixar as regras consideravelmente menores e mais legíveis
#
*.=debug;\
auth,authpriv.none;\
news.none;mail.none -/var/log/debug
*.=info;*.=notice;*.=warn;\
auth,authpriv.none;\
cron,daemon.none;\
mail,news.none -/var/log/messages
#
# Emergências são enviadas para qualquer um que estiver logado no sistema. Isto
# é feito através da especificação do "*" como destino das mensagens e são
# enviadas através do comando wall.
#
*.emerg *
#
# Eu gosto de ter mensagens mostradas no console, mas somente em consoles que
# não utilizo.
#
#daemon,mail.*;\
# news.=crit;news.=err;news.=notice;\
# *.=debug;*.=info;\
# *.=notice;*.=warn /dev/tty8
# O pipe /dev/xconsole é usado pelo utilitário "xconsole". Para usa-lo,
# você deve executar o "xconsole" com a opção "-file":
#
# $ xconsole -file /dev/xconsole [...]
#
# NOTA: ajuste as regras abaixo, ou ficará maluco se tiver um um site
# muito movimentado...
#
daemon.*;mail.*;\
news.crit;news.err;news.notice;\
*.=debug;*.=info;\
*.=notice;*.=warn |/dev/xconsole
# A linha baixo envia mensagens importantes para o console em que
# estamos trabalhando logados (principalmente para quem gosta de ter
# controle total sobre o que está acontecendo com seu sistema).
*.err;kern.debug;auth.notice;mail.crit /dev/console
klogd
[editar | editar código]Este daemon controla o registro de mensagens do kernel. Ele monitora as mensagens do kernel e as envia para o daemon de monitoramento syslogd, por padrão.
klogd [opções]
- opções
- -d
- Ativa o modo de depuração do daemon
- -f [arquivo]
- Envia as mensagens do kernel para o arquivo especificado ao invés de enviar ao daemon do
syslog - -i
- Envia um sinal para o daemon recarregar os símbolos de módulos do kernel.
- -I
- Envia um sinal para o daemon recarregar os símbolos estáticos e de módulos do kernel.
- -n
- Evita a operação em segundo plano. Útil se iniciado pelo
init - -k [arquivo]
- Especifica o arquivo que contém os símbolos do kernel. Exemplos deste arquivo estão localizados em
/boot/System.map-xx.xx.xx. - -o
- Faz com que o daemon leia e registre todas as mensagens encontradas nos buffers do kernel, após isto o daemon é encerrado.
- -p
- Ativa o modo paranóia. Isto fará o
klogdsomente carregar detalhes sobre os módulos quando os caracteres Oops forem detectados nas mensagens do kernel. É recomendável ter sempre a última versão do klogd e evitar a utilização desta opção em ambientes críticos. - -s
- Força a utilização da interface de chamadas do sistema para comunicação com o kernel.
- -x
- Esconde tradução EIP, assim ele não lê o arquivo
/boot/System.map-xx-xx-xx.
A especificação de um arquivo com a opção -k é necessária se desejar que sejam mostradas a tabela de símbolos ao invés de endereços numéricos do kernel.