Я пытаюсь отфильтровать некоторые sshd
журналы, подобные этим, в отдельный файл:
sshd[14913]: Did not receive identification string from 10.16.0.2
Я пробовал следующее, и это сработало:
if $programname == 'sshd' and
$syslogfacility-text == 'security' and
$syslogseverity == '6' then -/var/log/sshinfo.log
& stop
Но это также соответствует логину пользователя / выйти из системы, поэтому я попытался добавить фильтр совпадение сообщений :
if $programname == 'sshd' and
$msg startswith 'Did not' and # <---
$syslogseverity == '6' then -/var/log/sshinfo.log
& stop
Он не работает! (хотя содержит
работает)
начинается с
неверно или это использование неверно?
Версия:
# rsyslogd -v
rsyslogd 7.4.4, compiled with:
FEATURE_REGEXP: Yes
FEATURE_LARGEFILE: No
GSSAPI Kerberos 5 support: Yes
FEATURE_DEBUG (debug build, slow code): No
32bit Atomic operations supported: Yes
64bit Atomic operations supported: Yes
Runtime Instrumentation (slow code): No
uuid support: Yes
Необходимо использовать шаблон с чем-то как msg is -->%msg%
, чтобы видеть, как часть сообщения начинается, но в целом она начинается с пространства, поэтому просто попробуйте
$msg startswith ' Did not' and