NRPE(Winrpe)Powershell 命令-无法读取 Nagios 中的输出

NRPE(Winrpe)Powershell 命令-无法读取 Nagios 中的输出

我正在尝试从 NRPE.cfg 运行 Powershell 脚本并在 Nagios 中获取输出。

当我在本地 (Windows) 服务器上运行脚本时,一切都很好。但是当我将其放入 NRPE.cfg 并尝试在 Nagios 中获取输出时,我收到无法读取输出的错误。

在互联网上搜索但找不到解决方案,所以也许你可以帮助我..

命令/脚本是:

命令[check_veeam_dailyone]=cmd /c echo c:\install\veeam_check.ps1 ; 退出($lastexitcode) | powershell.exe -ExecutionPolicy Bypass -noninteractive -noprofile -File -

当我将其放在 PowerShell 中的 Windows 服务器上时,我将获得以下输出:

PS C:\Install> OK - 作业:VeeamOne_Daily 于 2014 年 10 月 9 日 04:45:51 成功完成。

“PS C:\Install>”部分很奇怪,但是它确实读取了最后一项工作,所以看起来“没问题”......

但是当我尝试使用以下命令在 Nagios 中获取此输出时:

root@nagios:~# /usr/lib/nagios/plugins/check_nrpe -H 192.168.1.1 -t 300 -c check_veeam_dailyone

它说:

NRPE:无法读取输出

NRPE 运行良好,因为当我尝试获取另一个命令(例如 C 盘)时,一切正常:

/usr/lib/nagios/plugins/check_nrpe -H 192.168.1.1 -t 300 -c pdm_disk_c DISK OK - 使用情况:C:38717.2 MB(总计 61337.0 MB 的 63.12%)|'磁盘使用中'=38717.2MB;'磁盘使用情况'=63.12%;90;95;'磁盘总计'=61337.0MB;

就是不知道哪里出了问题。

我使用的脚本是这个:

http://exchange.nagios.org/directory/Plugins/Backup-and-Recovery/Others/check_veeam_backups/details

感谢您的回复!

答案1

  1. 我首先会尝试降低脚本的复杂性,比如说......

    回显“Hello World”并查看是否有效。

  2. 不仅如此,NRPE 通常由名为 nrpe 的用户运行(除非另有说明),因此当您运行检查时,请从 nrpe 用户运行它们,而不是从 root 运行。
  3. 还要确保被监控机器上的 nrpe.cfg 中的“dont_blame_nrpe”设置为“1”。
  4. 您可以尝试的另一件事是包装它:

cmd /c echo c:\install\veeam_check.ps1 ; 退出 ($lastexitcode) | powershell.exe -ExecutionPolicy Bypass -noninteractive -noprofile -File -

在批处理文件(.bat)中,然后将 NRPE 中的命令更改为更简单的命令,如下所示:

command[check_veeam_dailyone]=yourscript.bat

然后尝试再次运行该命令并查看是否有效。

相关内容