[comment]: # ({f372a49b-bdae00e2})
# 4 Zabbixエージェント2プラグインプロトコル

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

[comment]: # ({/f372a49b-bdae00e2})

[comment]: # ({b65bf947-a102065d})

### コード

|タイプ|サイズ|コメント|
|-----|-----|----------|
|バイト| 4 |ペイロードタイプ。現在はJSON形式のみがサポートされています。|

[comment]: # ({/b65bf947-a102065d})

[comment]: # ({8edb0275-6f328f94})

### サイズ

|タイプ|サイズ|コメント|
|-----|-----|----------|
|バイト| 4 |現在のペイロードのサイズ（バイト単位）|

[comment]: # ({/8edb0275-6f328f94})

[comment]: # ({0351e98f-e3974519})

### ペイロードデータ

|タイプ|サイズ|コメント|
|-----|-----|-----------|
|バイト| *サイズ*フィールドで定義される|JSON形式のデータ|

[comment]: # ({/0351e98f-e3974519})

[comment]: # ({60a41fe8-265b88ca})
##### ペイロードデータ定義

###### 共通データ

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

|名前|タイプ|コメント|
|-----|--------|----------|
|id |uint32|リクエストの場合 - リクエストとレスポンスを関連付けるために使用される増分識別子。リクエスト方向（エージェントからプラグイン、またはプラグインからエージェント）内で一意です。<br>レスポンスの場合 - 対応するリクエストのID|
|type|uint32|リクエストタイプ|

[comment]: # ({/60a41fe8-265b88ca})

[comment]: # ({3cf942f4-6bdfbea5})

###### ログリクエスト

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

| | |
|---|---|
|direction|plugin → agent|
|response|no|

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

|Name|Type|Comments|
|---------|--------|----------|
|severity|uint32|メッセージの重要度（ログレベル）|
|message|string|ログに記録するメッセージ|

*例:*

    {"id":0,"type":1,"severity":3,"message":"message"}

[comment]: # ({/3cf942f4-6bdfbea5})

[comment]: # ({3640b089-38f1c088})

###### 登録リクエスト

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

| | |
|---|---|
|direction|agent → plugin|
|response|yes|

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

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

*例:*

    {"id":1,"type":2,"version":"1.0"}

[comment]: # ({/3640b089-38f1c088})

[comment]: # ({92946a86-d8c62312})

###### 登録レスポンス

登録リクエストに対するプラグインのレスポンス

| | |
|---|---|
|direction|plugin → agent|
|response|n/a|

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

|Name|Type|Comments|
|---------|--------|----------|
|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"}

[comment]: # ({/92946a86-d8c62312})

[comment]: # ({f190dd1a-0b67f229})

###### 開始リクエスト

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

|   |   |
|---|---|
|direction|agent → plugin|
|response|no|

このリクエストには特定のパラメーターはなく、[共通データ](#common-data)パラメーターのみが含まれます。

*Example:*

    {"id":3,"type":4}

[comment]: # ({/f190dd1a-0b67f229})

[comment]: # ({fce4bba2-f3c8d489})

###### 終了リクエスト

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

|   |   |
|---|---|
|direction|agent → plugin|
|response|no|

このリクエストには特定のパラメータはなく、[共通データ](#common-data)パラメータのみが含まれます。

*例:*

    {"id":3,"type":5}

[comment]: # ({/fce4bba2-f3c8d489})

[comment]: # ({43e9416d-b2754963})

###### エクスポートリクエスト

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

| | |
|---|---|
|direction|agent → plugin|
|response|no|

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

|Name|Type|Comments|
|---------|---------|----------|
|key|string|プラグインキー|
|parameters|文字列の配列（オプション）|エクスポート機能のパラメーター|

*例:*

    {"id":4,"type":6,"key":"test.key","parameters":["foo","bar"]}

[comment]: # ({/43e9416d-b2754963})

[comment]: # ({33f976c2-27e2bd0c})

###### エクスポートレスポンス

エクスポーターインターフェースのエクスポート機能からのレスポンス

| | |
|---|---|
|direction|plugin → agent|
|response|n/a|

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

|Name|Type|Comments|
|---------|--------|----------|
|value|文字列 (オプション) |エクスポート機能からのレスポンス値。エラーが返された場合は省略されます。|
|error|文字列 (オプション) |エクスポート機能が正常に実行されなかった場合のエラーメッセージ。値が返された場合は省略されます。|

*例:*

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

または

    {"id":5,"type":7,"error":"error message"}

[comment]: # ({/33f976c2-27e2bd0c})

[comment]: # ({96eb71cf-15a7dce0})

###### 構成リクエスト

*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":{...}}

[comment]: # ({/96eb71cf-15a7dce0})

[comment]: # ({99291487-14b279bc})

###### Validate リクエスト

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

| | |
|---|---|
|direction|agent → plugin|
|response|yes|

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

|Name|Type|Comments|
|---------|--------|----------|
|private_options|JSON オブジェクト (オプション)|プライベートプラグイン設定オプション (指定されている場合) を含む JSON オブジェクト|

*例:*

    {"id":7,"type":9,"private_options":{...}}

[comment]: # ({/99291487-14b279bc})

[comment]: # ({3b19fa95-9a73001b})

###### Validate レスポンス

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

| | |
|---|---|
|direction|plugin → agent|
|response|n/a|

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

|Name|Type|Comments|
|---------|--------|----------|
|error|文字列 (オプション)|Validate 関数が正常に実行されなかった場合に返されるエラーメッセージ。正常に実行された場合は存在しません。|

*例:*

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

または

    {"id":8,"type":10,"error":"エラーメッセージ"}

[comment]: # ({/3b19fa95-9a73001b})


