1 プロキシ

概要

Zabbixプロキシは、Zabbixサーバーに代わってパフォーマンスおよび可用性データを収集できます。これにより、プロキシはデータ収集の負荷の一部を引き受け、Zabbixサーバーの負荷を軽減できます。

また、すべてのエージェントおよびプロキシが1台のZabbixサーバーにレポートし、すべてのデータが一元的に収集される場合、プロキシの使用は集中監視および分散監視を実装する最も簡単な方法です。

Zabbixプロキシは、次の用途に使用できます。

  • リモート拠点の監視
  • 通信が不安定な拠点の監視
  • 数千台のデバイスを監視する際のZabbixサーバーの負荷軽減
  • 分散監視のメンテナンスの簡素化

プロキシが必要とするZabbixサーバーへのTCP接続は1つだけです。そのため、設定が必要なファイアウォールルールは1つだけで済み、ファイアウォールを通過させやすくなります。

Zabbixプロキシは別個のデータベースを使用する必要があります。
Zabbixサーバーのデータベースを指定すると、設定が破損します。

プロキシによって収集されたすべてのデータは、サーバーへ送信される前にローカルに保存されます。これにより、サーバーとの一時的な通信障害が発生してもデータは失われません。プロキシ設定ファイルProxyLocalBuffer および ProxyOfflineBuffer パラメータで、データをローカルに保持する期間を制御します。

Zabbixサーバーのデータベースから最新の設定変更を直接受け取るプロキシは、CacheUpdateFrequency の値により設定の更新がそれほど速く行われないZabbixサーバーよりも、新しい設定を持つ場合があります。その結果、プロキシがデータ収集を開始してZabbixサーバーに送信しても、Zabbixサーバー側ではそのデータが無視されることがあります。

Zabbixプロキシはデータコレクターです。トリガーの計算、イベントの処理、アラートの送信は行いません。プロキシの機能概要については、以下の表を参照してください。

機能 プロキシでサポート
アイテム
Zabbixエージェントチェック はい
Zabbixエージェントチェック(アクティブ) はい 1
シンプルチェック はい
トラッパーアイテム はい
SNMPチェック はい
SNMPトラップ はい
IPMIチェック はい
JMXチェック はい
ログファイル監視 はい
内部チェック はい
SSHチェック はい
Telnetチェック はい
外部チェック はい
依存アイテム はい
スクリプトアイテム はい
ブラウザアイテム はい
組み込みWeb監視 はい
アイテム値の前処理 はい
ネットワークディスカバリ はい
アクティブエージェントの自動登録 はい
ローレベルディスカバリ はい 2
リモートコマンド はい
トリガーの計算 いいえ
イベントの処理 いいえ
イベント相関 いいえ
アラートの送信 いいえ

[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インターフェースでプロキシを設定するには、次のようにします。

  • 管理 → プロキシ に移動します
  • プロキシの作成 をクリックします

パラメータ 説明
プロキシ名 プロキシ名を入力します。この名前は、プロキシ設定ファイル内の Hostname パラメータの名前と同じである必要があります。
プロキシグループ プロキシの負荷分散/高可用性のために、1つのプロキシグループを選択します。
アクティブエージェント用アドレス 監視対象のアクティブエージェントまたはsenderが接続するアドレスを入力します。Zabbix 7.0エージェント以降でのみサポートされます。
このアドレスは、アクティブプロキシとパッシブプロキシの両方への接続に使用されます。このフィールドは、プロキシグループ フィールドでプロキシグループが選択されている場合にのみ使用できます。
アドレス 接続先のIPアドレス/DNS名。
ポート 接続先のTCPポート番号(デフォルトは10051)。ユーザーマクロを使用できます。
プロキシモード プロキシモードを選択します。
アクティブ - プロキシがZabbixサーバーに接続し、設定データを要求します
パッシブ - Zabbixサーバーがプロキシに接続します
暗号化通信がない場合、アクティブプロキシの使用時に、機密性の高いプロキシ設定データがZabbixサーバーのtrapperポートにアクセスできる第三者に取得される可能性があることに注意してください。これは、認証が行われない場合、または プロキシアドレス フィールドでプロキシアドレスが制限されていない場合、誰でもアクティブプロキシを装って設定データを要求できるためです。
プロキシアドレス 指定した場合、アクティブプロキシからのリクエストは、このカンマ区切りのIPアドレス一覧(CIDR表記も可)またはアクティブZabbixプロキシのDNS名からのみ受け付けられます。
このフィールドは、プロキシモード フィールドでアクティブプロキシが選択されている場合にのみ使用できます。マクロはサポートされません。
インターフェース パッシブプロキシのインターフェース詳細を入力します。
このフィールドは、Proxy modeフィールドでパッシブプロキシが選択されている場合にのみ使用できます。
アドレス パッシブプロキシのIPアドレス/DNS名。
ポート パッシブプロキシのTCPポート番号(デフォルトは10051)。ユーザーマクロを使用できます。
説明 プロキシの説明を入力します。

暗号化 タブでは、プロキシとの暗号化接続を必須にできます。

パラメータ 説明
プロキシへの接続 サーバーがパッシブプロキシに接続する方法: 暗号化なし(デフォルト)、PSK(事前共有鍵)、または証明書。
プロキシからの接続 アクティブプロキシから許可する接続タイプを選択します。複数の接続タイプを同時に選択できます(テストや別の接続タイプへの切り替えに便利です)。デフォルトは「暗号化なし」です。
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

タイムアウト タブでは、対応するアイテムタイプについてグローバルタイムアウトを上書きできます。

パラメータ 説明
アイテムタイプごとのタイムアウト タイムアウトオプションを選択します。
グローバル - グローバルタイムアウトが使用されます(各アイテムタイプのグレー表示された Timeout フィールドに表示されます)。
上書き - カスタムタイムアウトが使用されます(各アイテムタイプの Timeout フィールドで設定)。許容範囲: 1 - 600秒(デフォルト: グローバルタイムアウトから継承)。時間サフィックス(例: 30s、1m)およびユーザーマクロをサポートします。

グローバルタイムアウト リンクをクリックすると、グローバルタイムアウトを設定できます。グローバルタイムアウト リンクは、管理一般 のWebインターフェースセクションに対する権限を持つ Super admin タイプのユーザーにのみ表示される点に注意してください。

対応するアイテムタイプ:
- Zabbixエージェント(パッシブチェックとアクティブチェックの両方)
- シンプルチェックicmpping*vmware.* アイテムを除く)
- SNMPエージェント(SNMP walk[OID] および get[OID] アイテムのみ)
- 外部チェック
- データベースモニタ
- HTTPエージェント
- SSHエージェント
- TELNETエージェント
- スクリプト
- ブラウザ

上書き で設定したタイムアウトはグローバル設定より優先されますが、アイテム設定で個別のアイテムタイムアウトが設定されている場合は、それらによって上書きされる点に注意してください。

プロキシのメジャーバージョンがサーバーのメジャーバージョンと一致しない場合、 アイコンが アイテムタイプごとのタイムアウト の横に表示され、ホバーメッセージ 「プロキシとサーバーのバージョンが一致しないため、タイムアウトは無効です」 が表示されます。 このような場合、プロキシはプロキシ設定ファイルの Timeout パラメータを使用します。

既存のプロキシの編集フォームには、次の追加ボタンがあります。

  • 設定の更新 - プロキシの設定を更新します
  • 複製 - 既存のプロキシのプロパティに基づいて新しいプロキシを作成します
  • 削除 - プロキシを削除します
ホスト設定

個々のホストをプロキシまたはプロキシグループによって監視するように指定するには、ホスト設定フォームの 監視対象フィールドを使用します。

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