1 プロキシ
概要
Zabbix プロキシは、Zabbix サーバーの代わりにパフォーマンスおよび可用性データを収集できます。これにより、プロキシはデータ収集の負荷の一部を自ら引き受け、Zabbix サーバーの負荷を軽減できます。
また、プロキシを使用することは、集中監視と分散監視を実装する最も簡単な方法です。すべてのエージェントとプロキシが 1 台の Zabbix サーバーに報告し、すべてのデータが中央で収集されます。
Zabbix プロキシは、次の用途に使用できます。
- リモート拠点の監視
- 通信が不安定な拠点の監視
- 数千台のデバイスを監視する際の Zabbix サーバーの負荷軽減
- 分散監視の保守の簡素化

プロキシが必要とするのは、Zabbix サーバーへの TCP 接続 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 | |
| Item value preprocessing | Yes | |
| Network discovery | Yes | |
| Active agent autoregistration | Yes | |
| Low-level discovery | Yes 2 | |
| Remote commands | Yes | |
| Calculating triggers | No | |
| Processing events | No | |
| Event correlation | No | |
| Sending alerts | No | |
[1] エージェントがアクティブチェックを要求する相手がサーバーではなくプロキシになるようにするには、エージェント設定ファイルの ServerActive パラメーターにプロキシを記載する必要があります。
[2] LLD では、Zabbix プロキシはデータを収集して前処理するだけで、その後の処理のために Zabbix サーバーへ送信します。
過負荷からの保護
Zabbixサーバーがしばらく停止していて、プロキシが大量のデータを収集していた場合、
その後サーバーが起動すると、過負荷になる可能性があります(履歴キャッシュ使用率がしばらくの間 95~100% のままになります)。
この過負荷により、本来よりもチェックの処理が遅くなるなど、パフォーマンス低下が発生する可能性があります。
このようなシナリオに対する保護機能は、履歴キャッシュの過負荷によって発生する問題を回避するために実装されました。
Zabbixサーバーの履歴キャッシュがいっぱいになると、履歴キャッシュへの書き込みアクセスが
スロットリングされ、サーバーのデータ収集プロセスが停止します。履歴キャッシュの
過負荷が最もよく発生するのは、サーバー停止後にプロキシが収集済みデータをアップロードする場合です。これを回避するため、
プロキシのスロットリングが追加されました(現在は無効化できません)。
Zabbixサーバーは、履歴キャッシュ使用率が 80% に達すると、プロキシからのデータ受信を停止します。
その代わりに、それらのプロキシはスロットリングリストに追加されます。これは、キャッシュ使用率が
60% まで低下するまで続きます。その後、サーバーはスロットリングリストで定義された順に、プロキシからのデータ受信を 1 台ずつ再開します。
つまり、スロットリング期間中に最初にデータのアップロードを試みたプロキシが最初に処理され、
その処理が完了するまで、サーバーは他のプロキシからのデータを受信しません。
このスロットリングモードは、キャッシュ使用率が再び 80% に達するか、20% まで低下するか、
またはスロットリングリストが空になるまで継続します。最初のケースでは、サーバーは再びプロキシデータの受信を停止します。
後者 2 つのケースでは、サーバーは通常動作に戻り、すべてのプロキシからのデータを受信します。
上記の情報は、次の表で示すことができます。
| 履歴書き込み キャッシュ使用率 |
Zabbixサーバーのモード | Zabbixサーバーの動作 |
|---|---|---|
| 80% に達する | 待機 | プロキシデータの受信を停止しますが、スロットリングリスト(後で接続するプロキシの優先順位付きリスト)は維持します。 |
| 60% まで低下 | スロットリング中 | スロットリングリストの処理を開始しますが、引き続きプロキシデータは受信しません。 |
| 20% まで低下 | 通常 | スロットリングリストを破棄し、通常どおりプロキシデータの受信を開始します。 |
この Zabbixサーバーの動作は、zabbix[wcache,history,pused] 内部アイテムを使用してメトリクスと関連付けることができます。
設定
Zabbix プロキシサーバーをインストールして設定したのち、Zabbixフロントエンドでプロキシの設定をします。
プロキシの追加
Zabbix Webインターフェースでプロキシを設定するには、次の手順を実行します。
- 次へ移動: Administration → Proxies
- Create proxy をクリックします

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

| Parameter | Description |
|---|---|
| Timeouts for item types | タイムアウトオプションを選択します。 Global - グローバルタイムアウトを使用します(各アイテムタイプのグレー表示された Timeout フィールドに表示されます)。 Override - カスタムタイムアウトを使用します(各アイテムタイプの Timeout フィールドで設定します)。許可範囲: 1 - 600 秒(既定値: グローバル タイムアウトから継承)。時間サフィックス(例: 30s、1m)および ユーザーマクロ がサポートされています。 Global timeouts リンクをクリックすると、グローバル タイムアウトを設定できます。なお、Global timeouts リンクは、Super admin タイプのユーザーで、Administration → General Webインターフェースセクションへの権限を持つ場合にのみ表示されます。 サポートされるアイテムタイプ: - Zabbix エージェント(パッシブチェックとアクティブチェックの両方) - Simple check( icmpping*、vmware.* アイテムを除く)- SNMP エージェント(SNMP walk[OID] および get[OID] アイテムのみ)- External check - Database monitor - HTTP エージェント - SSH エージェント - TELNET エージェント - Script - Browser Override で設定したタイムアウトはグローバル設定より優先されますが、アイテム設定 で個別のアイテムタイムアウトが設定されている場合は、それがさらに優先されます。 |
プロキシのメジャーバージョンがサーバーのメジャーバージョンと一致しない場合、
アイコンが
Timeouts for item types の横に表示され、ホバー時のメッセージは
"Timeouts disabled because the proxy and server versions do not match" になります。
このような場合、プロキシはプロキシ設定ファイルの Timeout パラメーターを使用します。
既存のプロキシの編集フォームには、次の追加ボタンがあります。
- Refresh configuration - プロキシの設定を更新します
- Clone - 既存のプロキシのプロパティを基に新しいプロキシを作成します
- Delete - プロキシを削除します
ホスト設定
個々のホストをプロキシまたはプロキシグループによって監視するように指定するには、ホスト設定フォームの 監視対象フィールドを使用します。

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