2016-11-28 4 views
0

я настроил следующую проверку: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 обработчиков выполняется, как ожидалось, поэтому я получаю электронные письма и flowdock уведомления, когда хрон служба не запущена. Проблема в том, что проверка исправления не работает, и я понятия не имею, почему. Я использовал это: https://github.com/nstielau/sensu-community-plugins/blob/remediation/handlers/remediation/sensu.rb

ответ

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 

По умолчанию это ложь ...