为Nagios插件编写优美的超时

时间:2018-11-28 20:43:58

标签: monitoring nagios

来自Nagios' Plugin Development Guidelines

  

插件的运行时间非常有限-通常为10秒。因此,对于插件来说,如果运行时超过阈值,则保持内部代码退出非常重要。

     

所有插件都应该优雅地超时,而不仅仅是网络插件。

如何在我的自定义插件中实现超时机制?基本上,我希望我的插件在插件超时时返回状态码3-UNKNOWN而不是默认值1-CRITICAL,以减少误报的产生。

编辑:我的插件是用Bash编写的。

1 个答案:

答案 0 :(得分:1)

您可以使用changeMessage。这是用法示例:

timeout

如果您的命令未在规定的时间内完成timeout 15 ping google.com if [ $? -eq 124 ]; then echo "UNKNOWN - Time limit exceeded." exit 3 if 秒,您将从timeout获得返回退出状态124。