# Guia do Linux/Avançado/Arquivos e daemons de Log/Daemons de log do sistema
## Daemons de log do sistema

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

Este daemon controla o registro de logs do sistema.
syslogd [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 syslogd for controlado pelo init.

#### -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 syslog rejeitará 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

O arquivo de configuração /etc/syslog.conf possui o seguinte formato:
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 (cron e at).
** 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

### klogd

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]

#### -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 klogd somente 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.