将插件从 Nagios Exchange 添加到 Nagios 3.x

Add a plugin from Nagios Exchange to Nagios 3.x

我刚刚在 Ubuntu 服务器上安装完 Nagios 3,但我不确定如何向其中添加第三方插件。

插件可用:Here

提前感谢您的帮助

您没有提到任何有关您要使用 Nagios 监视的服务器的信息。 我假设它是一个 Ubuntu Linux 服务器并且它与你安装 Nagios 的机器不是同一个服务器。

在要监控的服务器上:

确保安装了 NRPE(Nagios 远程插件执行器)。这是 link 在 Ubuntu 操作系统上安装 NRPE 的说明。 http://tecadmin.net/install-nrpe-on-ubuntu/

在要监视的服务器上安装 NRPE 后,编辑 nrpe.cfg 文件非常重要(最有可能在 etc/nagios/nrpe.cfg 中找到,但这可能因安装方法而异)。 您需要修改 allowed_hosts 配置行以包含 Nagios 服务器的 IP 地址。如果不这样做,NRPE 将拒绝来自 Nagios 的连接尝试,并且您将无法 运行 您的 Nagios 插件或将结果报告回 Nagios。

请务必在修改 nrpe.cfg.

后重新 tart NRPE

接下来您需要将Nagios 插件下载到被监控的服务器上。例如:

wget --directory-prefix=/usr/lib/nagios/plugins/ https://github.com/thehunmonkgroup/nagios-plugin-file-ages-in-dirs/archive/v1.1.tar.gz

cd 到你的 nagios 插件目录并提取你刚刚下载的 tar-gzipped 压缩包:

cd /usr/lib/nagios/plugins/
tar zxvf v1.1
ls -al /usr/lib/nagios/plugins/nagios-plugin-file-ages-in-dirs-1.1/check_file_ages_in_dirs

一定要给nagios插件脚本执行权限:

chmod a+x /usr/lib/nagios/plugins/nagios-plugin-file-ages-in-dirs-1.1/check_file_ages_in_dirs

随着 nagios 插件现在驻留在您要监视的服务器上,您将需要在同一台服务器上定义一些 命令 定义。
首先,您需要找到 NRPE 将搜索您手动添加到系统的新命令定义的路径。 为此,grep 您的 nrpe.cfg 术语 "include_dir" 文件。 例如:

grep include_dir /etc/nagios/nrpe.cfg

    include_dir=/etc/nrpe.d/

如果 "include_dir" 的结果未从您的 grep return 中编辑,请添加上面的 "include_dir" 配置到您的 nrpe.cfg 文件。确保已创建 /etc/nrpe.d/ 文件夹。

在您的 include_dir 中创建一个名为 check_file_ages_in_dirs.cfg 的新文件。添加到 check_file_ages_in_dirs.cfg check_file_ages_in_dirs 的命令定义,指向您的 Nagios 插件的路径并包括执行它所需的参数。 例如:

echo "command[check_file_ages_in_dirs]=/usr/lib/nagios/plugins/nagios-plugin-file-ages-in-dirs-1.1/check_file_ages_in_dirs -d \"/tmp\" -w 24 -c 48" >> /etc/nrpe.d/check_file_ages_in_dirs.cfg
cat /etc/nrpe.d/check_file_ages_in_dirs.cfg

    command[check_file_ages_in_dirs]=/usr/lib/nagios/plugins/nagios-plugin-file-ages-in-dirs-1.1/check_file_ages_in_dirs -d "/tmp" -w 24 -c 48

对于以上内容,我硬编码了 24 小时和 48 小时的警告和临界阈值。我还将目录硬编码为“/tmp”
尝试在本地执行 nagios 插件脚本以确认其正常工作:

/usr/lib/nagios/plugins/nagios-plugin-file-ages-in-dirs-1.1/check_file_ages_in_dirs -d "/tmp" -w 24 -c 48

    OK: 1 dir(s) --  /tmp: 1 files

确保 nrpe 用户对您的 check_file_ages_in_dirs.cfg 文件具有读取权限:

chmod a+r /etc/nrpe.d/check_file_ages_in_dirs.cfg

按照 http://tecadmin.net/install-nrpe-on-ubuntu/

中的说明,恢复tar您的 nrpe 服务

您还需要确保如果您有任何适当的防火墙规则,它们允许到端口 5666 的 tcp 流量

在您的 Nagios 服务器上:

从您的 Nagios 服务器,您需要手动 运行 check_nrpe 对您的主机进行监控,以验证 Nagios 插件的正确运行和正确的 NRPE 配置。 找到 check_nrpe 文件的位置。在我的安装中,它位于 /usr/local/nagios/libexec/check_nrpe,但这可能与您的安装不同。

find / -name "check_nrpe" -type f

    /usr/local/nagios/libexec/check_nrpe

如果您没有 check_nrpe,则需要在您的 Nagios 服务器上安装它。

apt-get install nagios-nrpe-plugin

首先在没有远程命令参数的情况下对要监视的服务器执行 check_nrpe。这只是为了确认 NRPE 运行ning 在您的远程服务器上,并且它已正确配置为允许来自您的 Nagios 服务器的连接。 注意: 对于这个例子,我假设我要监控的主机的 IP 地址是 10.0.0.1将此替换为您要监控的主机的IP地址。

/usr/local/nagios/libexec/check_nrpe -H 10.0.0.1

    NRPE v2.14

如果配置正确,上面的 check_nrpe 命令应该 return NRPE 代理的版本号 运行ning 在远程主机上。

接下来尝试通过 NRPE 手动调用 Nagios 插件:

/usr/local/nagios/libexec/check_nrpe -H 10.0.0.1 -c check_file_ages_in_dirs

    OK: 1 dir(s) --  /tmp: 1 files

如果您得到与上述类似的输出,那么是时候继续在您的 Nagios 服务器上定义主机、服务和命令了。 为主机、服务和命令定义定义单独的配置文件会更清晰。但这超出了本 post 的范围。 现在,我们将在默认的 Nagios 配置文件 (nagios.cfg) 中定义这些内容。

首先找到您的 nagios.cfg 文件:

find / -name "nagios.cfg" -type f

    /usr/local/nagios/etc/nagios.cfg

编辑 nagios.cfg 文件。

为您希望监控的服务器添加主机定义

define host {
        host_name                       Remote-Host
        alias                           Remote-Host
        address                         10.0.0.1
        use                             linux-server
        contact_groups                  admins
        notification_interval           0
        notification_period             24x7
        notifications_enabled           1
        register                        1
}

check_file_ages_in_dirs的远程执行添加一个命令定义:

define command {
        command_name                    check_file_ages_in_dirs
        command_line                    $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_file_ages_in_dirs
        register                        1
}

添加将引用 check_file_ages_in_dirs 命令的 服务定义

define service {
        service_description             check_file_ages_in_dirs
        use                             generic-service
        check_command                   check_file_ages_in_dirs
        host_name                       Remote-Host
        contact_groups                  admins
        notification_interval           0
        notification_period             24x7
        notifications_enabled           1
        flap_detection_enabled          1
        register                        1
}   

保存并退出您的 nagios.cfg 文件。

验证您的 Nagios 配置文件:

nagios -v /usr/local/nagios/etc/nagios.cfg

如果没有报告错误,请重新tar您的 Nagios 服务。

检查 Nagios Web UI,您应该会看到 check_file_ages_in_dirs 服务监控您的远程主机。