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

Posted

技术标签:

【中文标题】Nagios nrpe 命令失败,但本地命令有效【英文标题】:Nagios nrpe command fails but local command works 【发布时间】:2018-12-04 13:13:45 【问题描述】:

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

(我添加了性能数据)

用这个在本地运行:

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

输出:

好的 - 30405 MB (96%) 可用内存 |总计=31513MB 已用=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 (%) 可用内存 |总计=31513MB 已用=1108MB

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

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

有什么想法吗?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于Nagios nrpe 命令失败,但本地命令有效的主要内容,如果未能解决你的问题,请参考以下文章

Nagios学习笔记四:基于NRPE监控远程Linux主机

nagios 安装配置(包含nrpe端)全

Nagios CHECK_NRPE 无法完成 SSL 握手

Nagios4.3.1监控Centos6.7

CentOS7安装Nagios并配置出图详解

NRPE 教程:Nagios 的扩展