RSYSLOG — как разделять логи с помощью фильтрации?
Микротик у меня отправляет логи на сервер через сервис Rsyslog. Логи ведутся, всё хорошо. Но появилась необходимость, разделять лог на файлы. К примеру - логи собираются при событиях: WiFi, PPPoE, Hotspot.
Нужно сделать так, чтобы Hotspot собирался в отдельный файл.
Все логи собираются по шаблону
$template ALL, "/var/log/!remote/%fromhost-ip%/syslog.log"
*.* ?ALL
Прописал фильтр, но не работает что то.
$template HOTSPOT, "/var/log/!remote/%fromhost-ip%/hotsopt.log"
if $msg contains 'Hotspot' then *.* ?HOTSPOT
# Все от программы ntpdate в файл /var/log/ntpdate
if $programname == 'ntpdate' then /var/log/ntp
# все остальное в файл /var/log/daemon
if $programname != 'ntpdate' \
and $syslogfacility-text == 'daemon' then /var/log/daemon
# Сообщения MARK в файл /var/log/marks
if $msg == '-- MARK --' then /var/log/marks
# остальные в /var/log/kernel
if $msg != '-- MARK --' \
and $syslogfacility-text == 'kern' then /var/log/kernel
У Rsyslog несмотря на наличие документации с примерами бяда-бяда...