Nagios nrpe 命令失败但本地命令有效

Nagios nrpe command fails but local command works

我正在使用自定义脚本来检查物理内存。
https://exchange.nagios.org/components/com_mtree/attachment.php?link_id=3329&cf_id=24

(我添加了性能数据)

本地 运行 与此:

/usr/lib64/nagios/plugins/check_custom_memory.sh 

输出:

OK - 30405 MB (96%) Free Memory | total=31513MB used=1108MB

当我使用此命令从 nagios 服务器 运行 它时(出于安全原因隐藏实际 IP):

/usr/lib64/nagios/plugins/check_nrpe -t 60 -H xxx.xxx.xxx.xxx -c check_custom_memory.sh -a 10 5

输出:

CRITICAL - 30405 MB (%) Free Memory | total=31513MB used=1108MB

似乎 check_nrpe 不包括 % 值。这只发生在这台服务器上,而不是我的其他服务器上。所有其他检查 运行 没问题。对远程服务器的任何其他 nrpe 检查也可以正常工作。好像只有这一张支票。这让我觉得这是脚本,但它适用于其他服务器和本地,所以我不知所措。

/tmp/memcalc 文件有 666 权限,由远程服务器上的 nrpe 拥有,我可以看到它在本地 运行 时的编写方式。当运行check_nrpe时,文件未被访问或写入。

知道为什么吗?

我相信我找到了问题所在。好像跟 selinux 有关系运行。通常我们不使用它,但是这个服务器有它 运行。它似乎停止访问写入在 /tmp 目录中创建的文件以计算可用内存的百分比。

结果。我只是重写了脚本以不使用临时文件并使用简单的数学计算百分比并且不准确(这很好)。