Конфигурация системного журнала — повторяющееся оповещение?

Конфигурация системного журнала — повторяющееся оповещение?

Я использую Solaris 10 и увидел эту строку в/etc/syslog.conf

*.err;kern.debug;daemon.notice;mail.crit;auth.debug;local2.notice       /var/adm/messages

Означает ли это, что если у меня естьauth.err, сообщение об ошибке появится у меня /var/adm/messageдважды из-за:

*.err  
auth.debug 

Допустим, у меня есть еще одна строка:

*.emerg  *
*.err;kern.debug;daemon.notice;mail.crit;auth.debug;local2.notice       /var/adm/messages

Означает ли это, что если у меня естьядро.emerg, он будет регистрироваться дважды из /var/adm/messages-за

 *.emerg  *   and
kern.debug  /var/adm/messages

?

=======

Добавлено

auth.notice         ifdef(`LOGHOST', /var/log/authlog, @loghost) 
  • как syslog проверяет, является ли эта машина loghost или нет? проверяя /etc/hosts на наличие псевдонима "loghost" и проверяя, совпадает ли он с IP машины?

  • У меня syslog.conf без ifdef, и он все равно работает. Необходим ли ifdef или нет?

решение1

Правила в основном определяют фильтры, применяемые во время выполнения к каждому сообщению, поэтому на самом деле не предполагается, что в одном и том же месте назначения/файле будут дублироваться сообщения.

Для одного действия можно указать несколько селекторов, используя разделитель в виде точки с запятой ('';''). Помните, что каждый селектор в поле селектора может перезаписывать предыдущие.

Однако вы можете получить и получаете одно и то же сообщение, отправленное в разные файлы, включая консоль.

В случае

*.emerg *

Что является сокращением для всех пользователей в syslog, то это будет для всех пользователей.

Все вошли в систему

Экстренные сообщения часто отправляются всем пользователям, находящимся в данный момент в сети, чтобы уведомить их о том, что с системой происходит что-то странное. Чтобы указать эту функцию wall(1), используйте звездочку (''*'').

Таким образом, в kernel.emerg он будет отправлен всем пользователям и в /var/adm/messages одновременно; однако это будет только одна строка в /var/adm/messages.

Поведение оригинального BSD syslogd таково, что все сообщения указанного приоритета и выше регистрируются в соответствии с заданным действием.

Цитаты взяты из syslog.confстраницы руководства:

Страница руководства syslog.conf(5)

Что касается ifdef, то возьмем в качестве примера:

auth.notice         ifdef(`LOGHOST', /var/log/authlog, @loghost) 

Если определен LOGHOST (т.е. данный системный журнал является LOGHOST), он отправит журнал/сообщение в /var/log/authlog, в противном случае он будет отправлен в @loghost.

Что касается ifdef, то это не является обязательным, а что касается LOGHOST, то согласноэта страницаэто имя машины, взятое из файла /etc/hosts (или, возможно, DNS, только для тестирования)

Чтобы отредактировать /etc/hosts (./inet/hosts) и добавить одну или несколько строк, определяющих IP-адрес для loghost (имя произвольное, и если определено несколько удаленных хостов, вы можете использовать любое имя по вашему желанию)

Связанный контент