Чтение онлайн

ЖАНРЫ

Linux: Полное руководство

Аллен Питер В.

Шрифт:

Если ваша система загружается в стиле System V, то сценарий запуска демона — это

/etc/rc.d/init.d/syslog
. Как обычно, запустить демон самостоятельно вы можете с помощью команды

/etc/rc.d/init.d/syslog start

а остановить —

/etc/rc.d/init.d/syslog.stop
.

Автоматический запуск системы syslog можно отключить или включить при помощи графического конфигуратора (setup для дистрибутива Red Hal, drakxservices для Mandrake, system-config-services для Fedora Core).

В Red Hat-совместимых дистрибутивах демон syslogd устанавливается из пакета sysklogd, в состав которого входит также демон klogd, принимающий сообщения ядра

и отправляющий их на обработку демону syslogd.

Как и всякий демон, syslogd управляется конфигурационным файлом. По умолчанию это файл

/etc/syslog.conf
, однако ничто не мешает назвать его как угодно, а потом запускать syslogd с ключом
– f /path/to/config.file
. Об остальных немногочисленных ключах можно узнать но команде
man syslogd
.

По сигналу HUP демон закрывает все журнальные файлы, перечитывает конфигурационный файл и возобновляет процесс протоколирования. Чтобы изменения в конфигурационном файле вступили в силу, нужно послать демону syslogd сигнал HUP. Например, так:

$ kill -HUP `cat /var/run/syslogd.pid`

9.3.1. Конфигурационный файл /etc/syslog.conf

Это простой текстовый файл, каждая непустая и незакомментированная (знак комментария — #) строка которого имеет следующий формат:

<селектор>[;<селектор>...] <действие>

Селектор представляет собой правило отбора сообщений, а действие — указание, что с отобранными сообщениями дальше делать. Например, строка

user.* -/var/log/user.log

диктует перенаправление сообщений от пользовательских программ в файл

/var/log/user.log
.

Действиями могут быть:

♦ /абсолютное/имя/файла — записать сообщение в файл. Префикс «-» перед именем файла запрещает синхронизировать файл после каждой записи. По умолчанию syslogd после записи каждой строки выполняет вызов fsync. Это делается ради сохранности журналов, но при интенсивной записи может отнять половину процессорного времени. Поэтому следует отключать синхронизацию протоколов, в которые пишется много сообщений — например, отладочных.

♦ @имя_машины —переслать сообщение демону syslogd, работающему на указанной машине. Имя должно быть известно DNS или прописано в

/etc/hosts
; в противном случае следует писать @IP-адрес.

♦ 

/dev/console
— вывести сообщение на консоль.

♦ 

*
— вывести сообщение на экраны всех работающих в данный момент пользователей.

Несколько селекторов, отбирающих сообщения разной категории, можно группировать, разделяя точкой с запятой, для того, чтобы над ними было выполнено одно и то же действие. Действия группировать нельзя. Чтобы направить одни и те же сообщения и в файл, и на удаленный компьютер, нужно вписать в конфигурационный файл две строки с одинаковыми селекторами.

Селектор, в свою очередь, имеет формат:

<средство> [, средство2..,] . <уровень_серьезности>

Средство (facility) — это категория программы, пославшей сообщение. Категория выбирается из списка ключевых слов, приведенного в таблице 9.2.

Категории программ, ведущих протокол Таблица 9.2

Ключевое слово Назначение программы, пославшей сообщение
auth authpriv security Программы, отслеживающие регистрацию пользователей в системе и повышение привилегий пользователи (login, su)
authpriv Программы, отслеживающие повышение привилегий пользователя (команда su)
cron Выполнение заданий по расписанию (cron и at)
daemon Системные демоны, для которых не нашлось более подходящей категории
kern Ядро
lpr Подсистема
печати
mail Почтовые программы
news Подсистема, обслуживающая телеконференции Usenet
uucp Система UUCP
syslog Сам демон syslogd
user Все остальные программы
* Любая программа
none Никакая программа

Уровень серьезности (priority) определяет важность сообщения. Программы регистрируют любые сообщения — от отладочной информации до требований экстренного вмешательства — а демон syslogd игнорирует те из них, важность которых ниже, чем указано в конфигурационном файле. Уровень серьезности указывается ключевым словом, список которых в порядке возрастания важности приведен в таблице 9.3. Допускаются также ключевые слова * (все сообщения) и none (никаких сообщений).

Уровни серьезности сообщений Таблица 9.3

Ключевое слово Означает
debug Отладочные сообщении
Info Информационные сообщения о штатных ситуациях
notice Замечания: сообщения о необычных ситуациях
warning Предупреждения
err Ошибки
crit Критические ошибки
alert События, требующие срочного вмешательства
emerg События, угрожающие работе системы

В Red Hat-совместимых системах можно ставить перед уровнем серьезности дополнительные модификаторы «=» (регистрировать сообщения только указанного уровня) и «!» (игнорировать сообщения указанного и более высоких уровней). Можно также направлять сообщения не только в обычный файл, но и в именованный канал, поставив перед ним символ «|».

Листинг 9.4. Примерный файл /etc/syslog.conf

# Протоколирование аутентификации. Файл протокола

auth,authpriv.* /var/log/auth.log

*.*;auth,authpriv.none -/var/log/syslog

# Файл регистрации попыток доступа к системе, имеет

# ограниченный доступ. Обычно в этот файл записываются

# сообщения об удаленном доступе к этой машине, например,

# сообщения от демона FTP о том, какие пользователи и

# когда регистрировались на данном сервере.

authpriv.* /var/log/secure

# Сообщения пользовательских программ

user.* -/var/log/user.log

# Протоколировать все информационные сообщения, кроме

# почтовых

*.info;mail.none; -/var/log/messages

# Протоколирование почты

# Уровень отладки, информации и замечаний

mail.=debug;mail.=info;mail.=notice -/var/log/mail/info

# Уровень предупреждений

mail.=warn -/var/log/mail/warnings

Поделиться с друзьями: