Sensu のコメント: Sensu イベントは、チェック結果が状態の変化を示したときに作成されます。
チェックの結果ではないカスタムイベントを作成することはできますか?
Sensu API にはイベントを作成するコマンドがありません: https://sensuapp.org/docs/latest/api-events。
Sensu のコメント: Sensu イベントは、チェック結果が状態の変化を示したときに作成されます。
チェックの結果ではないカスタムイベントを作成することはできますか?
Sensu API にはイベントを作成するコマンドがありません: https://sensuapp.org/docs/latest/api-events。
はい、でもうちわではチェックに見えます - センスでは定義されていませんが。
このページを参照してください: https://sensuapp.org/docs/0.16/external_result_input
クライアント(Linux)で実行しました。
echo '{ "name": "my_check", "output": "some output", "status": 0 }' > /dev/tcp/localhost/3030
そしてそれは魔法のようにうちわのクライアントのチェックリストの下に現れた。
次に、ステータス フィールドを 1 に設定して再度実行しました。
echo '{ "name": "my_check", "output": "some output", "status": 1 }' > /dev/tcp/localhost/3030
そして、うちわはそれを警告として表示しました。
ステータス 2 で 3 回目の実行を行ったところ、予想どおり、クリティカルになりました。ステータス 0 で再度実行すると、通常に戻ります。
そのため、達成したい内容に応じて、これをクライアントの PHP/Python/Whatever で実行し、sensu サーバーでハンドラーを定義して、必要なことを実行できます。ハンドラー名を JSON に追加するだけでなく、渡したいその他のデータも追加できます。
例えば:
echo '{ "name": "trickyCheck", "output": "cake is delicious", "status": 0, "handler": "handlerOfDoom", "link": "http://cats.com" }' > /dev/tcp/localhost/3030
ハンドラ:
{
"handlers": {
"handlerOfDoom": {
"type": "pipe",
"command": "doSomethingCool.rb",
"severities": ["warning","critical"]
}
}
}
}
ruby スクリプトは、JSON 内のすべてにアクセスできます。出力、リンク、ステータスなど...そこで必要なことを行います。
Windows 上の Sensu で同じことを行うには、localhost の tcp ポートにデータを送信する別のツールが必要になる場合があります。 https://serverfault.com/questions/629682/send-text-string-to-a-socket-in-windows