Служба syslog
В GNU/Linux принято сохранять информацию разной степени детализации о процессе работы программ в специальных текстовых файлах, называемых журналами. Стандартное место расположения журналов — это каталог
/var/log. Все журнальные файлы принадлежат к одной из двух категорий: системные журналы syslog и журналы прикладных программ. Не все журна- лы в /var/log обслуживаются syslog.
Служба syslog представлена демоном syslogd, запускаемым при старте опе- рационной системы автоматически и работающим в фоновом режиме. Демон syslogd является сетевой службой и способен принимать сообщения из сети.
В GNU/Linux сообщения, поступающие от различных служб, обычно не записы- ваются в один-единственный журнал. Напротив, принято называть файлы жур- налов так, чтобы по их имени можно было судить об источнике сообщений.
Конфигурационным файлом демона syslogd является /etc/syslog.conf (при- мер 16.1). Структура строк конфигурации, каждая из которых направляет не- который поток сообщений в заданный файл (или на удаленный компьютер — сервер ведения журналов), представлена двумя полями:
r определение сообщения (selector) — поле, в котором указывают классы программ, сообщения от которых должны помещаться в данный поток;
r поле действия (action) указывает, куда должен быть записан поток сооб- щений.
Пример 16.1. Файл /etc/syslog.conf |
#SELECTOR ACTION
*.crit;lpr,cron,mail.none /var/log/critical daemon.info;daemon.!err -/var/log/daemons
daemon.=err /var/log/daemons.err
authpriv.* /var/log/messages
kern.*;kern.!=info /var/log/kernel
cron.info -/var/log/cron
lpr.info -/var/log/lpr
mail.warning -/var/log/mail/mail
Из примера 16.1 заметно, что поле определения сообщения состоит из двух частей, разделенных точкой. Первая часть — источник сообщения (facility), а вторая — уровень важности (priority) сообщения. Эти две части уникально определяют все возможные сообщения, обрабатываемые syslog.
Служба syslog работает со следующими источниками сообщений (facility):
r auth — сообщения служб авторизации и безопасности;
r authpriv — сообщения служб авторизации и безопасности;
r cron — сообщения служб at и cron;
r daemon — сообщения, поступающие от демонов;
r kern — сообщения ядра;
r lpr — сообщения службы печати;
r mail — сообщения, поступающие от служб электронной почты;
r mark — источник для вставки служебных меток в журналы;
r news — сообщения службы новостей;
r security — то же, что и auth;
r syslog — собственные сообщения syslog;
r user — сообщения пользовательских программ;
r uucp — сообщения службы uucp;
r local0, ..., local7 — произвольно используемые источники.
Все сообщения разделены также по следующим уровням важности (priority),
приведенным в порядке убывания важности:
r emerg — система не работоспособна (другое название — panic);
r alert — требуется немедленное вмешательство;
r crit — критическое событие;
r err — ошибка (другое название — error);
r warning — предупреждение (другое название — warn);
r notice — нормальное, но значимое событие;
r info — информационное сообщение;
r debug — отладочная информация.
Пара источник.важность устанавливает, что сообщения от этого источника с уровнями важности, не меньшими указанного, записываются в этот канал (пример 16.2).
Пример 16.2. Определение канала журналирования |
lpr.info -/var/log/lpr
При такой настройке (см. пример 16.2) все сообщения службы печати с уров- нями важности info и выше будут записаны в файл /var/log/lpr. Знак "тире" перед именем файла разрешает асинхронную запись в журнал.
При необходимости запретить передачу в канал сообщений с уровнем важно- сти не ниже указанного ставят знак восклицания перед уровнем важности (пример 16.3).
Пример 16.3. Исключение информации определенных уровней важности |
daemon.info;daemon.!err -/var/log/daemons
В этом случае (см. пример 16.3) все сообщения от демонов с уровнями важ- ности от info до warning будут записываться в журнал /var/log/daemons, а сообщения с уровнями важности, начиная с err, записаны туда не будут.
Если же необходимо записывать в журнал сообщения только с одним уров- нем важности, то перед уровнем важности ставят знак "равно" (пример 16.4).
Пример 16.4. Запись сообщений требуемого уровня важности |
daemon.=err /var/log/daemons.err
В примере 16.4 в журнал попадут лишь сообщения об ошибках и ничего более.
Можно исключить сообщения с заданным уровнем важности (пример 16.5).
Пример 16.5. Исключение заданного уровня важности |
kern.*;kern.!=info /var/log/kernel
Информационные сообщения ядра в журнал записаны не будут (см. пример 16.5).
Звездочка обозначает любые источники или любые уровни важности (при-
мер 16.6).
Пример 16.6. Указание любых уровней важности |
authpriv.* /var/log/messages
В примере 16.6 указано, что будут записаны все любые сообщения авторизации.
Если в канал не должны быть записаны любые сообщения от каких-либо ис- точников, то удобно использовать директиву none (пример 16.7).
Пример 16.7. Исключение заданных источников |
*.crit;lpr,cron,mail.none /var/log/critical
После применения настроек из примера 16.7 в файл /var/log/critical будут на- правляться сообщения от всех источников о критических и более важных событиях, кроме любых сообщений от служб печати, почты, at и cron.
После внесения изменений в файл /etc/syslog.conf вовсе не обязательно пере- запускать syslogd. Достаточно послать ему сигнал HUP (пример 16.8).
Пример 16.8. Информирование syslogd об изменении конфигурации |
pkill -1 syslogd
Программа logger позволяет проверить настройки syslogd. Опция -p про- граммы logger предназначена для указания источника и важности сообще- ния (пример 16.9).
Пример 16.9. Посылка сообщения для журналирования |
logger -p mail.err Proverka
Команда в примере 16.9 пошлет сообщение в канал mail с уровнем важно- сти err.
Дата добавления: 2015-06-12; просмотров: 1031;