答案 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 服务监控远程主机。