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

时间:2015-09-01 20:44:33

标签: nagios

我刚刚在Ubuntu服务器上安装了Nagios 3,我不知道如何在其中添加第三方插件。

该插件可用:Here

提前感谢您的帮助

1 个答案:

答案 0 :(得分:3)

您没有提及有关使用Nagios监控的服务器的任何信息。 我将假设它是一个Ubuntu Linux服务器,它与你安装Nagios的机器不同。

在要监控的服务器上:

确保已安装NRPE(Nagios Remote Plugin Executor)。这是在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后重新启动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-gzip压缩文件:

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/

如果您的grep没有返回“include_dir”的结果,请将上述“include_dir”配置添加到您的nrpe.cfg文件中。确保已创建/etc/nrpe.d/文件夹。

在名为check_file_ages_in_dirs.cfg的include_dir中创建一个新文件。添加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/

中的说明重新启动您的nrpe服务

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

在您的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正在您的远程服务器上运行,并且它已正确配置为允许来自Nagios服务器的连接。 注意:对于此示例,我将假装我要监控的主机的IP地址为10.0.0.1将此替换为您要监控的主机的IP地址。

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

    NRPE v2.14

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

接下来尝试通过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服务器上定义主机,服务和命令了。 为主机,服务和命令定义定义单独的配置文件会更清晰。但这超出了本文的范围。 现在,我们将在默认的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

如果未报告任何错误,请重新启动Nagios服务。

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