我们在Debian中使用logcheck软件包进行日志监控。
如果我理解正确,logcheck将监视日志,过滤掉已知的(正常和不重要的)消息,并在出现可能指示问题的任何消息时触发邮件。
Logcheck发送给我一个日志摘录(系统事件)。 但日志看起来并不可疑。 它包含如下消息:
Jul 31 08:22:03 example pop3d: Connection, ip=[::ffff:123.456.789.123]
我认为logcheck也发送周围的日志部分,如果有一条线,触发通知 – 但我怎么能找出,确切的线触发这封邮件?
检查日志检查状态的一种方法是将所有规则复制到文件中,然后使用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"
事实certificate,我们收到的消息最后很多,触发日志检查。
在系统上有一个“快递stream行”文件 – 但这与courierpop3login匹配。 所以我们只是复制这个文件,并将string改为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
看看什么不是通过任何规则过滤的,
对debugging非常有帮助。