Я пытаюсь настроить, чтобы мой шаблон работал с удаленным ведением журнала, но оператор 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. Заранее благодарим!
Если Ваше имя хоста является нижним регистром zabbix затем
:fromhost,isequal,"zabbix" stop
*.* ?remote-logs
, должен гарантировать, что Ваш файл удаленных журналов не содержит локальные сообщения, при условии, что эти строки в конце конфигурации rsyslog. Однако затем было бы слишком поздно для остановки удаленных сообщений, идущих в локальный системный журнал.
Это более просто при использовании более нового синтаксиса, названного RainerScript, где можно записать вещи как
if ($fromhost == "zabbix") then {
*.* /var/log/syslog
} else {
*.* ?remote-logs
}