Назад | Перейти на главную страницу

остановка шаблона rsyslog игнорируется

Я пытаюсь настроить, чтобы мой шаблон работал с удаленным ведением журнала, но оператор stop игнорируется, и когда-либо регистрируется дубликатом в syslog и в моем сгенерированном файле %programname%.log. Я хочу, чтобы входящие сообщения входили только в систему %programname%.log

ZABBIXэто моя локальная машина, на которой работает демон rsyslog. А удаленные устройства - это беспроводные устройства Sierra, которые выполняют вход в ZABBIX. Но все с Сьерры регистрируется в дубликате. Это моя конфигурация в /etc/rsyslog.conf.

$template remote-logs,"/media/jarne/Data/log/%FROMHOST%/%programname%.log", stop
:fromhost,isequal,"ZABBIX" stop
*.* ?remote-logs

Я также пробовал: *.* ?remote-logs & stop и *.* ?remote-logs;stop, но я получаю только ошибки.

Может ли кто-нибудь сказать мне, как работает ключевое слово stop и где оно действительно?

Я использую rsyslog версии 8.32.0 на Ubuntu 18.04.3. Заранее спасибо!

Если ваше имя хоста в нижнем регистре zabbix, тогда

:fromhost,isequal,"zabbix" stop
*.* ?remote-logs

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

Это проще, если вы используете новый синтаксис под названием RainerScript где вы можете писать такие вещи, как

if ($fromhost == "zabbix") then {
  *.* /var/log/syslog
} else {
  *.* ?remote-logs
}