Синтаксис файла rsyslog conf несколько фильтров

Синтаксис файла rsyslog conf несколько фильтров

Я настраиваю 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
}

Связанный контент