Product SiteDocumentation Site

9.5. Системные события syslog

9.5.1. Принципы и механизм

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.
Каждое сообщение в журнале соответствует подсистеме приложений (в документации называемой «facility»):
  • auth и authpriv: для аутентификации;
  • cron: от сервисов планировки заданий, cron и atd;
  • daemon: относится к демонам, не выделенным в особую группу (DNS, NTP и т. д.);
  • ftp: относится к FTP-серверу;
  • kern: сообщение от ядра;
  • lpr: от подсистемы печати;
  • mail: от подсистемы электронной почты;
  • news: сообщение подсистемы Usenet (в частности от сервера NNTP — Network News Transfer Protocol — управляющего новостными группами);
  • syslog: сообщения от самого сервера syslogd;
  • user: пользовательские сообщения (основные);
  • uucp: сообщения от сервера UUCP (Unix to Unix Copy Program, старый протокол, широко использовавшийся для распространения сообщений электронной почты);
  • с local0 по local7: зарезервированы для локального использования.
Каждому сообщению также присваивается уровень приоритета. Вот их список в порядке убывания:
  • emerg: “Помогите” Возникла аварийная ситуация, система возможно непригодна для использования.
  • alert: поспешите, промедление небезопасно, нужно срочно принимать меры;
  • crit: условия критические;
  • err: ошибка;
  • warn: предупреждение (возможная ошибка);
  • notice: условия нормальные, но сообщение важное;
  • info: информационное сообщение;
  • debug: сообщение для отладки.

9.5.2. Конфигурационный файл

The syntax of the /etc/rsyslog.conf file is detailed in the rsyslog.conf(5) manual page, but there is also HTML documentation available in the rsyslog-doc package (/usr/share/doc/rsyslog-doc/html/index.html). The overall principle is to write “selector” and “action” pairs. The selector defines all relevant messages, and the action describes how to deal with them.

9.5.2.1. Синтаксис селектора

Селектор представляет собой Разделённый точками с запятой список пар подсистема.приоритет (пример: auth.notice;mail.info). Звёздочка может означать все подсистемы или все приоритеты (примеры: *.alert или mail.*). Несколько подсистем можно сгруппировать, разделяя их запятой (пример: auth,mail.info). Указанный приоритет подразумевает сообщения того же или более высокого уровня; так, auth.alert соответствует сообщениям подсистемы auth с приоритетом alert или emerg. Если в начале стоит восклицательный знак, такая запись означает прямо противоположное, то есть строго более низкие приоритеты; auth.!notice, таким образом, означает сообщения от auth с приоритетом info или debug. Если в начале стоит знак равенства, такая запись означает точное соответствие указанному приоритету и только ему (auth.=notice соответствует сообщениям от auth с приоритетом notice).
Каждый элемент в списке селектора переписывает предыдущие элементы. Благодаря этому возможно ограничить выборку или исключить из неё некоторые элементы. Например, kern.info;kern.!err означает сообщения от ядра с приоритетом между info и warn. Приоритет none указывает на пустую выборку (нет приоритетов) и может использоваться для исключения подсистемы из выборки сообщений. Так, *.crit;kern.none означает все сообщения с приоритетом, равным или более высоким, чем crit, исходящим не от ядра.

9.5.2.2. Синтаксис действий

В число возможных действий входят:
  • добавление сообщения в файл (пример: /var/log/messages);
  • отправка сообщения удалённому серверу syslog (пример: @log.falcot.com);
  • отправка сообщения в существующий именованный канал (пример: |/dev/xconsole);
  • отправка сообщения одному или нескольким пользователям, если они вошли в систему (пример: root,rhertzog);
  • отправка сообщения всем пользователям в системе (пример: *);
  • вывод сообщения в текстовую консоль (пример: /dev/tty8).