我在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的错误之后启动。
我认为sensu filter可能是有用的。 看起来我需要像这样创build一个filter。 但是,我怎么把这个filter和这个检查联系起来呢? 我是否也需要定义自定义处理程序?
你必须使用处理程序 。 当你的检查触发器和事件,这将得到你已经定义的处理程序或处理程序(在检查中search“处理程序”)。 然后,每个处理程序可以有一个或多个相关的filter。
从文档:
当Sensu服务器正在处理事件时,它将检查处理程序(或处理程序)的定义。 在执行每个处理程序之前,Sensu服务器将首先为处理程序应用任何已configuration的filter(或多个filter)