Каждое правило представляет из себя два поля: поле селектора и поле действия . Эти два поля разделены одним (или более) пробелом или символом табуляции. Поле селектора описывает шаблон, определяющий над какими сообщениями (они задаются службами и приоритетами), надлежит выполнять определенные действия.
Строки начинающиеся с символа `#' и пустые строки игнорируются.
Эта версия syslogd понимает расширенный синтаксис: одно правило может быть разделено на несколько строк, если строка правила заканчивается символом `\'.
Служба задается одним из следующих ключевых слов: auth, authpriv, cron, daemon, kern, lpr, mail, mark, news, security (тоже что и auth), syslog, user, uucp и local0 ... local7. Ключевое слово security больше не должно использоваться, а mark предназначено только для внутреннего использования и не указывается для приложений - хотя вы можете задать такие сообщения для перенаправления. Служба определяет подсистемы, которые генерируют сообщение, т.е. все почтовые программы, конечно, если они используют syslog, журналируют сообщения c указанием почтовой службы (LOG_MAIL).
Прироритет задается одним из следующих ключевых слов (в порядке возрастания серьезности): debug, info, notice, warning, warn (тоже что и warning), err, error (тоже что и err), crit, alert, emerg, panic (тоже что и emerg). Ключевые слова error, warn и panic устарели и не должны больше использоваться. Приоритет определяет серьезность сообщения.
Поведение оригинального BSD syslogd такое, что все сообщения определенного приоритета и выше журналируются в соответствии с заданным действием. Поведение этой версии syslogd(8) такое же, но с некоторыми дополнениями.
Дополнительно к указанным выше именам, syslogd(8) понимает следующие расширения: `*' обозначает все службы или все приоритеты, в зависимости от того, где используется (до или после точки `.'). Ключевое слово none означает отсутствие приоритета для данной службы.
Вы можете задать несколько служб в одном правиле для одного и того же приоритета, используя `,'. Запомните, что при использовании такой записи из шаблона извлекается только та часть, которая отвечает за службу, а часть, которая отвечает за приоритет, игнорируется.
Для одного действия может быть задано несколько селекторов с использованием `;'. Запомните, что каждый селектор в поле селектор может перезаписать предшествующие. Используя это поведение, вы можете исключать некоторые приоритеты из шаблона.
Эта версия syslogd(8) расширяет синтаксис оригинальной версии BSD, что делает его использование более интуитивно понятным. Вы можете перед каждым приоритетом ставить `=' (равенство), чтобы определить только один приоритет, а не любой из тех, что выше. Вы можете также (использовать оба символа корректно) перед приоритетом ставить `!' (инвертирование), чтобы игнорировать все приоритеты, которые совпадают с указанным или выше него. Если вы используете оба расширения, то `!' должен быть перед `=' (не равно) - просто интуитивно используйте их.
Вы можете перед каждым действием указывать `-', чтобы не допускать синхронизации файла после каждого добавления записи в журнал. Заметьте, что вы можете потерять информацию, если система рухнет сразу после попытки записи. Тем не менее, это может дать вам небольшой прирост в производительности, особенно, если вы запускаете программы, которые выполняют журналирование очень часто.
Используя эту возможность, вы можете контролировать все syslog сообщения на одной системе, если все другие машины будут удаленно выполнять журналирование на нее. Это позволяет уменьшить стоимость администрирования.
# Хранить все критические сообщения в critical # *.=crit;kern.none /var/adm/critical
Сохранит все сообщения с приоритетом crit в файле /var/adm/critical, за исключением сообщений ядра.
# Сначала сообщения ядра сохраняются в файле kernel, # но критичные сообщения (и выше) также будут # отправлены на другую систему и на консоль # kern.* /var/adm/kernel kern.crit @finlandia kern.crit /dev/console kern.info;kern.!err /var/adm/kernel-info
Первое правило направляет все сообщения от службы kernel в файл /var/adm/kernel.
Вторая - направляет все сообщения ядра с приоритетом crit и выше на удаленную систему finlandia. Это может быть полезно в случае, когда система рухнет и диск получит неисправимые ошибки и у вас может не быть возможности прочитать сохраненные сообщения. Но если они также будут и на удаленной машине, то вы можете попытаться выяснить причину сбоя.
Третье правило направляет эти сообщения к консоли, таким образом, человек, работающий непосредственно на машине, тоже получит их.
Четвертая строка говорит демону syslogd сохранять все сообщения ядра, которые приходят с приоритетами от info и до warning, в файле /var/adm/kernel-info. Все остальные (от err и выше) не будут сохранены.
# tcpwrapper посылает в журнал записи с mail.info, мы # показываем все соединения на tty12 # mail.=info /dev/tty12
Отправляет все сообщения, использующие mail.info (в тексте программы это выглядит как LOG_MAIL | LOG_INFO), в /dev/tty12- двенадцатую консоль. К примеру, tcpwrapper tcpd(8) использует такие сообщения по умолчанию.
# Сохраняет все сообщения, касающиеся почты в файле # mail.*;mail.!=info /var/adm/mail
Этот шаблон выискивает все сообщения, пришедшие от службы mail , исключая сообщения с приоритетом info . Эти сообщения будут сохранены в файле /var/adm/mail.
# Журналировать все сообщения mail.info и news.info в файле info # mail,news.=info /var/adm/info
Извлекает все сообщения, пришедшие либо с mail.info , либо с news.info, и сохраняет их в файле /var/adm/info.
# Журналировать сообщения info и notice в файле messages # *.=info;*.=notice;\ mail.none /var/log/messages
Это позволяет демону syslogd журналировать все сообщения, пришедшие либо с приоритетом info , либо с приоритетом notice, в файл /var/log/messages, за исключением тех сообщений, которые используют службу mail .
# Журналировать информационные сообщения в файл messages # *.=info;\ mail,news.none /var/log/messages
Это правило указывает syslogd журналировать все сообщения, пришедшие с приоритетом info , в файл /var/log/messages. Но сообщения, пришедшие со служб либо mail , либо news, не будут сохранены.
# Аварийные сообщения будут показаны, используя wall # *.=emerg *
Это правило говорит демону syslogd выводить все аварийные сообщения всем пользователям, которые в текущий момент находятся в системе.
# Сообщения с приоритетом alert будут направлены оператору. # *.alert root,joey
Это правило направляет все сообщения с приоритетом alert или выше на терминалы операторов, т.е. пользователям `root' и `joey', если они вошли в систему.
*.* @finlandia
Это правило перенаправляет все сообщения на удаленную систему с именем finlandia. Это полезно в случае кластера машин, когда все syslog сообщения будут храниться только на одной машине.
Оригинальный BSD syslogd не принимает пробелы как разделители между полем селектора и полем действия.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |