On this page
4 Zabbixエージェント2プラグインプロトコル
Zabbixエージェント2プロトコルはコード、サイズ、データ モデルに基づいています。
コード
| タイプ | サイズ | コメント |
|---|---|---|
| Byte | 4 | ペイロードタイプ。現在サポートされているのはJSONのみです。 |
サイズ
| タイプ | サイズ | コメント |
|---|---|---|
| バイト | 4 | 現在のペイロードのサイズ(バイト単位)。 |
ペイロードデータ
| タイプ | サイズ | コメント |
|---|---|---|
| バイト | Size フィールドで定義 | JSON 形式のデータ。 |
ペイロードデータの定義
共通データ
これらのパラメータはすべてのリクエスト/レスポンスに存在します:
| 名前 | タイプ | コメント |
|---|---|---|
| id | uint32 | リクエストの場合 - レスポンスとリクエストを関連付けるために使用されるインクリメント識別子。リクエストの方向(つまり、エージェントからプラグイン、またはプラグインからエージェント)内で一意です。 レスポンスの場合 - 対応するリクエストのID。 |
| type | uint32 | リクエストタイプ。 |
ログリクエスト
プラグインがエージェントのログファイルにログメッセージを書き込むために送信するリクエスト。
| direction | plugin → agent |
| response | なし |
ログリクエストに固有のパラメータ:
| 名前 | 型 | コメント |
|---|---|---|
| severity | uint32 | メッセージの重大度(ログレベル)。 |
| message | string | ログに記録するメッセージ。 |
例:
{"id":0,"type":1,"severity":3,"message":"message"}
登録リクエスト
プラグインを登録するために、エージェントの起動フェーズ中にエージェントから送信されるリクエストです。
| direction | agent → plugin |
| response | yes |
登録リクエストに固有のパラメータ:
| 名前 | 型 | コメント |
|---|---|---|
| version | string | プロトコルバージョン <major>.<minor> |
例:
{"id":1,"type":2,"version":"1.0"}
レスポンスの登録
registerリクエストに対するプラグインのレスポンス。
| direction | plugin → agent |
| response | n/a |
registerレスポンスに固有のパラメータ:
| 名前 | 型 | コメント |
|---|---|---|
| name | string | プラグイン名。 |
| metrics | 文字列の配列 (オプション) | プラグインで使用される説明付きのメトリクス。RegisterMetrics()を返します。エラーが返された場合は存在しません。 |
| interfaces | uint32 (オプション) | プラグインがサポートするインターフェースのビットマスク。エラーが返された場合は存在しません。 |
| error | string (オプション) | プラグインを開始できない場合に返されるエラーメッセージ。メトリクスが返される場合は存在しません。 |
例:
{"id":2,"type":3,"metrics":["external.test", "External exporter Test."], "interfaces": 4}
または
{"id":2,"type":3,"error":"error message"}
Startリクエスト
RunnerインターフェースのStart関数を実行するリクエスト。
| direction | agent → plugin |
| response | なし |
リクエストには特定のパラメータはなく、共通データパラメータのみが含まれます。
例:
{"id":3,"type":4}
リクエストの終了
プラグインをシャットダウンするためにエージェントから送信されるリクエスト。
| direction | agent → plugin |
| response | no |
このリクエストには特定のパラメータはなく、共通データパラメータのみが含まれます。
例:
{"id":3,"type":5}
エクスポートリクエスト
ExporterインターフェースのExport関数を実行するためのリクエストです。
| direction | agent → plugin |
| response | no |
エクスポートリクエストに固有のパラメータ:
| 名前 | 型 | コメント |
|---|---|---|
| key | string | プラグインキー |
| parameters | 文字列の配列(オプション) | Export関数のパラメータ |
例:
{"id":4,"type":6,"key":"test.key","parameters":["foo","bar"]}
エクスポートレスポンス
ExporterインターフェースのExport関数からのレスポンス。
| direction | plugin → agent |
| response | n/a |
エクスポートレスポンスに固有のパラメータ:
| 名前 | 型 | コメント |
|---|---|---|
| value | string (省略可能) | Export関数からのレスポンス値。エラーが返された場合は存在しません。 |
| error | string (省略可能) | Export関数が正常に実行されなかった場合のエラーメッセージ。値が返された場合は存在しません。 |
例:
{"id":5,"type":7,"value":"response"}
または
{"id":5,"type":7,"error":"error message"}
設定リクエスト
ConfiguratorインターフェースのConfigure関数を実行するリクエスト。
| direction | agent → plugin |
| response | n/a |
Configureリクエストに固有のパラメータ:
| 名前 | 型 | コメント |
|---|---|---|
| global_options | JSONオブジェクト | グローバルなエージェント設定オプションを含むJSONオブジェクト |
| private_options | JSONオブジェクト(省略可) | 指定された場合、プライベートなプラグイン設定オプションを含むJSONオブジェクト |
例:
{"id":6,"type":8,"global_options":{...},"private_options":{...}}
リクエストの検証
ConfiguratorインターフェースのValidate関数を実行するリクエスト。
| direction | agent → plugin |
| response | yes |
Validateリクエストに固有のパラメータ:
| 名前 | 型 | コメント |
|---|---|---|
| private_options | JSONオブジェクト(オプション) | プライベートなプラグイン設定オプションを含むJSONオブジェクト。指定された場合のみ。 |
例:
{"id":7,"type":9,"private_options":{...}}
Validate response
ConfiguratorインターフェースのValidate関数からのレスポンス。
| direction | plugin → agent |
| response | n/a |
Validateレスポンスに固有のパラメータ:
| 名前 | 型 | コメント |
|---|---|---|
| error | string (オプション) | Validate関数が正常に実行されなかった場合に返されるエラーメッセージ。正常に実行された場合は省略されます。 |
例:
{"id":8,"type":10}
または
{"id":8,"type":10,"error":"error message"}