在 Linux 下,有什么简单的方法可以自动监视日志文件,并在出现特定字符串时向我发送电子邮件?我有一个应用程序,它会将某些故障记录到日志文件中,但没有内置方式在故障时发送警报或执行脚本。我想我可以用 tail -f 和一些 shell 脚本来安装一些东西,但如果存在的话,我宁愿使用现有的维护工具。
答案1
我检查了此页面上提到的几个选项,最终使用了更简单的方法:样本。
这些其他系统非常适合处理现有系统日志,或者处理无法控制输出的软件。我只是暂时不想编写一堆代码来发送电子邮件通知。所以我只是创建了一个这样的样本文件:
watchfor /./
mail addresses=me\@example.com:other\@example.com,subject=log_alert
然后开始
swatch -c send-me-everything.swatch -t /my/app/urgentevents
这很粗糙,但由于我控制日志文件输出,所以我不需要任何更复杂的东西。
答案2
答案3
最好的方法是使用日志分析程序。
例如,OSSEC 是免费/开源的,允许您查看任意数量的日志文件,并为某些事件生成电子邮件警报(甚至是主动响应)。
我知道,破解 shell 脚本很有趣,但远不如开发多年的成熟程序稳定。另外,如果将来你需要扩展脚本或添加更多触发器,事情就会变得更加复杂。OSSEC(和其他工具)为你准备了这个框架。
答案4
我找到了一个叫做天使它似乎完全符合我的要求。它包含在默认的 Debian 存储库中,这很好,但不幸的是,它不包含在 RHEL/CentOS 存储库中(我同时使用这两种操作系统作为服务器)。