Что заносится в журнал
Очень важно понимать различия между журналами системы Linux. Существует два основных типа журналов: системные журналы и журналы приложений. В этом параграфе мы рассматриваем системные журналы, поскольку они есть в любой системе. Что касается журналов приложений, то каждое приложение (программа) может иметь (или не иметь) свой журнал, зависящий от конфигурации этой программы.
В системные журналы, как правило, записываются сообщения и предупреждения ядра системы, в том числе о загрузке модулей, данные от демона sendmail, отслеживающего сообщения, обрабатываемые системой, а также сообщения об успешных или неудачных попытках входа в систему.
Записи в системные журналы заносятся демоном syslogd, запускаемым при загрузке системы. Демон получает сообщения восьми уровней серьезности от различных процессов - ядра, системы электронной почты, пользовательских программ, конфигурированных на использование syslogd, а также аутентификационных программ, наподобие программы входа в систему.
Перечислим уровни серьезности сообщений в порядке возрастания:
debug (отладочные);
info (информационные);
notiсе (извещения);
warning (предупреждения);
err (сообщения об ошибках);
crit (критические);
alert (предостережения);
emerg (аварийные).
По этим уровням, записанным в файле /etc/syslog. conf, демон syslogd определяет, в какие журналы заносить те или иные сведения. Файл
/etc/
syslog. conf содержит множество записей - по одной на строку по два поля, разделенных пробелами, в каждой. Левое поле содержит список источников и уровней сообщений, правое - файл журнала, в который они заносятся.
Пары источник-уровень в левом поле перечисляются через точку с запятой. Источники указаны по именам — например, mail (электронная почта), kern (ядро системы), user (программы пользователей) или auth (аутентификационные программы). Примеры пар источник-уровень:
mail. err: сообщения об ошибках, генерируемые демоном электронной почты;
* . info: все информационные сообщения;
kern. emerg: аварийные сообщения от ядра.
Рассмотрим файл
/ etc / sys log
.
conf,
входящий в дистрибутив Linux Red Hat 7.1.
# Запись всех сообщений ядра" на 'консоль.
# Не записывать больше, чтобы не засорять экран.
# kern.* /dev/console .
# Записывать все (кроме почты) уровня info и выше.
# Не записывать частных аутентификационных рообщений!
*.info;mail.none;news.none;authpriv.none /var/log/messages
# Ограниченный доступ к файлу authpriv.
authpriv.* /var/log/secure
# Запись всех почтовых сообщений в одном месте.
mail.* /var/log/maillog
# Аварийные сообщения рассылаются всем и записываются
# на другой машине.
*. emerg *
# Запись сообщений об ошибках электронной почты и новостей уровня err
# и выше в отдельном файле.
uucp,news.crit /var/log/spooler
# Запись сообщений о загрузке также в файл bopt.log
loca17.* /var/log/boot.log
Первая важная строка этого файла:
*.info;mail.none,news.none;authpriv.none /var/log/messages
В ней указана запись всех информационных сообщений, кроме сообщений от программ электронной почты, групп новостей и аутентификационных программ (обозначенных составляющими
mail .none;news .none; authpriv.none), в файл /var/log/messages. Далее следует строка
authpriv.* /var/log/secure
предписывающая запись всех аутентификационных сообщений в файл /var / log /secure.
В следующей строке указано помещать все сообщения от программ электронной почты в файл/var/log/maillog.
mail.* /var/log/maillog
Наконец, строка
uucp,news.crit /var/log/spooler
указывает, что определенные сообщения, связанные с работой программ электронной почты и новостей, записываются в файл /var /log/spooler.
Вероятно, вы обратили внимание, что сообщения распределяются по разным файлам. Это делается для ограничения объемов журналов, а также для частичной классификации сообщений. Если сваливать в один файл сообщения от всех источников и всех уровней серьезности, разобраться в этом файле будет невозможно.
Стратегию ведения регистрационных журналов можно поменять, изменив файл /etc/syslog. conf и заставив демон syslogd загрузить новые конфигурационные данные командой
#
kill -HUP `cat /var/run/syslogd.pid"
Обратите внимание на применение обратных кавычек, указывающих, что стандартный вывод заключенной в них команды используется как аргумент команды kill -HUP. Флажок -HUP команды kill указывает, что процесс должен заново считать конфигурационные данные без завершения работы.