A atividade dos programas são registradas em arquivos localizados em
/var/log . Estes arquivos de registros são chamados de
logs e contém a data, hora e a mensagem emitida pelo programa
(violações do sistema, mensagens de error, alerta e outros eventos) entre
outros campos. Enfim, muitos detalhes úteis ao administrador tanto para
acompanhar o funcionamento do seu sistema, comportamento dos programas ou
ajudar na solução e prevenção de problemas.
Alguns programas como o Apache, exim,
ircd e squid criam diversos arquivos de log e por
este motivo estes são organizados em sub-diretórios (a mesma técnica é usada
nos arquivos de configuração em /etc, conforme a padrão FHS
atual).
Um arquivo de log é normalmente composto pelos seguintes campos:
Data|Hora|Máquina|daemon|mensagem
O campo máquina é o nome do computador que registrou a mensagem (a máquina pode atuar como um servidor de logs registrando mensagens de diversos computadores em sua rede). O campo daemon indica qual programa gravou a mensagem.
O uso dos utilitários do console pode ajudar muito na pesquisa e monitoração
dos logs, por exemplo, para obter todas as mensagens do daemon
kernel da estação de trabalho wrk1, eliminando os
campos "wrk1" e "kernel":
cat /var/log/*|grep 'wrk1'|grep 'kernel'|awk '{print $1 $2 $3 $6 $7 $8 $9 $10 $11 $12}'
Os parâmetros "$1", "$2" do comando awk indica
que campos serão listados, (omitimos $4 e $5 que são respectivamente
"wrk1" e "kernel").
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 Arquivo de configuração
syslog.conf, Section 17.2.1.1 para detalhes).
Este daemon controla o registro de logs do sistema.
syslogd [opções]
/etc/syslog.conf.
syslogd for controlado pelo init.
/dev/log.
syslog rejeitará conexões externas.
Na distribuição Debian, o daemon syslogd é iniciado
através do script /etc/init.d/sysklogd.
syslog.conf
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:
cron e
at).
syslogd.
Mais de uma facilidade pode ser especificada na mesma linha do
syslog.conf separando-as com ",".
Além destes níveis os seguintes sinônimos estão disponíveis:
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 "-":
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
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]
syslog
init
/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.
Este comando permite enviar uma mensagem nos log do sistema. A mensagem é
enviada aos logs via daemon syslogd ou via soquete do sistema, é
possível especificar a prioridade, nível, um nome identificando o processo,
etc. Seu uso é muito útil em shell scripts ou em outros eventos do sistema.
logger [opções] [mensagem]
Onde:
syslog.conf, Section 17.2.1.1. O valor padrão
prioridade.nível é user.notice
Mais detalhes sobre o funcionamento sobre o daemon de log do sistema
syslogd, pode ser encontrado em syslogd, Section 17.2.1
Exemplos: logger -i -t focalinux Teste teste teste, logger -i -f /tmp/mensagem -p security.emerg
Guia Foca GNU/Linux
Versão 5.20 - Sunday, 03 de November de 2002gleydson@cipsga.org.br