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