プロキシを使用した分散監視
概要
Zabbix プロキシは、効果的で信頼性の高い分散監視構成を実現するために使用できます。
プロキシは、パフォーマンスと可用性のデータを収集するためにローカルに配置されます。その後、データは集中管理されたサーバーに報告されます。
Zabbix プロキシは、次の用途に使用できます。
- リモート拠点の監視
- 通信が不安定な拠点の監視
- 数千台のデバイスを監視する際の Zabbix サーバーの負荷軽減

プロキシが必要とする TCP 接続は、Zabbix サーバーへの 1 本だけです。 そのため、設定する必要があるファイアウォールルールが 1 つで済み、ファイアウォール越しの接続が容易になります。
Zabbix プロキシは、別個のデータベースを使用する必要があります。 Zabbix サーバーのデータベースを指定すると、設定が壊れます。
プロキシによって収集されたすべてのデータは、サーバーへ送信される前にローカルに保存されます。
これにより、サーバーとの一時的な通信障害が発生してもデータは失われません。
プロキシ設定ファイル の ProxyLocalBuffer および ProxyOfflineBuffer パラメータで、データをローカルに保持する期間を制御します。
プロキシが Zabbix サーバーのデータベースから最新の設定変更を直接受け取る場合、CacheUpdateFrequency の値によって設定更新が追いつかない Zabbix サーバーよりも、プロキシの設定のほうが新しくなることがあります。 その結果、プロキシがデータ収集を開始して Zabbix サーバーへ送信しても、Zabbix サーバー側ではそれらのデータを無視する場合があります。
Zabbix プロキシはデータコレクターです。 トリガーの計算、イベントの処理、アラートの送信は行いません。 プロキシで利用できる機能の概要については、次の表を参照してください。
| Function | Supported by proxy | |
|---|---|---|
| アイテム | ||
| Zabbix agent checks | Yes | |
| Zabbix agent checks (active) | Yes 1 | |
| Simple checks | Yes | |
| Trapper items | Yes | |
| SNMP checks | Yes | |
| SNMP traps | Yes | |
| IPMI checks | Yes | |
| JMX checks | Yes | |
| Log file monitoring | Yes | |
| Internal checks | Yes | |
| SSH checks | Yes | |
| Telnet checks | Yes | |
| External checks | Yes | |
| Dependent items | Yes | |
| Script items | Yes | |
| Browser items | Yes | |
| Built-in web monitoring | Yes | |
| アイテム値の前処理 | Yes | |
| ネットワークディスカバリ | Yes | |
| アクティブ エージェントの自動登録 | Yes | |
| 低レベルディスカバリ | Yes 2 | |
| リモートコマンド | Yes | |
| トリガーの計算 | No | |
| イベントの処理 | No | |
| イベント相関 | No | |
| アラートの送信 | No | |
[1] エージェントがアクティブチェックをサーバーではなくプロキシに要求するようにするには、エージェント設定ファイルの ServerActive パラメータにプロキシを指定する必要があります。
[2] LLD では、Zabbix プロキシはデータを収集して前処理するだけで、その後 Zabbix サーバーに送信してさらに処理させます。
プロキシの機能
プロキシを使用するかどうかを選択する際には、いくつかの考慮事項を 踏まえる必要があります。
| プロキシ | |
|---|---|
| 軽量 | はい |
| GUI | いいえ |
| 独立して動作する | はい |
| 保守が容易 | はい |
| DBの自動作成 | はい1 |
| ローカル管理 | いいえ |
| 組み込みハードウェアに対応 | はい |
| 一方向のTCP接続 | はい |
| 集中設定 | はい |
| 通知を生成する | いいえ |
1 DBの自動作成機能はSQLiteでのみ動作します。 その他の対応データベースでは手動セットアップが必要です。
Zabbixプロキシはメンテナンス期間を認識しません。詳細はメンテナンス中のキューの計算を参照してください。
過負荷からの保護
Zabbix サーバーがしばらく停止しており、プロキシが大量のデータを収集していた場合、その後サーバーが起動すると、過負荷になることがあります(history cache の使用率がしばらく 95-100% のままになります)。 この過負荷により、処理性能が低下し、本来よりもチェックの処理が遅くなる可能性があります。 このような状況を防ぎ、history cache の過負荷によって発生する問題を回避するための保護機能が実装されています。
Zabbix サーバーの history cache がいっぱいになると、history cache への書き込みアクセスが制限され、サーバーのデータ収集処理が停止します。 history cache 過負荷の最も一般的なケースは、サーバー停止後にプロキシが収集済みデータをアップロードする際に発生します。 これを避けるためにプロキシのスロットリングが追加されました(現在は無効化できません)。
history cache の使用率が 80% に達すると、Zabbix サーバーはスロットリングモードに入ります。 スロットリングモードでは、history cache の使用率が 60% 未満のときにのみプロキシデータを受け入れ、受け入れるプロキシを順番に切り替えます。 history cache の使用率が 20% 未満になると、サーバーは通常モードに戻ります。
さらに、通常モードでは、history cache の使用率が 60% を超えると、Zabbix サーバーは非常に大きなパケット(10,000 レコード以上)を送信する個々のプロキシをスロットリングします。
この判定は、サーバーがプロキシのアップロードを評価した瞬間に適用されるため、history cache 使用率のグラフ(内部アイテム zabbix[wcache,history,pused] とその更新間隔)には、短時間のスパイクがすぐには反映されない場合があります。
このスロットリングモードは、キャッシュ使用率が再び 80% に達するか、20% まで低下するか、またはスロットリングリストが空になるまで継続します。 最初のケースでは、サーバーは再びプロキシデータの受け入れを停止します。 他の 2 つのケースでは、サーバーは通常どおり動作し、すべてのプロキシからのデータを受け入れます。
上記の情報は、次の表で示すことができます。
| History write cache usage |
Zabbix server mode | Zabbix server action |
|---|---|---|
| 80% に達する | 待機 | プロキシデータの受け入れを停止するが、後で連絡するための優先順位付きプロキシ一覧(throttling list)は保持する。 |
| 60% に達する | 通常、ただしスロットリングされる準備あり | データを受け入れるかどうかを判断する際に、非常に大きなプロキシアップロード(10k レコード超)を拒否する場合がある。それ以外のプロキシデータは受け入れ続ける。 |
| 20% まで低下する | 通常 | スロットリングリストを破棄し、プロキシデータの受け入れを通常どおり開始する。 |
この動作をメトリックと関連付けるには、zabbix[wcache,history,pused] 内部アイテムを使用できます。
設定
インストールし、設定したプロキシを、Zabbix Webインターフェースで設定します。
プロキシの追加
ZabbixのWebインターフェースでプロキシを設定するには、次の手順を実行します。
- 管理 > プロキシに移動します。
- プロキシの作成をクリックします。
- フォームにプロキシのパラメータを入力します。

| パラメータ | 説明 | |
|---|---|---|
| プロキシ名 | プロキシ名を入力します。プロキシ設定ファイルのHostnameパラメータと同じ名前である必要があります。 | |
| プロキシグループ | プロキシの負荷分散/高可用性に使用するプロキシグループを1つ選択します。 | |
| アクティブエージェント用アドレス | 監視対象のアクティブエージェントまたは送信者が接続するアドレスを入力します。Zabbix 7.0以降のエージェントでのみサポートされます。 このアドレスは、アクティブプロキシとパッシブプロキシの両方への接続に使用されます。このフィールドは、プロキシグループフィールドでプロキシグループが選択されている場合にのみ使用できます。 |
|
| アドレス | 接続先のIPアドレス/DNS名。 | |
| ポート | 接続先のTCPポート番号(デフォルトは10051)。ユーザーマクロを使用できます。 | |
| プロキシモード | プロキシモードを選択します。 アクティブ - プロキシがZabbixサーバーに接続し、設定データを要求します パッシブ - Zabbixサーバーがプロキシに接続します 注:暗号化通信を使用しない場合、アクティブプロキシの使用時に、Zabbixサーバーのトラッパーポートにアクセスできる第三者がプロキシ設定データを取得できる可能性があります。認証が行われない場合、またはプロキシアドレスフィールドでプロキシアドレスが制限されていない場合、誰でもアクティブプロキシを装って設定データを要求できるためです。 |
|
| プロキシアドレス | 指定した場合、アクティブプロキシからのリクエストは、カンマ区切りのIPアドレス(必要に応じてCIDR表記)、またはアクティブなZabbixプロキシのDNS名のリストからのみ受け付けられます。 このフィールドは、プロキシモードフィールドでアクティブプロキシが選択されている場合にのみ使用できます。マクロはサポートされません。 |
|
| インターフェース | パッシブプロキシのインターフェース情報を入力します。 このフィールドは、プロキシモードフィールドでパッシブプロキシが選択されている場合にのみ使用できます。 |
|
| アドレス | パッシブプロキシのIPアドレス/DNS名。 | |
| ポート | パッシブプロキシのTCPポート番号(デフォルトは10051)。ユーザーマクロを使用できます。 | |
| 説明 | プロキシの説明を入力します。 | |
暗号化タブでは、プロキシとの暗号化接続を必須にできます。
| パラメータ | 説明 |
|---|---|
| プロキシへの接続 | サーバーからパッシブプロキシへの接続方法:暗号化なし(デフォルト)、PSK(事前共有鍵)または証明書を使用。 |
| プロキシからの接続 | アクティブプロキシから許可する接続の種類を選択します。複数の接続タイプを同時に選択できます(テストや別の接続タイプへの切り替えに便利です)。デフォルトは「暗号化なし」です。 |
| 発行者 | 証明書で許可する発行者。証明書はまずCA(認証局)で検証されます。有効でCAによって署名されている場合、発行者フィールドを使用して許可するCAをさらに制限できます。このフィールドは任意であり、Zabbixのインストール環境で複数のCAの証明書を使用する場合に使用します。 |
| サブジェクト | 証明書で許可するサブジェクト。証明書はまずCAで検証されます。有効でCAによって署名されている場合、サブジェクトフィールドを使用して、サブジェクト文字列の1つの値だけを許可できます。このフィールドが空の場合、設定されたCAによって署名された有効な証明書はすべて受け入れられます。 |
| PSK ID | 事前共有鍵のID文字列。 PSK IDには機密情報を含めないでください。使用するPSKを受信者に通知するため、ネットワーク上で暗号化されずに送信されます。 |
| PSK | 事前共有鍵(16進文字列)。ZabbixがGnuTLSまたはOpenSSLライブラリを使用する場合の最大長は512桁の16進数(256バイトPSK)、Zabbixがmbed TLS(PolarSSL)ライブラリを使用する場合は64桁の16進数(32バイトPSK)です。例:1f87b595725ac58dd977beef14b97461a7c1045b9a1c963065002c5473194952 |
タイムアウトタブでは、対応するアイテムタイプのグローバルタイムアウトを上書きできます。

| パラメータ | 説明 |
|---|---|
| アイテムタイプのタイムアウト | (タイプに基づいて)アイテムのタイムアウトを設定します。 グローバル - グローバルタイムアウトを使用します(アイテムタイプごとのグレー表示されたタイムアウトフィールドに表示されます)。 上書き - カスタムタイムアウトを設定します(各アイテムタイプのタイムアウトフィールドで設定します)。許可される範囲:1~600秒(デフォルト:グローバルタイムアウトを継承)。時間のサフィックス(例:30s、1m)およびユーザーマクロを使用できます。 グローバルタイムアウトリンクをクリックすると、グローバルタイムアウトを設定できます。グローバルタイムアウトリンクは、スーパーユーザータイプで、管理 > 一般設定のWebインターフェースセクションへの権限を持つユーザーにのみ表示されます。 プロキシレベルのタイムアウトはグローバルタイムアウトを上書きしますが、設定されている場合は、個々のアイテムのタイムアウトによって上書きされます。 |
プロキシのメジャーバージョンがサーバーのメジャーバージョンと一致しない場合、アイテムタイプのタイムアウトの横に
アイコンが表示され、ホバー時に「プロキシとサーバーのバージョンが一致しないため、タイムアウトは無効です」というメッセージが表示されます。
この場合、プロキシはプロキシ設定ファイルのTimeoutパラメータを使用します。
既存のプロキシの編集フォームには、次の追加ボタンがあります。
- 設定を更新 - プロキシの設定を更新します。
- 複製 - 既存のプロキシのプロパティに基づいて新しいプロキシを作成します。
- 削除 - プロキシを削除します。
ホスト設定
ホスト設定フォームの Monitored by フィールドを使用して、個別のホストをプロキシまたはプロキシグループで監視するように指定できます。

ホストの一括更新も、ホストをプロキシまたはプロキシグループで監視するように指定する別の方法です。