Я настраиваю rsyslog в системе Red Hat 8. У меня работает первая часть, которая фильтрует на основе исходного IP-адреса и записывает логи в определенный файл, например так:
if $fromhost-ip startswith '10.1.2.45' then /var/log/test_all.log
& ~
Что я хотел бы сделать, хотя не могу понять правильный синтаксис, так это проверить наличиеIP-адрес хостаиauthprivобъект и записать его в файл.
Я знаю, что мне нужно это выражение перед тем, которое я перечислил выше, но я не могу заставить его работать. Я также пробовал local7
(логи загрузки), и это тоже не сработало. Следующие два примера — это синтаксисы, которые я пробовал, но они не сработали:
Пример 1:
if $fromhost-ip startswith '10.1.2.45' and $syslogfacility-text == 'local7' then /var/log/test_boot.log
& stop
if $fromhost-ip startswith '10.1.2.45' and $syslogfacility-text == 'local10' then /var/log/test_secure.log
& stop
if $fromhost-ip startswith '10.1.2.45' then /var/log/test_all.log
& stop
Пример 2:
if $fromhost-ip startswith '10.1.2.45' and $syslogfacility-text == 'authpriv.*' then /var/log/test_secure.log
& stop
if $fromhost-ip startswith '10.1.2.45' then /var/log/test_all.log
& stop
решение1
Решение найдено здесь: Синтаксис конфигурации rsyslog
if $fromhost-ip startswith '10.1.2.45' then {
authpriv.* -/var/log/test_secure.log
-/var/log/test_all.log
& stop
}