Порядок выявления неисправностей и их устранения
527
Рис. 11.2.
Попытка найти причину сбоя в работе почты (UNIX-система)
Журналы в Linux: демон syslogd
В любой UNIX-системе, коей является и Linux, имеются
демоны протоколирования
(далее просто «демоны»). Демоны записывают в протоколы (журналы)
сообщения,
генерируемые ядром, сервисами, пользовательскими программами. В большинстве
случаев файлы протоколов размещаются в каталоге
/var/log
.
Основным демоном протоколирования является syslogd. Он имеется практически
на всех UNIX-системах: от самых старых до самых новых. Правда, в современных
дистрибутивах применяются модифицированные версии syslogd: rsyslogd или
syslog-ng. Первый из них получил большее распространение, поэтому мы его и рас-
смотрим. Секрет популярности rsyslogd — в файле конфигурации,
синтаксис кото-
рого идентичен синтаксису файла настроек демона syslogd. Это очень удобно:
во-первых, не нужно изучать новый синтаксис, во-вторых, подобие формата файла
упрощает миграцию на rsyslogd — достаточно просто переименовать файл конфи-
гурации и запустить новый демон протоколирования.
Иногда пользователи отключают сервис syslogd (или rsyslogd). Настоятельно реко-
мендуем не делать этого. Ведь у Linux довольно развита функция самодиагностики,
и в случае возникновения сбоя по содержимому журналов вы сможете понять,
528
Глава 11
в чем причина сбоя, и устранить ее. Во всяком случае, с записями в журнале это
будет
проще сделать, чем без них.
Основным файлом конфигурации демона syslogd является файл
/etc/syslog.conf
, а де-
мона rsyslogd — файл
rsyslog.conf
. Формат этих двух файлов следующий:
селектор[;селектор] действие
В некоторых системах, например в Ubuntu, файл
/etc/rsyslog.conf
является общим, а
конкретные настройки, относящиеся к протоколированию, находятся в отдельных
файлах в каталоге
/etc/rsyslog.d
. Формат всех этих файлов аналогичен формату файла
rsyslog.conf
. Кстати, в openSUSE вам понадобятся права root даже для того,
чтобы
лишь прочитать файл
/etc/rsyslog.conf
.
Итак, рассмотрим параметры основного файла конфигурации демона syslogd:
параметр
селектор
определяет, какие сообщения должны быть запротоколирова-
ны. Вот список наиболее часто использующихся селекторов:
•
auth
,
security
— все, что связано с регистрацией пользователя в системе;
•
authpriv
— отслеживает программы, изменяющие привилегии пользовате-
лей, например программу su;
•
cron
— сообщения планировщиков заданий;
•
kern
— сообщения ядра;
•
mail
— сообщения почтовых программ;
•
news
— сообщения новостного демона;
•
uucp
— сообщения службы Unix-to-Unix-CoPy.
Параметр уже давно не ис-
пользуется, но файл конфигурации демона все еще содержит упоминание об
этой службе;
•
syslog
— сообщения самого демона syslogd;
•
user
— сообщения пользовательских программ;
•
daemon
— сообщения различных сервисов;
•
*
— все сообщения.
При указании селектора можно определить, какие сообщения нужно протоколи-
ровать:
•
debug
— отладочные сообщения;
•
info
— информационные сообщения;
•
err
— ошибки;
•
warning
— предупреждения (некритические ошибки);
•
crit
— критические ошибки;
•
alert
—
тревожные сообщения, требующие вмешательства администратора;
Порядок выявления неисправностей и их устранения
529
•
emerg
— очень важные сообщения (произошло что-то такое, что мешает
нормальной работе системы);
•
notice
— замечания.
Впрочем, обычно селекторы указываются так:
название_селектора.*
Это означает, что будут протоколироваться все сообщения селектора. Вот еще
несколько примеров:
•
daemon
.
*
— протоколируются все сообщения сервисов;
•
daemon.err
— регистрировать только сообщения об ошибках сервисов.
теперь перейдем к параметру
действие
— это второе поле файла конфигурации.
В большинстве случаев
действие
— это имя файла журнала, в
который нужно
записать сообщение селектора. Если перед именем файла стоит знак минус (
–
),
то после каждой записи в журнал демон не будет выполнять синхронизацию
файла, т. е. осуществлять системный вызов
fsync()
. Это повышает производи-
тельность системы, поскольку сообщений обычно много, и если после каждого
выполнять синхронизацию журнала, система будет работать медленно.
Фрагмент конфигурационного файла
rsyslog.conf
(
syslog.conf
) приведен в листин-
ге 11.1.
Листинг 11.1. Фрагмент файла конфигурации /etc/rsyslog.conf
# Сообщения ядра протоколируются на консоль
#kern.* /dev/console
# Протоколировать все сообщения (кроме почты) в /var/log/messages
*.info;mail.none;authpriv.none;cron.none /var/log/messages
# Сообщения селектора authpriv записываются в файл /var/log/secure
authpriv.* /var/log/secure
# Сообщения почты (их
будет много, если запущен агент MTA вроде postfix)
# записываются в файл maillog
mail.* -/var/log/maillog
# Сообщения планировщиков заданий записываются в cron
cron.* /var/log/cron
# Особо критичные сообщения выводятся на экран всех работающих в данный момент
пользователей (вместо имени файла указана звездочка)
*.emerg *
# Сообщения UUCP и сообщения сервера новостей записываются в /var/log/spooler
uucp,news.crit /var/log/spooler
# Загрузочные сообщения записываются в boot.log
local7.* /var/log/boot.log