Zabbixプロキシは、Zabbixサーバーの代わりにパフォーマンスおよび可用性データを収集できます。 このようにして、プロキシはデータ収集の負荷の一部を引き受け、Zabbixサーバーの負荷を軽減できます。
また、プロキシを使用することで、すべてのエージェントとプロキシが1つのZabbixサーバーに報告し、すべてのデータが中央で収集される集中型および分散型監視を最も簡単に実装できます。
Zabbixプロキシは以下の用途に使用できます:

プロキシはZabbixサーバーへのTCP接続が1つだけ必要です。 このため、ファイアウォールを回避するのが容易になり、ファイアウォールルールを1つだけ設定すれば済みます。
Zabbixプロキシは別のデータベースを使用する必要があります。 Zabbixサーバーのデータベースを指定すると、設定が壊れます。
プロキシによって収集されたすべてのデータは、サーバーに送信される前にローカルに保存されます。 このため、サーバーとの一時的な通信障害によってデータが失われることはありません。 プロキシ設定ファイルのProxyLocalBufferおよびProxyOfflineBufferパラメータで、データをローカルに保持する期間を制御します。
Zabbixサーバーのデータベースから直接最新の設定変更を受け取るプロキシが、CacheUpdateFrequencyの値により設定がすぐに更新されないZabbixサーバーよりも新しい設定を持つ場合があります。 その結果、プロキシがデータ収集を開始し、それらをZabbixサーバーに送信しても、サーバーがそれらのデータを無視することがあります。
Zabbixプロキシはデータ収集専用です。 トリガーの計算、イベントの処理、アラートの送信は行いません。 プロキシの機能概要については、以下の表を参照してください:
| 機能 | プロキシによるサポート | |
|---|---|---|
| アイテム | ||
| Zabbixエージェントチェック | はい | |
| Zabbixエージェントチェック(アクティブ) | はい 1 | |
| シンプルチェック | はい | |
| トラッパーアイテム | はい | |
| SNMPチェック | はい | |
| SNMPトラップ | はい | |
| IPMIチェック | はい | |
| JMXチェック | はい | |
| ログファイル監視 | はい | |
| 内部チェック | はい | |
| SSHチェック | はい | |
| Telnetチェック | はい | |
| 外部チェック | はい | |
| 依存アイテム | はい | |
| スクリプトアイテム | はい | |
| ブラウザーアイテム | はい | |
| 組み込みWeb監視 | はい | |
| アイテム値の事前処理 | はい | |
| ネットワークディスカバリ | はい | |
| アクティブエージェントの自動登録 | はい | |
| ローレベルディスカバリ | はい 2 | |
| リモートコマンド | はい | |
| トリガーの計算 | いいえ | |
| イベントの処理 | いいえ | |
| イベントの相関 | いいえ | |
| アラートの送信 | いいえ | |
[1] エージェントがアクティブチェックの問い合わせ先としてサーバーではなくプロキシに問い合わせるようにするには、エージェント設定ファイルのServerActiveパラメータにプロキシを指定する必要があります。
[2] LLDの場合、Zabbixプロキシはデータの収集と事前処理のみを行い、その後Zabbixサーバーに送信してさらに処理します。
Zabbixサーバーがしばらくダウンしていて、プロキシが大量のデータを収集し、その後サーバーが起動すると、サーバーが過負荷になる可能性があります(ヒストリキャッシュの使用率がしばらくの間95-100%のままになる)。 この過負荷はパフォーマンスの低下を引き起こし、チェックの処理が本来よりも遅くなります。 このシナリオによるヒストリキャッシュの過負荷による問題を回避するために、保護機能が実装されています。
Zabbixサーバーのヒストリキャッシュが満杯になると、ヒストリキャッシュへの書き込みアクセスが制限され、サーバーのデータ収集プロセスが停止します。 最も一般的なヒストリキャッシュの過負荷のケースは、サーバーダウン後にプロキシが収集したデータをアップロードする場合です。 これを回避するためにプロキシのスロットリングが追加されました(現在は無効化できません)。
ヒストリキャッシュの使用率が80%に達すると、Zabbixサーバーはスロットリングモードに入ります。 スロットリングモードでは、サーバーはヒストリキャッシュの使用率が60%未満の場合にのみプロキシデータを受け入れ、受け入れるプロキシをローテーションします。 ヒストリキャッシュの使用率が20%未満になると、サーバーは通常モードに戻ります。
さらに、通常モードでは、Zabbixサーバーはヒストリキャッシュの使用率が60%を超える場合、非常に大きなパケット(10,000件以上のレコード)を送信する個々のプロキシをスロットリングします。 この判断は、サーバーがプロキシのアップロードを評価する瞬間に適用されるため、ヒストリキャッシュの使用率グラフ(zabbix[wcache,history,pused]内部アイテムとその更新間隔)は短いスパイクを見逃す場合があります。
このスロットリングモードは、キャッシュの使用率が再び80%に達するか、20%まで下がるか、またはスロットリングリストが空になるまで続きます。 最初の場合、サーバーは再びプロキシデータの受け入れを停止します。 他の2つの場合、サーバーは通常通り動作し、すべてのプロキシからデータを受け入れます。
上記の情報は、次の表で説明できます。
| ヒストリ書き込み キャッシュ使用率 |
Zabbixサーバーモード | Zabbixサーバーの動作 |
|---|---|---|
| 80%に達する | 待機 | プロキシデータの受け入れを停止し、スロットリングリスト(後で連絡するプロキシの優先リスト)を維持します。 |
| 60%に達する | 通常だがスロットリングの準備 | データ受け入れを判断する際に非常に大きなプロキシアップロード(10kレコード超)を拒否する場合があり、他のプロキシデータの受け入れは継続します。 |
| 20%まで下がる | 通常 | スロットリングリストを破棄し、プロキシデータの受け入れを通常通り開始します。 |
このZabbixサーバーの動作をメトリックと相関させるには、zabbix[wcache,history,pused]内部アイテムを使用できます。
プロキシをインストールし、設定したら、Zabbixフロントエンドでプロキシを設定します。
Zabbixフロントエンドでプロキシを設定するには:

| パラメータ | 説明 | |
|---|---|---|
| プロキシ名 | プロキシ名を入力します。プロキシの設定ファイルの 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識別子 | 事前共有鍵の識別文字列。 PSK識別子には機密情報を入力しないでください。どのPSKを使用するかを受信側に通知するためにネットワーク上で暗号化されずに送信されます。 |
| PSK | 事前共有鍵(16進文字列)。最大長: ZabbixがGnuTLSまたはOpenSSLライブラリを使用している場合は512桁(256バイトPSK)、mbed TLS(PolarSSL)ライブラリを使用している場合は64桁(32バイトPSK)。例: 1f87b595725ac58dd977beef14b97461a7c1045b9a1c963065002c5473194952 |
タイムアウト タブでは、対応するアイテムタイプのグローバルタイムアウトを上書きできます。

| パラメータ | 説明 |
|---|---|
| アイテムタイプごとのタイムアウト | アイテムのタイムアウト(タイプに基づく)を設定します: グローバル - グローバルタイムアウトを使用(アイテムタイプごとにグレー表示されたタイムアウトフィールドに表示); 上書き - カスタムタイムアウトを設定(各アイテムタイプのタイムアウトフィールドで)。許容範囲: 1 - 600秒(デフォルト: グローバルタイムアウトから継承)。時間のサフィックス(例: 30s, 1m)やユーザーマクロがサポートされています。 グローバルタイムアウト リンクをクリックすると、グローバルタイムアウトを設定できます。グローバルタイムアウト リンクは、管理 > 一般フロントエンドセクションへの権限を持つスーパ管理者タイプのユーザーにのみ表示されます。 プロキシレベルのタイムアウトはグローバルタイムアウトを上書きしますが、個別に設定されている場合は、アイテムごとのタイムアウトでさらに上書きされることに注意してください。 |
プロキシのメジャーバージョンがサーバーのメジャーバージョンと一致しない場合、アイテムタイプごとのタイムアウトの横に
アイコンが表示され、ホバーメッセージ「プロキシとサーバーのバージョンが一致しないため、タイムアウトは無効です」と表示されます。 このような場合、プロキシはプロキシ設定ファイルのTimeoutパラメータを使用します。
既存のプロキシの編集フォームには、以下の追加ボタンがあります:
ホスト設定フォームの監視方法フィールドで、個々のホストをプロキシまたはプロキシグループで監視するように指定できます。

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