web-dev-qa-db-ja.com

sensuチェックにコマンド再試行を追加するにはどうすればよいですか?

Puppetで次のセンスチェックを定義しています

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 filters が役に立つかもしれないと思います。 here のようなフィルターを作成する必要があるようです。しかし、そのフィルターをこのチェックに関連付けるにはどうすればよいですか?カスタムハンドラーも定義する必要がありますか?

2
Hakan Baba

handlers を使用する必要があります。チェックがトリガーされてイベントが発生すると、定義した1つまたは複数のハンドラーに到達します( checks で「handler」を検索してください)。次に、各ハンドラーに1つ以上のフィルターを関連付けることができます。

ドキュメントから:

Sensuサーバーがイベントを処理しているとき、1つまたは複数のハンドラーの定義をチェックします。各ハンドラーを実行する前に、Sensuサーバーは最初にハンドラーに構成されたフィルターを適用します

1
Enrique Arriaga