Estou tentando filtrar alguns sshd
logs como estes em um arquivo separado:
sshd[14913]: Did not receive identification string from 10.16.0.2
Tentei o seguinte, e funcionou:
if $programname == 'sshd' and
$syslogfacility-text == 'security' and
$syslogseverity == '6' then -/var/log/sshinfo.log
& stop
Mas isso também corresponde ao login/logout do usuário, então tentei adicionar um filtro de correspondência de mensagens :
if $programname == 'sshd' and
$msg startswith 'Did not' and # <---
$syslogseverity == '6' then -/var/log/sshinfo.log
& stop
Não funciona! (embora contains
funcione)
Está startswith
quebrado ou esse uso está incorreto?
Versão:
# 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
Você deve usar um modelo com algo como
msg is -->%msg%
ver como a parte da mensagem começa, mas em geral começa com um espaço, então tente