如何在 Centos 上的 Nagios 中监控自定义事物(SQL 查询)

如何在 Centos 上的 Nagios 中监控自定义事物(SQL 查询)

我花了好几天的时间阅读多页神秘莫测、难以理解的文档以及不完整或记录不全的示例。

我找不到从哪里开始——这令人困惑!

基本上,我只想在目标服务器上运行一个简单的 shell 脚本,并让 nagios 根据结果采取行动。我不想学习“C”并花几个月的时间开发插件,这就是它的样子。

例如我想写一个脚本来执行“select count(*) from loaded_loggedin_users”

并让 nagios graph 绘制结果数字(甚至发出警报)

我可以在数据库机器上编写一个 5 行脚本,该脚本可在大约 10 秒内返回状态和信息。问题是如何让 Naigos 读取这个值。

我读过很多关于插件的信息,也看过很多插件“脚本”,但这些信息从来没有提到插件在哪里运行,它们是在服务器上运行,还是在客户端上运行,还是两者都运行,现在它们是如何配置的。我不想让服务器拥有数据库密码,所以我只想在目标服务器上编写一个任意的 shell 脚本并监控结果。

目标服务器已经安装了称为 nrpe 的东西,我希望它可以让我编写一个简单的 shell 脚本,但它的所有“命令”都是二进制的,而且完全是神秘的,我找不到任何概述文档。

有人能建议从哪里开始吗?有人写过“hello world”脚本吗?我找不到返回任何相关结果的谷歌搜索字符串。难道地球上没有人想通过nagios监控简单自定义脚本的结果吗?

更好的是有一个 mysql 插件,它允许您插入自己的一些 sql,但我找不到类似的东西。

谢谢!

答案1

是的,您可以在目标服务器上运行 nrpe 服务器。在 nagios 服务器上,您可以使用 check_nrpe 插件,该插件以命令为参数。此命令应在目标服务器上定义 nrpe 服务器。因此,您的脚本将由 nrpe 服务器在目标服务器上执行。

以下是一个例子:

nrpe.cfg您可以在目标服务器的文件中定义如下命令:

command[check_my_query]=/usr/lib/nagios/plugins/check_my_query.sh

您需要在目标服务器上编写脚本/usr/lib/nagios/plugins/check_my_query.sh。当然,您可以照常传递任何所需的参数。

在nagios服务器上,定义检查命令如下:

define service{
        use                             generic-service
        host_name                       My_Target_Server
        service_description             My_Query
        check_command                   check_nrpe_1arg!check_my_query
        notifications_enabled           1
        }

check_nrpe_1arg您需要使用在 nagios 配置中找到的正确名称。它可以被定义为:

define command {
        command_name    check_nrpe_1arg
        command_line    /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -t 15
}

答案2

听起来您真的想了解如何使用 check_nrpe 和一组自定义的参数应用于现有插件。

首先在您的 mysql 服务器上安装 mysql 检查插件。确定您要执行的命令以及所需的任何参数。记下这些设置。

在您的 mysql 服务器上安装 NRPE 守护程序。如有必要,请在 iptables 中打开端口 5666。编辑文件 /etc/nagios/nrpe.cfg 并添加如下行。

command[annoying_mysql_check]=/usr/lib/nagios/plugins/check_mysql -w 5 -c 10 "select top 10 from .. order by"

从您的 Nagios 服务器(在命令行)

check_nrpe -H <your mysql host> -c annoying_mysql_check

这将返回您在上面第一组说明中找到的结果。

一旦您在 Nagios 服务器上的命令行中运行此命令,请将其转换为 Nagios 使用的语法和配置文件,以自动安排检查。这是核心 Nagios 文档的一部分。

答案3

http://nagiosplugins.org/man/check_mysql_query这是 Ubuntu 上 Nagios 软件包的一部分。不确定它是否在 CentOS 的 Nagios 软件包中(它可能与直接的 Nagios 服务器软件包不同)。

检查输出只需将 check_mysql_query 作为“命令”放入 Nagios 中,然后让 Nagios 服务器运行它即可。您可以从任何可以访问 MySQL 服务器的机器执行该命令,无论是 Nagios 服务器还是其他机器(在这种情况下,您需要在该机器上设置 NRPE,Nagios 服务器将访问该机器来运行该命令)。

制图是另一回事。您可以使用 nagiosgraph,但我发现设置它非常麻烦。还有 Munin。

相关内容