有一个 icinga 服务器设置为运行检查_megaraid_sas。过去 7 个月里,它一直运行良好。
在此期间,由于各种原因,出现了多条“无法读取输出”消息,并且在所有这些情况下,状态均为“未知”,从而触发了我们的警报系统。
最近,驱动器的状态从警告变为严重,然后又变为正常:
- 15:22:03 RAID-健康;警告;...
- 18:42:03 RAID—健康;严重;...
- 19:04:03 RAID-Health;OK;NRPE:无法读取输出
出现此问题时,megaraidsas-status 返回以下内容:
-- Arrays informations --
-- ID | Type | Size | Status
-- Disks informations
-- ID | Model | Status | Warnings
但是,我本来希望脚本返回“OK:驱动器 0”(正如一些用户评论所暗示的那样——仍然是一个错误,但修复方法不同)。由于 NRPE 返回“无法读取输出”并将其标记为“OK”,这让我认为这是 NRPE 的问题,而不是脚本的问题。
有没有办法让 NRPE 相信,当它没有收到任何来自检查的响应数据时,检查就失败了?或者有没有人知道可能发生了什么?
正在检查的服务器已经重新启动,我不确定这种情况是否会再次出现以进行测试。
答案1
这通常意味着检查返回的结果(例如,与输出交错的错误消息)违反了 nagios 检查输出的格式。su - 对于用户,监控插件在远程服务器上运行并检查输出;如果看起来正常,则将其通过管道传输到 hexdump -C,因为意外的控制字符可能会混淆 nrpe。