2016-11-28 1 views
0

ich die folgende Überprüfung konfiguriert haben:Sensu Sanierung funktioniert nicht

"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 und Flowdock Handler ausgeführt werden, wie erwartet, so dass ich den Empfang von E-Mails und Benachrichtigungen Flowdock wenn cron Dienst wird nicht ausgeführt. Das Problem ist, dass die Korrekturprüfung nicht funktioniert und ich habe keine Ahnung warum. Ich habe das verwendet: https://github.com/nstielau/sensu-community-plugins/blob/remediation/handlers/remediation/sensu.rb

Antwort

0

Ich stieß auf ähnliche Probleme, aber schließlich geschafft, es mit einigen Modifikationen arbeiten.

Zunächst einmal, die gotchas:

Jeder Server (client.json.template) muss auf einen Kanal $ HOST

"subscribers": ["$HOSTNAME"], 

Sie können abonnieren Sie nicht ein "trigger_on" Abschnitt, der ist im Code aber nicht im Beispiel und du willst das auch auf $ HOSTNAME auslösen. my_chek.json.template

"trigger_on": ["$HOSTNAME"] 

Die Sanierung sowie zu $ ​​HOST abonnieren Kontrollen müssen (so müssen Sie auch die Kontrollen Vorlage aus)

"subscribers": ["$HOSTNAME"], 

An diesem Punkt sollten Sie sein kann Ihre Korrektur manuell vom sensu Server auslösen.

Schließlich ist der Beispielcode in sensu.rb gebrochen ... Die Vorkommensprüfung muss eine Ebene in der Schleife nach oben sein, und das trigger_on befindet sich nicht im Abschnitt "Sanierungen", es ist außerhalb.

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 

Danach sollte es für Sie arbeiten.

Oh, und einen letzten Gotcha. In Ihrem client.json.template

"safe_mode": true 

Es standardmäßig auf false ...

Verwandte Themen