今回はZabbixに関して、なんだか湧いてきた疑問から、監視構造の理解を深めたいと思います。
それではさっそく。
Zabbixはどうやってインストールしたサーバで監視を行っているのか
結論からいうと、サーバにZabbixエージェントを導入すると稼働データをローカルに保存し、そのデータをZabbixサーバ側に送信します。
その際、エージェント側ではデータの処理をせず、サーバ側に送信した後、データを処理しています。
また、処理する際には、JSON ベースの通信プロトコルを使用して、サーバとZabbix エージェントとの間で通信を行っています。
※この送信サイズには上限もありますので、詳しくは、公式のドキュメントを確認してください。
このJSONベースの通信プロトコルには2種類あり、ポート番号も異なります。
パッシブチェックとアクティブチェックです。
・パッシブチェック(ポート番号:10050)
サーバ側から問い合わせを行い、エージェントが結果を返します。
・アクティブチェック(ポート番号:10051)
Zabbixエージェントは、個々の処理のために、最初にZabbixサーバからアイテムのリストを検索します。 その後、更新された値をサーバに定期送信します。
つまり、エージェントは設定ファイル(zabbix_agentd.conf)の中身を見て、そのデータをサーバ側に送っています。
※7.0.0以降、Asynchronous Pollerという新機能を追加して非同期でのデータ処理が可能になったようです。
また、ポートについては監視するアイテムによって違います。以下も参考にしてみてください。
今回は、Zabbixサーバとエージェントがどのような監視を行うかを調べることで、
監視方法や通信プロトコルに何が使われてるのかを理解することができました。
次回は、ZabbixのDBの理解深め、収集したデータをどのように処理しているのかを調査したいと思います!
参考:
https://www.zabbix.com/documentation/2.2/jp/manual/concepts/agent
https://satimo.org/2021/02/zabbix-passive-active-check/