我正在使用 Nagios 监控 Windows 主机。我使用的是在 Centos 7 服务器上运行的 Nagios 3.5。已从官方存储库和 EPEL 存储库安装了以下软件包:
nagios
nagios-plugins-all
nagios-plugins-nrpe
到目前为止,我正在使用“check_nt”方法在 Windows 主机上运行一些基本检查。这很有效。
现在我想使用检查硬件信息插件用于将有关主机的信息集中到一个地方。此插件需要 NRPE 才能运行。
在'commands.cfg'文件中我添加了:
define command{
command_name check_hwinfo
command_line $USER1$/check_nrpe_hwinfo $HOSTNAME$ $HOSTADDRESS$
}
在'nrpe.cfg'中我添加了:
command[check_hwinfo]=/usr/bin/sudo /usr/lib64/nagios/plugins/check_hwinfo.pl
command[check_hwinfo_csv]=/usr/bin/sudo /usr/lib64/nagios/plugins/check_hwinfo.pl -t csv
command[check_hwinfo]=c:\windows\system32\cscript.exe //NoLogo //T:10 "C:check_hwinfo\check_hwinfo.wsf"
command[check_hwinfo_csv]=c:\windows\system32\cscript.exe //NoLogo //T:10 "C:\check_hwinfo\check_hwinfo.wsf" /sep:csv
我已将“check_hwinfo.pl”脚本复制到“/usr/lib64/nagios/plugins”文件夹中并使其可执行,并且具有与文件夹中其他脚本相同的权限。
我已将这些行添加到“/etc/sudoers”以便无需密码执行:
Defaults:nagios !requiretty
nagios ALL=NOPASSWD: /usr/lib/nagios/plugins/check_hwinfo.pl "", /usr/lib/nagios/plugins/check_hwinfo.pl -t csv
在客户端,我在监控的 Windows 主机上运行 NSClient++。对于 check_hwinfo,我创建了文件夹“C:\check_hwinfo”,并将在 Windows 上运行测试所需的“check_hwinfo.wsf”文件放入其中。
这是我的ns客户端这是我的nsclient-完整版.ini文件。
虽然所有其他检查(通过 check_nt)都运行正常,但无论我怎么尝试,check_hwinfo 都无法工作。Nagios 页面中的服务状态为“警告”,错误消息为“没有命令处理程序:check_hwinfo_csv”。
有人有使用 check_hwinfo 的经验吗?你能给我指明正确的方向吗?
更新 1:
当尝试手动运行 check_nrpe 时,我得到了以下信息:
./check_nrpe -H 192.168.10.13 -c CheckDisk
No handler for command: checkdisk
这与我从 check_hwinfo 插件在 GUI 上收到的错误消息相同
No handler for command: check_hwinfo_csv
更新2:
在 Windows 客户端中,在 nsclient-full.ini 文件中我有以下定义:
check_hwinfo=C:\check_hwinfo\check_hwinfo.wsf
check_hwinfo_csv=C:\check_hwinfo\check_hwinfo.wsf -t csv
答案1
该错误表明您没有启用外部脚本处理程序。幸运的是,nsclient++ 有出色的文档关于这个问题。
(看起来他们目前正在重新制作 wiki/docs,所以你可能需要检查一下旧的如果缺少了什么的话。)