Фильтрация логов samba, или вывод конкретной строки в файл лога samba
Веду аудит действий пользователей в samba. Логи пишутся в файл /var/log/samba/audit.log, во много строк, например:
smbd_audit: 0066\domainuser|shara|create_file|ok|0x100080|dir|open|/srv/data/shara/UUU/
smbd_audit: 0066\domainuser|shara|create_file|ok|0x100080|dir|create|/srv/data/shara/UUU/
Пишет все строки, а нужно записать только строку с опцией |create|, а с опцией |open| или другими отбросить.
Сделал такой конфиг в файле /etc/rsyslog.conf:
if $syslogfacility == 'local6.notice' and $msg isequal 'create' then /var/log/audit.log
Как все строки писались так и пишутся. Что я делаю не так?
OC Linux CentOS 7, SAMBA 4.9.1, ad win2k8!
Ответы (1 шт):
Автор решения: Sergey 'tnt4brain' Pechenko
→ Ссылка
Свойство сообщения "$msg" в rsyslog обозначает всё сообщение в целом. Как результат, приведённое сравнение срабатывать не будет. Согласно документации предлагаю использовать оператор "contains".