将插件从 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 服务监控您的远程主机。
我刚刚在 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
.
接下来您需要将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 服务监控您的远程主机。