複数ホストから情報収集したアイテムに対してトリガーを設定したい
swarmで構成されたdockerコンテナの監視を検討しています。
ホストA,B,Cの3ノードクラスタで構成されたdockerは、
コンテナが起動されるホストが固定されないため、
以下のような設定が可能か、ご教授いただけないでしょうか。
■監視内容
① ホストA,B,Cにsystem.runアイテムで対象のコンテナ情報を表示するコマンドを実行する
② ホストA,B,Cの①の結果のうち、いずれかに対象のキーワード(ex:UP)が含まれているか監視する
依存関係などを使用して監視できないかどうか検討しているのですが、
このような監視を実装した実績や方法ご存知でしたらご教授いただけますと幸いです。
fripper - 投稿数: 495
個々のホスト A/B/C としての個別監視を設定したうえで
個々のコンテナ内部に仕込んだエージェントから、自ホストとしてのアイテムに関する
監視データを送信・応答させる
==ここまでは既に想定されている構成かと思います
それらに加え、クラスタとしての外形監視用に別の監視ホスト「X」を定義しておいて
各コンテナ内から、監視ホスト「X」上の trapper タイプのアイテム (整数型) に対して
A/B/C が識別できるような情報 (例えば 10,20,30)を、定期的に zabbix_sender で送信させる
host パラメータを併用することで、エージェントとしての「監視対象ホスト名」と
別の監視対象ホスト内に設定されたアイテムへも sender で投げ込むことが可能です
user$ zabbix_sender --server server-host --port server-port --host X --key some-item --value 10
Zabbixサーバ上では、監視ホスト「X」上の上記トラッパーアイテムに対して
nodata 関数等を併用したトリガーを設定することで
全コンテナからの trapper アイテムへの監視データが一定時間以上届かなくなった時点で
障害として検知するのではないかと思います
nodata を併用する形になるパターンなので、若干使い勝手は良くないかもしれませんが‥
ktta - 投稿数: 16
fripper様
ご教授いただきありがとうございます。
こちらの説明が不足しており申し訳ございませんが、
エージェントは個々のコンテナ内部に仕込まれているのではなく、
あくまでホストA,B,C単位にインストールされており、
ホストA,B,Cでのコンテナ状態を表示するコマンド実行した結果に
コンテナの状態が「UP」であるか否かを監視することを想定しています。
理由としては、コンテナが停止した場合、次に起動する際は
どのホスト上で起動されるかわからず、コンテナ内にエージェントは仕込めないためです。
やはりそういった監視は難しく、
ご提示いただいたようなzabbix senderを利用する必要があるのでしょうか。
TNK - 投稿数: 4769
各ホスト(A,B,C)にZabbixエージェントをインストールできるので
あれば、UserParameterを使用して、例えば特定の名前の起動され
ているコンテナの数を取得できるようにして、Zabbixサーバー側で
それらの値を1つの条件式でチェックするという方法でできると思
うのですが、いかがでしょうか?