Я пытаюсь настроить, чтобы мой шаблон работал с удаленным ведением журнала, но оператор 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
}