我正在尝试使用正则表达式在/var/log/secure
中计算字符串,以获取ssh身份验证失败。
如果验证失败,它将在日志文件中显示如下:
Oct 31 07:52:41 logserver sshd[17041]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=localhost
我尝试过这样的事情:
"\\<sshd[^:]*: pam_unix(sshd:auth): authentication failure; ./* \\>"
但它不会起作用。如果有人可以帮助我使用正则表达式,我会很感激。
这是在CentOS 7机器上,正则表达式是针对collectd的插件tail
。
答案 0 :(得分:1)
在收集 .conf
中,您可能会使用以下其中一项:
<Plugin "tail">
<File "/var/log/secure">
...
<Match>
选项1:
Regex "authentication failure"
选项2:
Regex "sshd:auth[^:]*: authentication failure;"
选项3:
Regex "authentication failure|authentication|failure"
其中选项1和2应该是最精确的匹配,而选项3更通用。选项1找到确切的短语authentication failure
,选项2找到确切的短语和(sshd:auth):在它之前,选项3找到确切的短语或“身份验证”或“失败”。
</Match>
</File>
</Plugin>