如何将命令重试添加到 sensu 检查中?

如何将命令重试添加到 sensu 检查中?

我在 Puppet 中定义了以下 sensu 检查

sensu::check { 'check_kubernetes_kubelet':
   interval    => 60,
   timeout     => 30,
   command     => 'check_http -H :::name::: -p 10248 -u /healthz -e "200 OK"',
   subscribers => ['kubernetes_minion'],
   contacts    => ['sensu_high'],
}

我想将命令重试添加到此检查中。此检查应仅在连续 N 次命令执行返回错误后才开始向其联系人发出警报。

在这个例子中,假设 N 为 2。假设在 check_X 之后立即发生故障。然后 60 秒后 check_X+1 将返回错误。再过 60 秒,check_X+2 也将失败。我希望在 check_X+2 出错后开始发出警报。


我认为过滤器 可能有用。看来我需要创建一个过滤器,例如这里。但是我该如何将该过滤器与此检查关联起来?我是否也需要定义自定义处理程序?

答案1

您需要使用 Occurrences。
occurrences => 2,

答案2

你必须使用处理程序。当您的检查触发事件时,这将到达您为其定义的处理程序(在中搜索“处理程序”检查)。然后,每个处理程序可以有一个或多个相关联的过滤器。

来自文档:

当 Sensu 服务器处理事件时,它会检查处理程序的定义。在执行每个处理程序之前,Sensu 服务器将首先为处理程序应用任何已配置的过滤器

相关内容