Европейский Университет в Санкт-Петербурге
Опубликован: 19.10.2005 | Доступ: свободный | Студентов: 1745 / 156 | Оценка: 4.31 / 3.82 | Длительность: 18:28:00
Лекция 6:

Удаленный доступ по коммутируемым каналам связи. Протоколирование работы системы

< Лекция 5 || Лекция 6: 1234 || Лекция 7 >

Настройка syslogd

Демон syslogd (файл конфигурации /etc/syslog.conf ) протоколирует события, информацию о которых ему поставляют другие процессы, вызывая функцию syslogd (). В файле /etc/syslog.conf определяется, какие события нужно протоколировать и как.

Синтаксис записи в /etc/syslog.conf таков:

источник.уровень		действие

Источник - это условное название процесса или группы процессов, которые могут генерировать сообщения о событиях. Уровень - это степень серьезности сообщения (ошибка, фатальный сбой, предупреждение, информационное сообщение и т.п.). Источник в оригинальной документации называется facility, в переводной литературе используют понятие "средство". Однако мы будем использовать термин " источник ", так как речь идет именно об источнике сообщений. Два этих поля ( источник.уровень и действие ) отделяются друг от друга табуляцией.

Общими для большинства систем UNIX являются источники, перечисленные в табл. 16.1. Полный перечень источников и уровней для вашей системы приведен в man syslog.conf.

Таблица 16.1. источники сообщений suslogd
Источник Программы, которые по умолчанию генерируют сообщения от имени этого источника в Solaris 9
user сообщения от пользовательских процессов
kern ядро
mail почтовые программы
daemon демоны, например, in.ftpd
auth login, su, getty и другие, связанные с аутентификацией
lpr подсистема печати, в т.ч. lpr, lpc
news зарезервировано для программ телеконференций типа inn
cron cron, crontab, at (в настоящее время в Solaris не используется)
local0-local7 зарезервировано для других программ
mark специальный источник для добавления меток времени в файл протокола демоном syslogd

Если в поле источника стоит знак "звездочка"(*), например * .info, это означает все события всех источников уровня info, за исключением событий источника mark.

Уровень сообщения соответствует степени его серьезности, в таблице 16.2 уровни расположены в порядке убывания серьезности:

Таблица 16.2. Уровни протоколирования syslogd
Уровень Чему соответствуют
emerg Состояние совершенного ужаса, надо сообщить всем пользователям, что дело - табак
alert Нехорошее состояние; надо срочно исправлять положение, иначе быть беде, например, испортился важный системный файл
crit Сообщение о критической ошибке, например сбоит жесткий диск
err Прочие ошибочные состояния
warning Предупреждение (например, место на диске заканчивается, но дело еще не пахнет керосином)
notice Предупреждение о какой-то проблеме, это не рассматривается как ошибка
info Информационное сообщение - так, чтобы мы были в курсе дел
debug Сообщение при отладке программы (или её файла конфигурации)
none Требование не выполнять действий в отношении сообщений от указанного источника ; например, *.debug;mail.none означает, "выполнить действие в отношении всех сообщений уровня debug, кроме сообщений от источника mail:"

Если в поле уровня стоит знак "звездочка" (*), например, mail.*, это означает события всех уровней данного источника. Такое указание не имеет смысла, поскольку при указании некоего уровня разрешается передача всех сообщений этого уровня и более серьезных, т.е. уровень info фактически означает "info и все остальные".

С сообщением могут быть выполнены следующие действия:

  • запись информации о событии в файл;
  • пересылка сообщения другому компьютеру (демону syslogd на нем);
  • отправка сообщения по почте;
  • вывод сообщения на экран вошедшим в систему пользователям.

Обычно информация записывается в файл. Принято файлы протоколов держать в /var/log или /var/adm. Имя файла, записанное в поле "действие", приводит к записи информации в этот файл.

Для активации изменений, внесенных в файл конфигурации /etc/syslog.conf, требуется послать сигнал HUP демону syslogd. За размером файлов протокола надо следить, иначе они займут все свободное место на разделе. Уровень протоколирования следует выбирать из соображений разумной достаточности. Незачем протоколировать все события с уровнем info или notice: если сервер уже настроен, вполне достаточно протоколировать события большинства источников с уровнем error.

Указанный в строке /etc/syslog.conf уровень - это минимальный уровень, который должно иметь событие, чтобы быть занесенным в протокол. Стало быть, если вы указали уровень событий info, то все более серьезные уровни ( warning, error и т.д.) тоже будут отвечать этой же строке syslog.conf и события будут записаны туда же, куда и сообщения о событиях уровня info.

Пример минимального файла syslog.conf:

# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*							/dev/console
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none				/var/log/messages
# The authpriv file has restricted access.
auth.*							/var/log/secure
# Log all the mail messages in one place.
mail.*							/var/log/maillog
# Everybody gets emergency messages, plus log them on another
# machine.
*.emerg							*
# Save mail and news errors of level err and higher in a
# special file.
mail,news.crit				/var/log/spooler
#All Other
#*.*								/var/log/all
< Лекция 5 || Лекция 6: 1234 || Лекция 7 >
Игорь Ермачков
Игорь Ермачков
Латвия, Рига
Александр Пучков
Александр Пучков
Россия