Sensu修复不起作用

时间:2016-11-28 15:03:29

标签: sensu

我已配置以下检查:

    "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

1 个答案:

答案 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 ...