我们正在使用 Nagios 来检查重复进程。
define service
{
use local-service
host_name xxx
service_description xxx Duplicate Processes
check_interval 1
max_check_attempts 1
contact_groups admins
event_handler restart-dependent-processes
check_command check_procs_duplicate!2!3!2!2!2
}
check_procs_duplicate 检查是否存在任何重复进程并返回状态 - 例如 CRITICAL。
事件处理程序会终止重复进程及其依赖进程,并启动该进程和依赖进程的一个实例。在此结束时,Nagios 会再次检查是否有任何重复进程,并相应地设置状态 - OK/WARNING/CRITICAL。
事件处理程序需要更多时间来启动进程,在此期间如果有人手动启动该进程,则状态将保持在 CRITICAL。
在下一个间隔内,Nagios 将再次检查重复进程,并再次发现其处于 CRITICAL 状态。
事件处理程序将不是立即执行,因为先前和当前的状态都是 CRITICAL。
关于如何解决此问题有什么指示吗?
答案1
您可能需要考虑将其设为可变服务。请参阅不稳定的服务。
你正在处理的不是严格一个易失性服务,但 check_interval 为 1 和 max_check_attempts 为 1 几乎是同一件事。
如果您使服务变得不稳定,它应该在关键时刻有效地运行事件处理程序,而不仅仅是在状态“改变”时。