如何监控系统日志并根据事件发送通知?

如何监控系统日志并根据事件发送通知?

我打算将系统日志从我的一台设备/服务器发送到一台 Ubuntu 服务器。

在 Ubuntu 服务器(接收系统日志)上,我希望它在特定系统日志消息到达时触发脚本。

这可能吗?

答案1

问题似乎有所改变,重点是脚本,而不是发送通知。我稍后可能会删除此答案。

似乎是相当简单根据传递给 rsyslog 的消息设置 shell 脚本的实时触发。如果 OP 重写他的答案以更好地描述他的目标(如评论中所述),我愿意在这里提供高质量的答案。

不太清楚你的要求是什么,但我可以推荐一款特定的软件logcheck。这对你的情况可能也有用。

其目的是在特定匹配(有趣)的行上发送邮件摘要。我假设基本邮件配置已经正常工作(例如,可以工作)。它负责日志轮换,并且知道日志还剩下什么,所以在编写脚本时不必再担心这一点了!echo bla | mail -s testmail [email protected]

从中提取了一些必要的步骤本教程

  1. 配置基本内容/etc/logcheck/logcheck.conf

    REPORTLEVEL="server"          # default reportlevel with pre-configured filters
    SENDMAILTO="[email protected]"
    
  2. 要检查哪些日志文件/etc/logcheck/logcheck.logfiles

    /var/log/syslog
    /var/log/auth.log
    /var/log/myapp.log
    
  3. 现在,告诉它在特定行上触发,类似于

    myapp: Error: Login failed for admin123
    

    对于这个 myapp 日志,可以通过创建一个正则表达式来实现/etc/logcheck/ignore.d.server/myapp(注意server对应于REPORTLEVEL之前使用的):

    ^myapp:.*
    

    好吧,这不是最具体的正则表达式,但这不是重点。

  4. 等待电子邮件到达,例如:

    Subject: webserver.domain.tld 2013-01-01 10:17 System Events
    
    Jan 01 09:40:59 webserver myapp: IMAP Error: Login failed for gertvdijk
    

相关内容