4 Zabbixエージェント2プラグインプロトコル

Zabbixエージェント2プロトコルはコード、サイズ、データ モデルに基づいています。

コード

Type Size Comments
Byte 4 ペイロードのタイプ。現在はJSONのみがサポートされています。

サイズ

Type Size Comments
Byte 4 現在のペイロードのサイズ(バイト単位)。

ペイロードデータ

Type Size Comments
Byte Size フィールドで定義 JSON形式のデータ。
ペイロードデータの定義
共通データ

これらのパラメータは、すべてのリクエスト/レスポンスに含まれます。

Name Type Comments
id uint32 リクエストの場合 - リクエストとレスポンスを関連付けるために使用される、増加していく識別子です。リクエストの方向ごと(つまり、エージェントからプラグイン、またはプラグインからエージェント)に一意です。
レスポンスの場合 - 対応するリクエストのIDです。
type uint32 リクエストのタイプです。
ログリクエスト

プラグインがログメッセージをエージェントのログファイルに書き込むために送信するリクエストです。

direction plugin → agent
response no

ログリクエスト固有のパラメータ:

Name Type Comments
severity uint32 メッセージの重要度(ログレベル)。
message string ログに記録するメッセージ。

例:

{"id":0,"type":1,"severity":3,"message":"message"}
登録リクエスト

プラグインを登録するために、提供されるメトリクスを取得する目的で、エージェントの起動フェーズ中にエージェントから送信されるリクエストです。

direction エージェント → plugin
response yes

登録リクエスト固有のパラメータ:

Name Type Comments
version string プロトコルバージョン <major>.<minor>

例:

{"id":1,"type":2,"version":"1.0"}
Register応答

registerリクエストに対するプラグインの応答です。

direction plugin → エージェント
response n/a

register応答固有のパラメータ:

Name Type Comments
name string プラグイン名。
metrics array of strings (optional) プラグインで使用される、説明付きのメトリクスです。RegisterMetrics() を返します。エラーが返された場合は存在しません。
interfaces uint32 (optional) プラグインがサポートするインターフェースのビットマスクです。エラーが返された場合は存在しません。
error string (optional) プラグインを起動できない場合に返されるエラーメッセージです。メトリクスが返された場合は存在しません。

例:

{"id":2,"type":3,"metrics":["external.test", "External exporter Test."], "interfaces": 4}

または

{"id":2,"type":3,"error":"error message"}
Startリクエスト

RunnerインターフェースのStart関数を実行するためのリクエストです。

direction エージェント → plugin
response no

このリクエストには固有のパラメータはなく、共通データのパラメータのみが含まれます。

例:

{"id":3,"type":4}
終了リクエスト

プラグインをシャットダウンするためにエージェントから送信されるリクエストです。

direction エージェント → plugin
response no

このリクエストには固有のパラメータはなく、共通データ パラメータのみが含まれます。

例:

{"id":3,"type":5}
エクスポートリクエスト

ExporterインターフェースのExport関数を実行するためのリクエスト。

direction エージェント → plugin
response no

エクスポートリクエスト固有のパラメータ:

Name Type Comments
key string プラグインキー。
parameters array of strings (optional) Export関数のパラメータ。

例:

{"id":4,"type":6,"key":"test.key","parameters":["foo","bar"]}
エクスポート応答

ExporterインターフェースのExport関数からの応答。

direction プラグイン → エージェント
response 該当なし

エクスポート応答固有のパラメータ:

Name Type Comments
value string (optional) Export関数からの応答値。エラーが返された場合は存在しません。
error string (optional) Export関数が正常に実行されなかった場合のエラーメッセージ。valueが返された場合は存在しません。

例:

{"id":5,"type":7,"value":"response"}

または

{"id":5,"type":7,"error":"error message"}
リクエストの設定

Configurator インターフェースの Configure 機能を実行するためのリクエストです。

direction エージェント → plugin
response n/a

Configure リクエスト固有のパラメータ:

Name Type Comments
global_options JSON object グローバルなエージェント設定オプションを含むJSONオブジェクト。
private_options JSON object (optional) 指定されている場合、プライベートなプラグイン設定オプションを含むJSONオブジェクト。

例:

{"id":6,"type":8,"global_options":{...},"private_options":{...}}
リクエストの検証

Configurator インターフェースの Validate 関数を実行するためのリクエスト。

direction エージェント → plugin
response yes

Validate リクエスト固有のパラメータ:

Name Type Comments
private_options JSON object (optional) 提供されている場合、プライベートなプラグイン設定オプションを含むJSONオブジェクト。

例:

{"id":7,"type":9,"private_options":{...}}
レスポンスの検証

Configurator インターフェースの Validate 関数からのレスポンス。

direction plugin → エージェント
response n/a

Validate レスポンス固有のパラメータ:

Name Type Comments
error string (optional) Validate 関数が正常に実行されなかった場合に返されるエラーメッセージです。正常に実行された場合は存在しません。

例:

{"id":8,"type":10}

または

{"id":8,"type":10,"error":"error message"}