找出哪一行日志触发了 logcheckd 通知?

找出哪一行日志触发了 logcheckd 通知?

我们正在使用logcheckDebian 中的包进行日志监控。

如果我理解正确的话,logcheck 会监视日志,过滤掉已知(正常和不重要的)消息,并且在出现任何可能表明存在问题的消息时触发邮件。

Logcheck 正在向我发送日志摘录(系统事件)。但日志看起来并没有什么可疑之处。它包含如下消息:

Jul 31 08:22:03 example pop3d: Connection, ip=[::ffff:123.456.789.123]

我认为,如果有一行触发了通知,logcheck 也会发送日志的周围部分 - 但我如何才能找出哪一行触发了这封邮件?

答案1

检查日志检查状态的一种方法是将所有规则复制到一个文件中,然后用于egrep分析:

# First of all:
cat /etc/logcheck/ignore.d.server/ > /tmp/logcheckrules

# color last 10 log lines. Darken matches (which would not trigger a warning)
tail -n10 /var/log/syslog | GREP_COLOR=30 egrep --color -f /tmp/lcd

# When you have a single line and what to check wether your regex is working:
tail n-10 /var/log/syslog | GREP_COLOR=32 egrep --color "singleRegExpGoesHere" 

事实证明,我们收到的许多消息都触发了日志检查。

系统上有一个“courier-pop”文件 - 但它与 匹配courierpop3login。所以我们只需复制此文件并将字符串更改为pop3d

命令

cat /var/log/syslog|egrep -v -f /etc/logcheck/ignore.d.server/LOCAL

显示此文件中尚未过滤的内容

cat /var/log/syslog|egrep -f /etc/logcheck/ignore.d.server/LOCAL

表明什么火柴文件的规则,甚至

cat /etc/logcheck/ignore.d.server/* | egrep -v -f /dev/stdin /var/log/syslog

查看未被任何规则过滤的内容,

对于调试非常有帮助。

相关内容