9.3. Протоколирование системы
9.3. Протоколирование системы
В любой UNIX-подобной системе есть стандартные файлы протоколов (журналов). В них попадают сообщения, генерируемые ядром, системными демонами, утилитами окружения. Эти файлы размещаются в каталоге /var/log. Прикладные программы обычно помещают свои протоколы в подкаталоги этого каталога, например, /var/log/httpd — журналы HTTP-сервера. Точное расположение журнала прикладной программы зависит от ее настройки.
За ведение журналов отвечает система регистрации событий syslog. Она позволяет сортировать сообщения по источникам и степени важности, а также перенаправлять их в журнальные файлы, на консоль или на другой компьютер в сети. Все подсистемы (демоны) и правильно написанные прикладные программы не ведут протоколов самостоятельно, а посылают сообщения в систему регистрации. Дальнейшая судьба этих сообщений зависит от политики системного администратора.
Система регистрации состоит из следующих компонент:
? демон syslogd, принимающий сообщения от других процессов и перенаправляющий их указанным адресатам;
? библиотечные функции openlog(), syslog(), closelog(), посредством которых процессы общаются с демоном syslogd. Функция syslog() записывает протокольное сообщение в гнездо (сокет) /dev/log, откуда его читает демон syslogd;
? команда logger, с помощью которой сообщение демону syslogd может передать командный интерпретатор.
Демон syslogd запускается инициализационным сценарием в ходе начальной загрузки системы и работает непрерывно. Убедиться в том, что он запущен, можно с помощью команды
$ ps -ef | grep syslogd | grep -v grep
Примечание
Последняя в этом конвейере команда нужна для того, чтобы отфильтровать из вывода команды grep сведения о самой команде grep.
Если ваша система загружается в стиле 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`
Данный текст является ознакомительным фрагментом.