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

我知道Nagios可以监视和警告日志文件中的内容,但是没有人知道插件或其他工具,它们将监视某个特定string的日志文件,然后通过电子邮件发送整个行那场比赛呢?

股票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键)运行,显然。

@ af-at-work:这里有一个工具:

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

Ubuntu软件包( 链接 ),Debian软件包( 链接 )。

Nagios日志监视器

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

在上面的链接中,用户正在使用名为logrobot的Nagios日志监视工具。 你可以访问实际的主页来查看更多的例子。

如果您希望监视日志,并查看包含您指定string的行的详细信息,则可以按以下方式运行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 

当您运行上述命令(如第一个链接所示)时,将显示包含您指定的string“INFO”的日志文件中的所有细节。

如果你可以用bash(或perl或python等)脚本读取日志文件,并且searchstring(grep),当然可以。 脚本需要设置一个非零的返回码并返回string。 脚本可以驻留在服务器上,nagios可以使用check_by_ssh命令在服务器上运行脚本。

为什么在这种情况下甚至会涉及Nagios呢? 这似乎是复杂的。

为什么不去服务器,写一个小的shell脚本来做你想做的事情,通过一个cron工作来执行它。 在任何情况下,脚本都必须包含发送电子邮件的逻辑。

Nagios现在有一个与Nagios Core,XI等紧密集成的解决scheme。

Nagios日志服务器 ,可以在基础架构中的任何系统上的任何日志文件上的任何查询时发出警报。