如何为每个服务检查设置单独的超时设置。根据主要配置,所有超时默认为 60 秒,但由于执行时间,我要求一项特定检查具有更长的超时。
如何才能做到这一点?请帮忙。
谢谢
解决此问题的最佳方法是将检查从“主动”执行移至“被动”执行。被动检查对 Nagios 系统没有任何时间限制。您必须根据需要将任何超时合并到被动检查脚本/程序本身中。这将允许您完全控制检查应该运行多长时间 - 甚至可以在需要时持续运行的守护进程检查。
全局超时的主要目的是防止我称之为“检查堆栈”的情况。使用较高的全局超时(尤其是高于可能的最小检查间隔的超时),您可能会在旧检查完成之前触发新检查。这些可能导致从 Nagios 系统上的资源耗尽到给目标机器和/或应用程序带来压力的一切。因此,增加这些全局超时通常是一个坏主意。当达到这些超时时,将终止分叉检查过程。
如文档中所述,此超时是控制行为不正常的服务检查的最后努力。如果您知道您有一个需要更长时间的检查,那么我建议您在 nagios.cfg 中提高此限制。没有服务或主机检查设置会覆盖此设置。
编辑:我刚刚意识到你不是在谈论远程服务检查,所以不幸的是,我需要将我的答案改为“你不能”。如果要更改服务检查的超时设置,则必须将其应用于主配置文件中的所有服务检查。
您需要定义第二个命令参数,它使用您的特殊超时设置。
例如,这可能是您在 commands.cfg 中的原始检查:
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
这将是具有更长超时值的相同命令(也在 commands.cfg 中):
define command{
command_name check_nrpe_slow
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -t 120 -c $ARG1$
}
如果有更好的方法来做这个 nagios-wizards 请告诉我!它会在我自己的配置文件中节省很多空间。