仅针对邮件触发的基于文件的日志监控?

仅针对邮件触发的基于文件的日志监控?

我公司有各种异构服务,它们能够将内容记录到文件中,但无法自行发送邮件。此外,我默认不使用 Syslog 等方式记录来自 Apache httpd 和 Tomcat、Postgres、Upstart 和其他各种来源的文件。所有这些服务的常识都是使用文件,但日志大小、消息格式、是否轮换等都有所不同。

因此,我正在寻找一些日志监视器,它专注于配置的文件并提供触发器来将新添加的内容与某些正则表达式进行匹配,以发送带有错误消息的邮件。

我希望有一个独立的程序,专注于使用触发器监控日志文件,并且通过使用文件系统事件来获得文件更改的通知,只读取文件末尾的更改而不是解析整个文件等,从而提高效率。不过,我需要在定义触发器方面有一定的灵活性,但除此之外,它只需要将带有日志消息的邮件发送到一些任意地址。即使它自己也不够,支持本地 sendmail 也绝对足够了,这些邮件的模板功能很少。我甚至不太关心识别多个错误消息之类的事情。

我花了一整天时间阅读有关该主题的文章,并找到了各种不同的解决方案,例如 Graylog、Logstash、Nagios/Zabbix 插件等。但从我所读的内容来看,所有这些解决方案对我的环境都有严重的缺陷:Graylog 和 Logstash 似乎需要繁重的设置和依赖关系,并且提供我根本不需要的功能,例如在日志中搜索。我目前也不使用 Nagios 和 Zabbix,也不确定它们的日志监控插件的性能如何,因为它们似乎基于时间轮询日志文件等。此外,Zabbix 的配置看起来也有点难以维护。

那么,有没有更有针对性的方案呢?

答案1

我强烈建议您学习并实施像 Zabbix 这样的全面监控解决方案:虽然您今天只需要日志文件监控,但明天您可能需要更全面的监控解决方案。

如果你真的只想监视一些日志文件,请查看你可以找到的答案这里这里

答案2

监控听起来很有希望,正如@shodanshok 对其他问题的提示:

check file syslog with path /var/log/syslog
    ignore content = "monit"
    if content = "^mrcoffee" then alert

斯沃琪狗看起来很有趣,但又老旧又缺乏维护,存在严重漏洞

日志记录器看起来很有趣,但 Python 不是我的首选,它似乎专注于提供特殊输出,而不是触发动作。可能有严重错误也一样。

相关内容