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)

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

パッシブチェック

パッシブチェックは、単純なデータのリクエストです。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"
           }
           ]
       }

サーバは成功で応答する必要があります。返された値ごとに、キー間隔が存在しなければなりません。「Log」タイプをもつアイテムには、lastlogsize も存在しなければなりません。

<note important>(例えば、ホストやアイテムが無効だったり、削除されていて)サーバ上で値の送信が失敗した場合、エージェントはこれらの値の送信をリトライしません。 :::

例:

  1. エージェントがTCP接続をオープン
  2. エージェントがチェックのリストを問合せ
  3. サーバがアイテムのリスト(アイテムキー、間隔)を応答
  4. エージェントがその応答をパース
  5. TCP接続をクローズ
  6. エージェントが定期的なデータ収集を開始
収集データの送信

エージェントが以下を送信

<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に短縮されます。


本ページは2013/06/02時点の原文を基にしておりますので、内容は必ずしも最新のものとは限りません。
最新の情報は右上の「Translations of this page」から英語版を参照してください。