BLOG
2024 年 12 月 05 日
Zabbix 7.0 の新機能 - Zabbix Proxy HA(仕組み解説編)
はじめに
Zabbix / MIRACLE ZBX 7.0 にて Zabbix Server だけでなく Zabbix Proxy にも HA (High Availability) 機能が新たに追加されました。いままで Zabbix Proxy で高可用性を実現させたい場合、クラスタソフトウェア等の外部アプリケーションが必要でした。しかし 7.0 からは、Zabbix / MIRACLE ZBX の標準機能のみで Zabbix Proxy の HA 化が実現できます。本記事では、Zabbix Proxy のおさらいと新機能である Zabbix Proxy の HA 機能の仕組み、構築・設定方法について 2 本立てでご紹介します。
Zabbix 7.0 の新機能 - Zabbix Proxy HA(構築・設定編)
本記事内での表記・用語について
表記・用語 | 解説 |
---|---|
Zabbix | Zabbix 社が提供しているオープンソースの統合監視ソフトウェアを指します。 |
MIRACLE ZBX | サイバートラスト株式会社が提供している Zabbix をベースとした監視ソフトウェアを指します。 |
Zabbix / MIRACLE ZBX | 今回紹介する機能・範囲においては Zabbix と MIRACLE ZBX に大きな違いはないため、両者を指す表記として Zabbix / MIRACLE ZBX と記述します。 |
Zabbix Server | Zabbix / MIRACLE ZBX のサーバ機能がインストールされ稼働しているサーバおよびその機能を指します。 |
Zabbix Proxy | Zabbix / MIRACLE ZBX のプロキシ機能がインストールされ稼働しているサーバおよびその機能を指します。 |
Zabbix Agent | Zabbix / MIRACLE ZBX のエージェント機能がインストールされ稼働しているサーバおよびその機能を指します。 |
Zabbix Proxy とは
最初に Zabbix Proxy についてのおさらいです。
Zabbix Proxy とは、Zabbix Server に代わり監視対象から監視データを収集し、Zabbix Server に監視データを送信する機能です。Zabbix Proxy が収集した監視データは、Zabbix Proxy のローカルにバッファリングされ Zabbix Server に転送されます。Zabbix Server のデータ収集負荷を軽減させたり、監視対象がネットワーク的に Zabbix Server と直接通信できない、あるいは通信回線が不安定といった環境で役立つ機能です。
Zabbix Proxy には、「アクティブプロキシ」と「パッシブプロキシ」の 2 種類の動作モードが存在します。
- アクティブプロキシ
監視設定情報等は、Zabbix Proxy が起点となって Zabbix Server から取得します。
- パッシブプロキシ
監視設定情報等は、Zabbix Server が起点となって Zabbix Proxy に配信します。
どちらの動作モードも監視機能自体に違いは生じませんが、通信の向きが異なります。ただし、アクティブモードの場合、設定によっては Zabbix Proxy になりすまして Zabbix Server にアクセス出来てしまう可能性があります。Zabbix Server / Zabbix Proxy を配置するセグメントの通信要件やセキュリティポリシー、扱う監視データの機密性によって、どちらのモードを採用するか検討するとよいでしょう。
新機能:Zabbix Proxy HA / 自動再割り当ての仕組み
Zabbix Proxy の HA 機能は、複数の Zabbix Proxy を 1 つのプロキシグループとして登録しそのグループ内の Zabbix Proxy が障害等で停止した場合に、停止した Zabbix Proxy が監視していた監視対象を同じグループ内の別の Zabbix Proxy に自動で再割り当てして監視を継続することで実現しています。
では、仕様や仕組みについて解説していきます。
プロキシグループ
複数の Zabbix Proxy を同じプロキシグループに登録することで、そのプロキシグループに属している Zabbix Proxy 間で HA 化や自動分散が可能です。プロキシグループに属していないスタンドアロンの Zabbix Proxy や、プロキシグループが異なる Zabbix Proxy 間では HA 化 や自動分散をすることは出来ません。プロキシグループの設定項目である「最小のプロキシ数」以上の Zabbix Proxy がオンラインとなると、そのプロキシグループもオンラインとなります。Zabbix Proxy HA による HA 化や自動分散は、オンラインのプロキシグループでのみ機能します。
例として以下の図では Zabbix Proxy #1 ~ #3 が同じプロキシグループ A に属し、監視対象群 A の各監視対象サーバは Zabbix Proxy #1 ~ #3 に自動で割り当てられます。この Zabbix Proxy #1 ~ #3 の間で HA 化や自動分散が行われます。
なお「最小のプロキシ数」の値は、プロキシグループ内のプロキシ合計より少なくする必要があります。上記の構成で「最小のプロキシ数」に 1 を指定した場合、Zabbix Proxy 1 台の停止 ( オフラインまたは不明 ) で最小のプロキシ数を下回るため、プロキシグループとしてもオフラインになります。そのため、プロキシグループとして設定されていてもそのプロキシグループは HA 化 や自動分散が全くできない構成となります。
Zabbix Proxy の停止
障害やメンテナンス等でプロキシグループ内に停止 ( オフラインまたは不明のステータス ) 状態の Zabbix Proxy が検知された場合、残りの Zabbix Proxy で均等になるように監視対象を再割り当てします。この例のように Zabbix Proxy #3 の停止直前まで各 Zabbix Proxy が 3 台ずつ監視していた場合、#3 が監視していた 3 台の監視は、自動で #1 と #2 に再割り当てされ引き継がれます。
停止 ( オフライン ) 判定は、プロキシグループの設定項目である「フェイルオーバー期間」で指定された期間、通信がなかった場合となります。
複数のプロキシグループ
Zabbix Server に複数のプロキシグループが存在している場合、各プロキシグループは独立しています。
プロキシグループ A に所属する Zabbix Proxy #1 ~ #3 は、プロキシグループ B の監視対象群 B は監視できません。
自動再割り当ての判定
Zabbix Server は、同一プロキシグループ内でのオンライン状態にある Zabbix Proxy に登録されているホスト数のバランスをチェックして自動再割り当てを実行します。
- プロキシグループ内のどの Zabbix Proxy にも割り当てられていないホストがある場合
- ある Zabbix Proxy に割り当てられているホストがなく、他の Zabbix Proxy に複数のホストが割り当てられている場合
- ある Zabbix Proxy に割り当てられているホスト数と、そのプロキシグループの Zabbix Proxy 1 台あたりの登録ホスト数の平均との差が 10 以上 、かつ 2 倍以上 の場合
- ある Zabbix Proxy に割り当てられているホスト数と、そのプロキシグループの Zabbix Proxy 1 台あたりの登録ホスト数の平均との差が 10 以下 、かつ 1/2 以下 の場合
上記の 1. ~ 4. のいずれかが満たされた状態(バランスが不均衡であるとみなされた状態)が、プロキシグループの設定項目である「フェイルオーバー期間 ( 標準値は 1 分 ) 」x 10 の猶予期間経過しても解消されない場合に自動で再割り当てが実施されます。
条件 3. と 4. は少しややこしいため、以下の再割り当て実行例を参考にしてください。
ある Zabbix Proxy に登録されているホスト数 | Zabbix Proxy 1 台あたりの平均登録ホスト数 | ホストの自動再割り当て実行 |
コメント |
---|---|---|---|
>=60 | 30 | はい | 条件 3. を満たす |
40 | 30 | いいえ | 条件 3. の 2 倍以上を満たさない |
20 | 30 | いいえ | 条件 4. の 1/2 以下を満たさない |
15<= | 30 | はい | 条件 4. を満たす |
>=15 | 5 | はい | 条件 3. を満たす |
10 | 5 | いいえ | 条件 3. の 10 以上を満たさない |
なお、プロキシグループの「バランスが不均衡」と判断する材料は、Zabbix Proxy に登録されている監視対象ホスト数のみです。メンテナンスによる監視対象ホストの監視停止、監視アイテム数による不均衡は判断材料になりません。そのため、この Zabbix Proxy HA 機能による自動再割り当てによってプロキシグループ内の各 Zabbix Proxy サーバの CPU やメモリ負荷が必ずしも均等になるものではない点には注意が必要です。
Zabbix Proxy HA の注意・制限事項
一見すると便利そうな Zabbix Proxy HA の自動再割り当てですが、以下の点について注意や制限があります。
1. 自動再割り当ての判断材料
プロキシグループが「バランスが不均衡な状態」と判断するための材料は、Zabbix Proxy に登録されている監視対象ホスト数のみです。
登録されている監視対象ホストの状態 ( メンテナンス状態やホストの無効 ) や、監視対象ホストに登録されているアイテム数は判断材料になりません。そのため、この Zabbix Proxy HA 機能による自動再割り当てではプロキシグループ内の各 Zabbix Proxy サーバの CPU やメモリといった負荷を考慮しての自動再割り当ては出来ません。
2. 対象を指定しての自動再割り当て
監視対象ホストはプロキシグループのみを指定できます。プロキシグループ内の特定の Zabbix Proxy を指定しての自動再割り当ては出来ません。監視対象ホストがプロキシグループ内のどの Zabbix Proxy にて監視されるかは、自動再割り当ての処理が実行されるごとに変わることもあります。
3. 判定処理の実行タイミング
自動再割り当てを実行するかどうか ( バランスが不均衡であるか ) の判定処理の実行タイミングには少々癖がある実装となっています。そのため手動で 1 台ずつ監視対象ホストを登録するような場合に不均衡な状態となる場合があります。
このような不均衡な状態は、インポート機能を使ってホストを一括登録するか、ホストの登録後に強制的に 1 台の Zabbix Proxy を停止・復帰させて自動再割り当てを強制的に行うことで不均衡な状態を回避できます。
4. 障害等による縮退時の負荷の考慮
HA 化を目的としてプロキシグループ ( Zabbix Proxy HA ) 機能を使う場合、障害等によってプロキシグループ内の Zabbix Proxy が縮退 ( 減少 ) した状態でも残りの Zabbix Proxy で監視を問題なく継続させるため、最低稼働台数で監視継続可能な CPU やメモリのリソースをサイジングしたうえで各 Zabbix Proxy を用意しておく必要があります。
疑似障害を発生させての縮退時の状況を後半で解説しています。参考にしてください。
5. 監視の制限
プロキシグループ (Zabbix Proxy HA) を用いた監視では以下の制限があります。
- SNMP Trap の非サポート
プロキシグループでは SNMP Trap の受信はサポートされません。複数の Zabbix Proxy において HA 構成を保ちつつ SNMP Trap を受信するには、今まで通り外部のクラスタソフトウェアなどによるクラスタ化が必要です。 - 設定の同一化
外部チェックのスクリプトやデータベースチェックの ODBC 構成など、外部設定に依存する監視項目をプロキシグループで扱う場合は、各 Zabbix Proxy では同じ設定・スクリプトにする必要があります。 - データベース監視
データベース監視アイテムにおいて、DB オブジェクト・サーバに拡張パーミッション設定が必要です。 - VMware 監視
プロキシグループで VMware 監視を行う場合、VMware のホストはプロキシグループ内の各 Zabbix Proxy 間でランダムに分散して VMware のデータをキャッシュします。そのため vCenter Server への負荷が高くなります。
ここまで、Zabbix Proxy の機能概要および新機能である Zabbix Proxy の HA 機能の仕組みについてご紹介しました。
次回は、Zabbix Proxy の構築および HA 機能による障害を模しての動作についてご紹介します。