This is the documentation page for an unsupported version of Zabbix.
Is this not what you were looking for? Switch to the current version or choose one from the drop-down menu.

3 パッシブエージェントチェックとアクティブエージェントチェック

概要

このセクションでは、Zabbix エージェントによるパッシブチェックとアクティブチェックの詳細を説明します。

Zabbix は、Zabbix エージェントとの通信にJSON ベースの通信プロトコルを使用します。

Zabbix によって使用されるプロトコルの詳細には、次のようないくつかの定義が使用されます:

<HEADER> - "ZBXD\x01" (5 bytes)
       <DATALEN> - data length (8 bytes). 1 will be formatted as 01/00/00/00/00/00/00/00 (eight bytes in HEX, 64 bit number) 

(潜在的に)メモリを使い果たさないように、バージョン2.2.0 ~ 2.2.2でZabbix プロトコルを使用するとき、Zabbix サーバは1回の通信で64MBだけ受信するように制限されています(2.2.0以前は128MB、Zabbix 2.0.3以前は無制限でした)。

Zabbixの以前のバージョンとの互換性を維持するため、2.2.3以降では64MB が128MBへ戻されました。データ転送限界128MBのあるプロセスから限界64MBの別のプロセスへデータを送信する場合、受信側は、自身のサイズ限界を超えるデータは欠落します。

パッシブチェック

パッシブチェックは、単純なデータのリクエストです。Zabbix サーバまたはプロキシが、データ(例えば、CPU負荷)を問い合わせ、Zabbix エージェントがサーバに結果を返します。

サーバのリクエスト

<item key>\n

エージェントの応答

<HEADER><DATALEN><DATA>

例:

  1. サーバがTCP接続を開きます。
  2. サーバがagent.ping\nを送信します。
  3. エージェントがリクエストを読み、<HEADER><DATALEN>1 で応答します。
  4. サーバがデータを処理して値(この場合は「1」)を取得します。
  5. TCP接続を閉じます。

アクティブチェック

アクティブチェックでは、もっと複雑な処理を必要とします。エージェントは最初に、独立した処理でサーバからアイテムのリストを検索します。

アクティブチェックを行うサーバは、エージェントの設定ファイル内の「ServerActive」パラメータに記載されます。これらのチェックの問い合わせ頻度は、同じ設定ファイル内の「RefreshActiveChecks」パラメータによって設定されます。しかし、アクティブチェックのリフレッシュが失敗した場合は、ハードコードされた60秒後に再試行されます。それから、エージェントは新しい値を定期的にサーバに送信します。

アイテムのリストの取得

エージェントのリクエスト

<HEADER><DATALEN>{
          "request":"active checks",
          "host":"<hostname>"
       } 

サーバの応答

{
           "response":"success",
           "data":[
           {
               "key":"log[\/home\/zabbix\/logs\/zabbix_agentd.log]",
               "delay":"30",
               "lastlogsize":"0"
           },
           {
               "key":"agent.version",
               "delay":"600"
           }
           ]
       } 

サーバは成功で応答しなければなりません。返されたアイテムごとに、keydelayが存在しなければなりません。「ログ」タイプを持つアイテムには、lastlogsize も存在しなければなりません。

例:

  1. エージェントがTCP接続を開きます。
  2. エージェントがチェックのリストを問い合わせます。
  3. サーバがアイテムのリスト(アイテムキー、遅延)で応答します。
  4. エージェントがその応答を構文解析します。
  5. TCP接続を閉じます。
  6. エージェントが定期的なデータ収集を開始します。

アクティブチェックを使用する際、Zabbixサーバのトラッパーポートへアクセスは、(慎重に扱うべき)設定データを利用できるようになりますので、注意してください。これができるのは、誰もがアクティブエージェントに成りすまし、アイテム設定データをリクエストできるためです;認証は発生しません。

収集データの送信

エージェントが以下を送信します。

<HEADER><DATALEN>{
          "request":"agent data",
          "data":[
              {
                  "host":"<hostname>",
                  "key":"log[\/home\/zabbix\/logs\/zabbix_agentd.log]",
                  "value":" 13039:20090907:184546.759 zabbix_agentd started. ZABBIX 1.6.6 (revision {7836}).",
                  "lastlogsize":80,
                  "clock":1252926015
              },
              {
                  "host":"<hostname>",
                  "key":"agent.version",
                  "value":"1.6.6",
                  "clock":1252926015
              }
          ],
          "clock":1252926016
       } 

サーバの応答

<HEADER><DATALEN>{
           "response":"success",
           "info":"Processed 2 Failed 0 Total 2 Seconds spent 0.002070"
       } 

サーバ上でいくつかの値の送信に失敗した場合(例えば、ホストまたはアイテムが無効であるか削除されていた)、エージェントはこれらの値の送信を再試行しません。

例:

  1. エージェントがTCP接続を開きます。
  2. エージェントが値のリストを送信します。
  3. サーバがそのデータを処理し、ステータスを返します。
  4. TCP接続を閉じます。

古い XML プロトコル

Zabbixは、 Base64にエンコードされたXMLのデータを16MBまで取得しますが、デコードされる値は1つが64KB以下でなければなりません。そうでないと、デコード中にそれが64KBに切り捨てられます。


本ページは2014/08/05時点の原文を基にしておりますので、内容は必ずしも最新のものとは限りません。
最新の情報は、英語版のZabbix2.2マニュアルを参照してください。