Шаблон rsyslog stop игнорируется

Я пытаюсь настроить, чтобы мой шаблон работал с удаленным ведением журнала, но оператор stop игнорируется, и когда-либо регистрируется дубликатом в системном журнале и в моем сгенерированном файле % 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. Заранее благодарим!

1
задан 16 December 2019 в 10:53
1 ответ

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

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

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

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

if ($fromhost == "zabbix") then {
  *.* /var/log/syslog
} else {
  *.* ?remote-logs
}
0
ответ дан 29 December 2019 в 22:49

Теги

Похожие вопросы