Product SiteDocumentation Site

9.5. syslog Eventos de sistema

9.5.1. Princípio e mecanismo

Starting with Debian Bookworm, the rsyslog package is no longer installed by default, which in the past provided the default logging functionality. Instead, the log is provided by systemd's journal, which can be accessed by the journalctl(5) command.
There are situations, where it is necessary or desired to install rsyslog, though, e.g. to send all log messages to a central server. After installation, the rsyslogd daemon is responsible for collecting service messages coming from applications and the kernel, then dispatching them into log files (usually stored in the /var/log/ directory). It obeys the /etc/rsyslog.conf configuration file.
Cada mensagem de log é associada com um subsistema de aplicação (chamado "facilidade" ou “facility” na documentação):
  • auth e authpriv: para autenticação;
  • cron: vem de serviços de agendamento de tarefas, cron e atd;
  • daemon: afeta um daemon sem nenhuma classificação especial (DNS, NTP, etc.);
  • ftp: relacionado ao servidor FTP;
  • kern: mensagem vinda do núcleo;
  • lpr: vem do subsistema de impressão;
  • mail: vem do subsistema de e-mail;
  • news: mensagem do subsistema Usenet (especialmente do NNTP — Network News Transfer Protocol — servidor que gerencia newsgroups);
  • syslog: mensagens do próprio servidor syslogd;
  • user: mensagens de usuário(a) (genéricas);
  • uucp: mensagens do servidor UUCP (Unix to Unix Copy Program, um antigo protocolo notavelmente usado para distribuir mensagens de e-mail);
  • local0 até local7: reservado para uso local.
Cada mensagem está associada com um nível de prioridade. Está é a lista em ordem decrescente:
  • emerg: “Socorro!” Existe uma emergência, o sistema provavelmente não está usável.
  • alert: se apresse, qualquer atraso pode ser perigoso, é preciso agir imediatamente;
  • crit: as condições são críticas;
  • err: erro;
  • warn: aviso (erro potencial);
  • notice: as condições estão normais, mas a mensagem é importante;
  • info: mensagem informativa;
  • debug: mensagem de depuração.

9.5.2. O arquivo de configuração

A sintaxe do arquivo /etc/rsyslog.conf é detalhada na página de manual rsyslog.conf(5), mas também existe documentação em HTML disponível no pacote rsyslog-doc (/usr/share/doc/rsyslog-doc/html/index.html). O principal princípio e escrever os pares “selector” e “action”. O "selector" define todas as mensagens relevantes, e "action" descreve como lidar com elas.

9.5.2.1. Sintaxe do seletor

O seletor é uma lista separada por ponto e vírgula de pares de subsistema.prioridade (exemplo: auth.notice;mail.info). Um asterisco pode representar todos os subsistemas ou todas as prioridades (exemplos: *.alert ou mail.*). Vários subsistemas podem ser agrupados, separando-os com uma vírgula (exemplo: auth,mail.info). A prioridade indicada também cobre mensagens de prioridade igual ou mais alta; assim auth.alert indica as mensagens do subsistema auth de prioridade alert ou emerg. Prefixado com um ponto de exclamação (!), indica o oposto, em outras palavras, as prioridades estritamente abaixo; auth.!notice, portanto, indica mensagens emitidas a partir de auth, com prioridade info ou debug. Prefixada com um sinal de igual (=), corresponde precisamente e apenas à prioridade indicada (auth.=notice apenas se refere a mensagens vindas de auth com prioridade notice).
Cada elemento da lista no seletor sobrescreve elementos prévios. Assim é possível restringir um conjunto ou excluir certos elementos dele. Por exemplo, kern.info;kern.!err se refere a mensagens vindas do núcleo com prioridade entre info e warn. A prioridade none indica uma conjunto vazio (sem prioridades), e pode servir para excluir um subsistema de um conjunto de mensagens. Assim, *.crit;kern.none indica todas as mensagens de prioridade igual ou maior que crit não vindas do núcleo.

9.5.2.2. Sintaxe das ações

As várias ações possíveis são:
  • adiciona a mensagem a um arquivo (exemplo: /var/log/messages);
  • enviar a mensagem a um servidor remoto syslog (exemplo: @log.falcot.com);
  • envia a mensagem a um pipe nomeado existente (exemplo: |/dev/xconsole);
  • envia a mensagem a um(a) ou mais usuários(as), se estiverem logados(as) (exemplo: root,rhertzog);
  • enviar a mensagem para todos(as) usuários(as) logados(as) (exemplo: *);
  • escrever a mensagem em um console texto (exemplo: /dev/tty8).