Программа sysklogd (rsyslogd):
1 2 3 4 5 6 7 8 9 |
Чтобы каждой программе не пришлось «изобретать велосипед», ядро и некоторые инструменты администрирования обращаются к центральным функциям журна-лирования, которые объединяются под термином Syslog. В большинстве современных дистрибутивов (Debian, Fedora, openSUSE, Ubuntu) в таком случае применяется программа rsyslogd. Обратите внимание — отнюдь не все сетевые службы пользуются Syslog! В частности, крупные серверные службы, например Apache, CUPS и Samba, используют собственные функции журналирования, интегрированные в программу. Таким образом, эти приложения не поддаются глобальной конфигурации, настраиваемой в syslog.conf. Параметры журналирования настраиваются в соответствующих конфигурационных файлах конкретной программы. Если вы хотите составить общее представление о файлах регистрации, управляемых Syslog, выполните следующие команды: cd /var/log ls $(find -user syslog) |
Syslog:
1 2 3 4 5 6 7 8 9 10 11 12 |
Конфигурационные файлы Syslog содержат правила, состоящие из двух частей. Первая часть (селектор) указывает, что именно должно регистрироваться, а во второй части (действие) описывается, что должно происходить после получения конкретного уведомления. Правила можно разделять на несколько строк с помощью символа \. Возможны ситуации, в которых одному уведомлению соответствует несколько правил. В этом случае уведомление выдается и регистрируется несколько раз. Каждый селектор состоит из двух частей, разделенных точкой: служба.уровень приоритета. Можно указывать сразу несколько селекторов, разделяя их точками с запятой. Кроме того, можно объединять в одном селекторе несколько служб, разделяя их запятыми. Все программы Linux, использующие Syslog, должны присваивать своим сообщениям службу и приоритет. |
Службы и параметры:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
Syslog известны следующие службы: uth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, syslog, user, uucp, а также службы от local0 до local7. Символ * объединяет все службы. Кроме того, Syslog известны следующие степени приоритета (по увеличению важности): debug, info, notice, warning = warn, error = err, crit, alert и emerg = panic. Ключевые слова warn, error и paniс считаются устаревшими — используйте вместо них warning, err и emerg. Символ * объединяет все степени приоритета. Ключевое слово none применяется с уведомлениями, которым не присвоен никакой приоритет. При указании степени приоритета учитываются также все степени, находящиеся в иерархии выше. Иными словами, селектор mail.err охватывает и все сообщения почтовой системы уровней crit, alert и emerg. Если вам требуются уведомления только с определенной степенью приоритета, поставьте перед этой степенью символ = (то есть, например, mail.=err). В качестве действия чаще всего указывается имя одного из файлов регистрации. Обычно файлы регистрации синхронизируются после каждого вывода. Если перед именем файла стоит символ -, Syslog не производит синхронизацию. Такой метод работы более эффективен, но при аварийном завершении работы системы будут потеряны сообщения, еще не сохраненные физически. Syslog также может переадресовывать уведомления к файлам FIFO (первым пришел — первым обслужен) или к программным каналам. В таком случае перед именем файла ставится символ |. Файл /dev/xconsole, показанный в следующем листинге, — это особый файл типа FIFO, предназначенный для передачи уведомлений графической системе X. Символ * означает, что уведомление переадресовывается на все консоли или всем пользователям, вошедшим в систему через SSH. Поскольку это очень неудобно, по умолчанию он применяется только с критически важными сообщениями. Более подробная информация по синтаксису syslog.conf содержится на одноименной странице справки man. |