【问题标题】:Status return nagios plugins using sed使用 sed 状态返回 nagios 插件
【发布时间】:2019-08-29 06:52:11
【问题描述】:

我在 nagios "check_icmp" 中有一个插件,如果命令可以 ping 所需的主机,则返回 4 个值,但是如果 ping 失败,我只得到 1 个值,所以我使用了以下命令:

'/usr/lib64/nagios/plugins/check_icmp -w 1000.0,20% -c 1400.0,60% -H 8.8.4.5 -m 5 | sed 's/pl=100%;20;60;0;100/rta=nan;;;; rtmax=nan;;;; rtmin=nan;;;; pl=100%;20;60;0;100/g'

然后它返回

CRITICAL - 8.8.4.5: rta nan, lost 100%|rta=nan;;;; rtmax=nan;;;; rtmin=nan;;;; pl=100%;20;60;0;100

而不是

CRITICAL - 8.8.4.5: rta nan, lost 100%|pl=100%;20;60;0;100

所以它在主机上运行良好,但如果我将此命令放在 nagiosql 中,即使 ping 失败,当前状态也会保持绿色“OK”:

https://ibb.co/LCzvXrV

【问题讨论】:

  • 请在edit提问时使用Image (Ctrl+G) 按钮嵌入图片!
  • 我不能没有足够的声誉
  • 嗯,您应该始终能够使用问题下方的灰色链接编辑您自己的问题...
  • of crouse 但我无法嵌入我需要 10 声望的图像,即使是我自己的问题也是如此
  • 抱歉,我并不完全了解that

标签: cmd nagios


【解决方案1】:

我猜你得到 OK 的原因尽管结果是“CRITICAL”是因为 Nagios 唯一关心的是你运行的命令的 return code(也称为退出代码) )。我猜sed 说了算,退出时返回码0 表示“一切正常”,而且很明显:对于sed

由于您没有解释为什么您要这样做,我无法评论这是否是一个好主意,但在我看来,包括在内似乎很奇怪在您的检查命令中连接到sed 的管道。我了解到您正在清理插件返回的 performance data,但为什么呢?

Nagios 旨在将返回代码解释为您的支票状态,这就是它的方式。由于此插件行为,您看到的任何问题都可以通过另一种方式解决,而无需在您的检查中运行sed 魔术,您可能会或可能不会获得预期的结果。还值得注意的是,如果您将其插入到 RRD 文件中,弄乱值的顺序或数量可能会让人头疼,所以我真的不推荐它。

作为将来的建设性建议,请在提出这些问题时说明是什么让您想到了当前的解决方案,因为您永远无法知道它是否真的是解决原始问题的最佳方法。这通常称为XY Problem

【讨论】:

  • 我这样做是因为我想为我的 check_icmp 输出提供 pnp4nagios 图表,如果我收到丢失少于 100% 的数据包,则 check_icmp 命令返回 4 个值并且图表可以完美运行​​​​丢失的数据包等于 100% 该命令仅返回 1 个值,而 pnp4nagios 正在等待 4 个值,因此它失败了我必须制作一个 sed 来转换 check_icmp 的输出,以便在 100% 的情况下接收 4 个值而不是 1丢包有功能图
  • 如果您最初问的是那个问题,那么您会得到比“使用 sed”更好的答案:答案是,将“rrd_storage_type”设置为“multiple”。您可以在此处阅读更多相关信息:report.cs.rutgers.edu/pnp4nagios/docs/view/en_US/rrd_convert
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-14
相关资源
最近更新 更多