我已配置以下检查:
"cron": {
"command": "check-process.rb -p cron",
"subscribers": [],
"handlers": [
"mailer",
"flowdock",
"remediator"],
"interval": 10,
"occurences": 3,
"refresh": 600,
"standalone": false,
"remediation": {
"light_remediation": {
"occurrences": [1, 2],
"severities": [2]
}
}
},
"light_remediation": {
"command": "touch /tmp/test",
"subscribers": [],
"handlers": ["flowdock"],
"publish": false,
"interval": 10
},
正在按预期执行Mailer和flowdock处理程序,因此当cron服务未运行时,我收到电子邮件和flowdock通知。问题是修复器检查不起作用,我不知道为什么。我用过这个:https://github.com/nstielau/sensu-community-plugins/blob/remediation/handlers/remediation/sensu.rb
答案 0 :(得分:0)
我遇到了类似的问题,但最终设法让它进行了一些修改。
首先,陷阱:
每个服务器(client.json.template)都需要订阅一个频道$ HOSTNAME
"subscribers": ["$HOSTNAME"],
您没有“trigger_on”部分,该部分位于代码中但不是示例中,您也希望将其设置为触发$ HOSTNAME。 my_chek.json.template
"trigger_on": ["$HOSTNAME"]
修复检查也需要订阅$ HOSTNAME(因此您还需要模板化检查)
"subscribers": ["$HOSTNAME"],
此时,您应该能够手动触发sensu服务器的修复。
最后,sensu.rb中列出的示例代码被破坏了......事件检查需要在循环中向上一级,而trigger_on不在修复部分内,它在外面。
subscribers = @event['check']['trigger_on'] ? [@event['check']['trigger_on']].flatten : [client]
...
# Check remediations matching the current severity
next unless (conditions["severities"] || []).include?(severity)
remediations_to_trigger << check
end
end
remediations_to_trigger
end
之后,它应该适合你。
哦,还有最后一件事。在你的client.json.template
中"safe_mode": true
默认为false ...