Product SiteDocumentation Site

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

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

Демон rsyslogd отвечает за сбор служебных сообщений от приложений и ядра и дальнейшее распределение их по файлам журналов (обычно хранящимся в каталоге /var/log/). Он управляется конфигурационным файлом /etc/rsyslog.conf.
Каждое сообщение в журнале соответствует подсистеме приложений (в документации называемой «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. Конфигурационный файл

Синтаксис файла /etc/rsyslog.conf описан на странице руководства rsyslog.conf(5), но также есть и документация в формате HTML, доступная в пакете rsyslog-doc (/usr/share/doc/rsyslog-doc/html/index.html). Общий принцип состоит в написании пар «селектор» и «действие». Селектор определяет подмножество сообщений, а действия описывают, что с ними делать.

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).