テストチェックを作成しましたが、削除したいと思います。クライアントから離れないようです。 uchimaをフロントエンドとして使用していて、チェックがリストに表示されなくなった
/ checks
しかし、クライアントを見ると、まだチェックがあります。
チェックを削除する唯一の方法は、ノードを削除して、ノード自体を再度追加することです。私には300のクライアントがあり、私はそれをしたくありません。
そのため、最近、ansibleを介していくつかのsensuチェックをデプロイし、不正な名前で既存のチェックを再作成する問題が発生しました。 uchiwaインターフェースで見た目が悪いことを除けば、これを手放すことに問題はありません。上記の手順を踏みましたが、古いバージョンのsensuのものである必要があります。これらのチェックを削除するために変更した手順は次のとおりです。
redis-cli
keys *server_name*
対象のサーバーに関連するすべてのチェックを一覧表示するsmembers result:server_name
srem result:server_name check_to_remove
del history:server_name:check_to_remove result:server_name:check_to_remove
これにより、チェックがRedisから完全に削除され、次にsensuから削除されます。
最新のウチワはそれ自体を行うことができます http://docs.uchiwa.io/en/latest/features/deleting-check-results/
Sensu 0.21.0以降、DELETE /results/:client/:check
ここで役立つAPI。ここのドキュメントを参照してください: https://sensuapp.org/docs/0.29/api/results-api.html#resultsclientcheck-delete
そして、これはuchiwaからも行うことができます: https://docs.uchiwa.io/reference/clients/#request-to-delete-check-result-data
誰かがこれに来て、Redis DB全体をフラッシュせずに同じことをしたい場合は、以下を実行できます。
例:クライアント:SomeServer、チェック:check_nginx
実行するコマンド:
del execution:SomeServer:check_nginx
del history:SomeServer:check_nginx
上記のJonHの回答に追加したいと思います。
すべてのキーとチェックはredis-cliで確認できます。
keys *:*:name_of_check
そして、通過します(例)
del history:hostname:name_of_check
上記のコードはサーバーと特定のチェックのみを出力し、キー*はすべてのキーを出力するため、これにより古いチェックを持つノードの検索がより簡単になります。
お役に立てれば!
だからできないことがわかります。 redisでflushall
を発行する必要があります
フラッシュオールは、単一のチェックを解決するための極端な過剰です。
1つのチェックを解決するには、「解決」API呼び出しを発行するか、解決ボタンをクリックします。
私のサーバーには、すべてのイベントをsensu-cliで反復し、最後にチェックされたものを1週間以上前に解決して、削除されたチェックがダッシュボードを詰まらせないようにするcronジョブがあります。