Zabbix agent 2 プラグインプロトコル

Zabbix agent 2 のプロトコルは、コード、サイズ、およびデータモデルに基づいています。

コード

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

サイズ

Type Size Comments
Byte 4 現在のペイロードのバイト数。

ペイロードデータ

Type Size Comments
Byte Size フィールドで定義される JSON形式のデータ。

ペイロードデータ定義

共通データ

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

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

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

direction plugin → エージェント
response no

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

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

例:

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

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

direction エージェント → プラグイン
response yes

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

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

例:

{"id":1,"type":2,"version":"1.0"}
登録レスポンス

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

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

登録レスポンスに固有のパラメータ:

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"}
開始リクエスト

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

direction エージェント → plugin
response no

このリクエストには特定のパラメータはなく、共通データパラメータのみを含みます。

例:

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

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

direction エージェント → プラグイン
response no

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

例:

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

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

direction エージェント → プラグイン
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 plugin → エージェント
response n/a

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

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

例:

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

または

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

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

direction エージェント → プラグイン
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) private plugin configuration options を含む JSON object。指定されている場合に使用されます。

例:

{"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"}