使用 Nagios 监控日志文件并发送日志详细信息

使用 Nagios 监控日志文件并发送日志详细信息

我知道 Nagios 可以监视和警告日志文件中的内容,但是否有人知道插件或其他工具可以监视日志文件中的特定字符串,然后通过电子邮件发送出现该匹配的整行?

答案1

常用的 check_log 插件有点……糟糕;每次运行时,它都会使用“diff”并处理整个日志,因此它的扩展性很差。一点也不好。

ConSol Labs 维护着一个出色的日志检查插件,它可以完全满足您的要求: http://exchange.nagios.org/directory/Plugins/Log-Files/check_logfiles/details

它在 Nagios Exchange 上有列出,但是这里是英文版本的直接链接: http://labs.consol.de/lang/en/nagios/check_logfiles/

显然,您必须通过 NRPE 或 check_via_ssh (+ ssh 密钥) 来运行它。

答案2

@af-at-work:有一个工具可以实现这个目的:

“Tenshi 是一个日志监控程序,旨在监视一个或多个日志文件中与用户定义的正则表达式匹配的行并报告匹配情况。正则表达式被分配给具有警报间隔和邮件收件人列表的队列。”

Ubuntu 软件包(关联)、Debian 软件包 (关联)。

答案3

Nagios 日志监控器

上面的链接可能是您正在寻找的答案。它可以监视本地和远程主机上的任何日志文件。

在上面的链接中,用户正在使用名为 logrobot 的 Nagios 日志监控工具。您可以访问实际的主页查看更多关于其如何工作的示例。

如果您希望监视日志并查看包含指定字符串的行的详细信息,则可以通过以下方式运行 logrobot 工具:

本地:

logrobot autofig /opt/jboss/jboss-as/server/production/log/server.log 60m 'INFO' '.' 1 2 -show

远程:

NagiosLogMonitor remotehost logrobot autofig /opt/jboss/jboss-as/server/production/log/server.log 60m 'INFO' '.' 1 2 -show

当您运行上述命令时,如第一个链接所示,您将看到在日志文件中找到的所有包含您指定的字符串“INFO”的罚款。

答案4

为什么在这种情况下还要让 Nagios 参与进来?这似乎太复杂了。

为什么不直接去服务器,写一个小的 shell 脚本来做你想做的事情,然后通过 cron 任务执行它呢?无论哪种情况,脚本都必须包含发送电子邮件的逻辑。

相关内容