Sidebar

Zabbix Summit 2022
Register for Zabbix Summit 2022

1 プロキシ

概要

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

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

Zabbixプロキシは次の目的で使用できます。

  • 遠隔地を監視する
  • 通信の信頼性が低い場所を監視する
  • 何千ものデバイスを監視する時にZabbixサーバーの負荷を下げる
  • 分散監視の保守を簡素化する

プロキシは、ZabbixサーバーへのTCP接続を1つだけ必要とします。この方法ではファイアウォールルールを1つ設定するだけなので、ファイアウォールを回避するのが簡単です。

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

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

Zabbixサーバーデータベースから直接最新の設定変更を受信するプロキシは、CacheUpdateFrequencyの値が原因で更新が遅延したZabbixサーバーよりも最新の設定になっている場合があります。その結果、プロキシは収集したデータを無視するZabbixサーバーにデータを送信する場合があります。

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

機能 プロキシによるサポート
items
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
Built-in web monitoring Yes
Item value preprocessing Yes
Network discovery Yes
Active agent autoregistration Yes
Low-level discovery Yes
Remote commands Yes
Calculating triggers No
Processing events No
Event correlation No
Sending alerts No

 [1 ]エージェントが(サーバーではなく)プロキシにアクティブチェックを要求することを確認するには、プロキシがエージェント構成ファイルのServerActiveパラメーターにリストされている必要があります。

過負荷からの保護

Zabbixサーバーがしばらくダウンして、その間にプロキシが大量のデータを収集した後にZabbixサーバーが起動すると、サーバーが過負荷になる可能性があります。(履歴キャッシュの使用率はしばらくの間95〜100%のままです)この過負荷により、パフォーマンスが低下し、チェック処理が本来よりも遅くなる可能性があります。このシナリオからの保護は、履歴キャッシュの過負荷によって発生する問題を回避するために実装されました。

Zabbixサーバーの履歴キャッシュがいっぱいになると、履歴キャッシュの書き込みアクセスが制限され、サーバーのデータ収集プロセスが停止します。最も一般的な履歴キャッシュの過負荷のケースは、プロキシが収集したデータをアップロードしているサーバーのダウンタイム後です。このプロキシスロットリングを回避するために履歴キャッシュの書き込みアクセス制限が追加されました。(現在、無効にすることはできません)

履歴キャッシュの使用率が80%に達すると、Zabbixサーバーはプロキシからのデータの受け入れを停止します。代わりに、これらのプロキシはスロットルリストに追加されます。これは、キャッシュ使用量が60%に低下するまで続きます。60%に低下後、サーバーはスロットリングリストで定義されたプロキシからのデータの受け入れを1つずつ再開します。これは、スロットリング期間中にデータをアップロードしようとした最初のプロキシが最初に提供され、それが完了するまで、サーバーは他のプロキシからのデータを受け入れないことを意味します。

このスロットリングモードは、キャッシュ使用量が再び80%に達するか、20%に低下するか、スロットリングリストが空になるまで続きます。80%のケースでは、サーバーはプロキシデータの受け入れを再び停止します。他の2つのケースでは、サーバーは正常に動作を開始し、すべてのプロキシからのデータを受け入れます。

上記情報を次の表に示します:

書き込み履歴
キャッシュの使用状況
Zabbix サーバー モード Zabbix サーバー アクション
80%到達 Wait プロキシ データの受け入れを停止しますが、スロットリング リスト (後で連絡するプロキシの優先順位付けされたリスト) を維持します。
60%に低下 Throttled スロットリングリストの処理を開始しますが、まだプロキシ データを受け入れません。
20%に低下 Normal スロットリングリストを削除し、通常どおりプロキシ データの受け入れを開始します。

zabbix[wcache,history,pused]内部アイテムを使用して、Zabbixサーバーのこの動作をメトリックと関連付けることができます。

設定

Zabbix プロキシサーバーをインストールして設定したのち、Zabbixフロントエンドでプロキシの設定をします。

プロキシの追加

Zabbixフロントエンドでプロキシを設定するには:

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

パラメータ 説明
プロキシ名 プロキシ名を入力します。 プロキシ構成ファイルのHostnameパラメーターと同じ名前である必要があります。
プロキシモード プロキシモードを選択します。
アクティブ - プロキシがZabbixサーバーに接続し、設定データを要求します
パッシブ - Zabbixサーバーがプロキシに接続します
注意暗号化されていない(機密性の高い)プロキシ設定データは、アクティブなプロキシを使用しているときにZabbixサーバーのトラッパーポートにアクセスできる関係者が利用できるようになる可能性があります。これが可能なのは、認証が行われない場合、またはプロキシアドレスがプロキシアドレスフィールドで制限されていない場合、誰でもアクティブなプロキシのふりをして構成データを要求する可能性があるためです。
プロキシのアドレス 指定した場合、アクティブなプロキシリクエストは、このコンマ区切りのIPアドレスのリスト(オプションでCIDR表記またはアクティブなZabbixプロキシのDNS名)からのみ受け入れられます。
このフィールドはプロキシモードフィールドでアクティブが選択されている場合にのみ使用できます。 マクロはサポートされていません。
このオプションはZabbix4.0.0以降でサポートされています。
インターフェース パッシブプロキシのインターフェース詳細を入力します。
このフィールドはプロキシモードフィールドでパッシブが選択されている場合にのみ使用できます。
IPアドレス パッシブプロキシのIPアドレス(オプション)
DNS名 パッシブプロキシのDNS名(オプション)
接続方法 それぞれのボタンをクリックすると、Zabbixサーバーにプロキシからデータを取得するために使用するものが通知されます。
IP - プロキシにIPアドレスで接続します(推奨)
DNS - プロキシにDNS名で接続します
ポート パッシブプロキシのTCP/UDPポート番号(デフォルトでは10051)
説明 プロキシの説明を入力します

暗号化タブではプロキシとの暗号化された接続を設定できます。

パラメータ 説明
プロキシへの接続 サーバーがパッシブプロキシに接続する方法:暗号化なし(デフォルト)、PSK(事前共有キー)、証明書
プロキシからの接続 アクティブなプロキシから許可される接続のタイプを選択します。 複数の接続タイプを同時に選択できます(テストおよび他の接続タイプへの切り替えに役立ちます)。 デフォルトは"暗号なし"です。
発行者 証明書発行者。 証明書は最初にCA(認証局)で検証されます。 CAによって署名された有効な証明書は、発行者フィールドを使用して許可されるCAをさらに制限できます。このフィールドはオプションでありZabbixインストールで複数のCAからの証明書を使用する場合に使用することを目的としています。
サブジェクト 許可された証明書名。 証明書は最初にCAで検証されます。 CAによって署名された有効な証明書はサブジェクトフィールドを使用して、サブジェクト文字列の値を1つだけ許可できます。 このフィールドが空の場合、構成されたCAによって署名された有効な証明書が受け入れられます。
PSKアイデンティティ 事前共有キーID文字列
機密情報をPSKIDに入れないでください。機密情報は暗号化されずにネットワーク経由で送信され、使用するPSKを受信者に通知します。
PSK 事前共有キー(16進文字列) 最大長:ZabbixがGnuTLSまたはOpenSSLライブラリを使用する場合は512 hex-digits(256バイトPSK)、Zabbixがmbed TLS(PolarSSL)ライブラリを使用する場合は64 hex-digits(32-byte PSK)例:1f87b595725ac58dd977beef14b97461a7c1045b9a1c963065002c5473194952
ホストの設定

Monitored by proxyフィールドを使用して、host configurationフォームでプロキシによって個々のホストを監視するように指定できます。

ホストの一括更新は、ホストをプロキシで監視指定するもう1つの方法です。