我知道 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
答案3
上面的链接可能是您正在寻找的答案。它可以监视本地和远程主机上的任何日志文件。
在上面的链接中,用户正在使用名为 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 任务执行它呢?无论哪种情况,脚本都必须包含发送电子邮件的逻辑。