![日志监控和警报实用程序](https://linux22.com/image/571511/%E6%97%A5%E5%BF%97%E7%9B%91%E6%8E%A7%E5%92%8C%E8%AD%A6%E6%8A%A5%E5%AE%9E%E7%94%A8%E7%A8%8B%E5%BA%8F.png)
实际上,我们使用 ManageEngine 的应用程序管理器来监控一些托管 Oracle 数据库和一些 JBoss 应用程序的客户端服务器。不幸的是,应用程序管理器的运行速度不如我希望的那么快,所以我必须寻找一种可以读取日志文件并在日志中出现某些代码时发送电子邮件警报的软件。
如果此工具可以在中央服务器(使用 Linux 操作系统)中运行,并且可以通过 SSH 或类似方式读取日志文件,那就太好了。其他需要安装在每台服务器上的选项也可能对我有帮助。
有谁知道有什么工具可以做到这一点?
谢谢
答案1
答案2
你可能会听到很多人提到Splunk完成这项工作。我使用过 Splunk,它名副其实,但价格不菲。Splunk 使用自己的查询语言来查询日志集并生成报告。例如,我使用 Splunk 生成一份报告,显示 Squid 日志中人们最常访问的前 15 个域。我还可以使用它来查询我的所有服务器,以显示每晚或每小时所有失败的 ssh 登录尝试。
如果你正在寻找通用系统和主机监控,我建议你看一下扎比克斯。它更像是一个传统的监控程序,但它确实具有读取日志文件和系统日志的能力。然后可以将其配置为在日志流中找到特定正则表达式匹配时触发。在通用日志文件监控方面,Zabbix 远不如 Splunk 强大,但 Zabbix 擅长基于指标的系统监控。
答案3
另一个选择是自己构建一些东西。显然,这里的其他人已经做过类似的事情(显然,他正在寻找时间戳,但我猜修改它以查找代码会相当简单)。 从 syslog 日志文件中快速提取时间范围? 您可以使用 smtplib 来处理电子邮件警报方面,而 paraminko 库将处理问题的 SSH 组件。 http://www.lag.net/paramiko/ 最后,通过 cron 定期运行它。
答案4
尽管实际上有许多应用程序可以做到这一点,但这主要取决于您每次想要监视任何服务器上的新日志时想要完成多少工作。
如果你想监控多个主机上的日志,最简单的方法是使用 Nagios。Nagios 有一个名为罗格机器人你可以使用它。这个工具非常简单。假设你有一个日志文件或日志文件组需要在名为 x、y、z 的主机上进行监控……没问题。只需指定主机名和每个日志文件的绝对路径。然后给它你想要监控的字符串。你不需要学习如何操作。没有需要你解读的繁琐文档。
查看 Nagios Exchange:
配置(启用、禁用、在新主机上添加新日志检查)都可以从一个中央服务器完成。中央服务器将是安装 Nagios 的服务器。只要在受监控的日志中发现您指定的字符串,就会生成电子邮件警报并发送给您希望的任何人。没有误报。