サーバー - プロキシ間のデータ交換はJSON形式に基づいています。
要求メッセージと応答メッセージはヘッダーとデータの長さに則って始まる必要があります。
proxy config
リクエストは、プロキシ設定データを提供するためにサーバーによって送信されます。 このリクエストはProxyConfigFrequency
(サーバー設定パラメーター)秒ごとに送信されます。
名前 | 値の型 | 説明 | |||
---|---|---|---|---|---|
サーバーからプロキシ: | |||||
request | string | 'proxy config' | |||
<table> | object | テーブルのデータを持つ1つ以上のオブジェクト | |||
fields | array | フィールド名の配列 | |||
- | string | フィールド名 | |||
data | array | 配列の行 | |||
- | array | 配列の列 | |||
- | string,number | データベーススキーマの列タイプに応じたタイプの列値 | |||
プロキシからサーバー: | |||||
response | string | リクエストの成功情報('success'または'failed') | |||
version | string | プロキシバージョン(<メジャー>.<マイナー>.<ビルド>) |
例:
サーバーからプロキシ:
{
"request": "proxy config",
"globalmacro":{
"fields":[
"globalmacroid",
"macro",
"value"
],
"data":[
[
2,
"{$SNMP_COMMUNITY}",
"public"
]
]
},
"hosts":{
"fields":[
"hostid",
"host",
"status",
"ipmi_authtype",
"ipmi_privilege",
"ipmi_username",
"ipmi_password",
"name",
"tls_connect",
"tls_accept",
"tls_issuer",
"tls_subject",
"tls_psk_identity",
"tls_psk"
],
"data":[
[
10001,
"Linux",
3,
-1,
2,
"",
"",
"Linux",
1,
1,
"",
"",
"",
""
],
[
10050,
"Zabbix Agent",
3,
-1,
2,
"",
"",
"Zabbix Agent",
1,
1,
"",
"",
"",
""
],
[
10105,
"Logger",
0,
-1,
2,
"",
"",
"Logger",
1,
1,
"",
"",
"",
""
]
]
},
"interface":{
"fields":[
"interfaceid",
"hostid",
"main",
"type",
"useip",
"ip",
"dns",
"port",
"bulk"
],
"data":[
[
2,
10105,
1,
1,
1,
"127.0.0.1",
"",
"10050",
1
]
]
},
...
}
プロキシからサーバー:
proxy data
リクエストはプロキシからホストインターフェースの可用性、ヒストリ、検出、および自動登録のデータを取得するために使用されます。 このリクエストはProxyDataFrequency
(サーバー設定パラメーター)秒ごとに送信されます。
名前 | 値の型 | 説明 | |
---|---|---|---|
サーバーからプロキシ: | |||
request | string | 'proxy data' | |
プロキシからサーバー: | |||
session | string | データセッショントークン | |
interface availability | array | (オプション)インターフェイス可用性データオブジェクトの配列 | |
interfaceid | number | インターフェイスID | |
available | number | インターフェイスの可用性 0, INTERFACE_AVAILABLE_UNKNOWN - 不明 1, INTERFACE_AVAILABLE_TRUE - 利用可能 2, INTERFACE_AVAILABLE_FALSE - 利用不可 |
|
error | string | インターフェースエラーメッセージまたは空の文字列 | |
history data | array | (オプション) ヒストリデータオブジェクトの配列 | |
itemid | number | アイテムID | |
clock | number | アイテム値のタイムスタンプ(秒) | |
ns | number | アイテム値のタイムスタンプ(ナノ秒) | |
value | string | (オプション) アイテム値 | |
id | number | ID (1つのデータセッション内で一意の昇順カウンター) | |
timestamp | number | (オプション) ログタイプアイテムのタイムスタンプ | |
source | string | (オプション) イベントログアイテムのソース値 | |
severity | number | (オプション) イベントログアイテムの深刻度の値 | |
eventid | number | (オプション) イベントログアイテムのイベントID値 | |
state | string | (オプション) アイテムの状態 0, ITEM_STATE_NORMAL 1, ITEM_STATE_NOTSUPPORTED |
|
lastlogsize | number | (オプション) ログタイプアイテムの最後のログサイズ | |
mtime | number | (オプション) ログタイプの項目の時刻を変更 | |
discovery data | array | (オプション) ディスカバリデータオブジェクトの配列 | |
clock | number | ディスカバリデータのタイムスタンプ | |
druleid | number | ディスカバリルールID | |
dcheckid | number | ディスカバリーチェックIDまたはヌルのディスカバリー・ルール・データ | |
type | number | ディスカバリチェックタイプ: -1 ディスカバリルールデータ 0, SVC_SSH - SSHサービスチェック 1, SVC_LDAP - LDAPサービスチェック 2, SVC_SMTP - SMTPサービスチェック 3, SVC_FTP - FTPサービスチェック 4, SVC_HTTP - HTTPサービスチェック 5, SVC_POP - POPサービスチェック 6, SVC_NNTP - NNTPサービスチェック 7, SVC_IMAP - IMAPサービスチェック 8, SVC_TCP - TCPポートの可用性チェック 9, SVC_AGENT - Zabbixエージェント 10, SVC_SNMPv1 - SNMPv1エージェント 11, SVC_SNMPv2 - SNMPv2エージェント 12, SVC_ICMPPING - ICMPピング 13, SVC_SNMPv3 - SNMPv3エージェント 14, SVC_HTTPS - HTTPSサービスチェック 15, SVC_TELNET - Telnetの可用性チェック |
|
ip | string | ホストのIPアドレス | |
dns | string | ホストのDNS名 | |
port | number | (オプション) サービスポート番号 | |
key_ | string | (オプション) タイプのディスカバリーチェック用アイテムキー 9 SVC_AGENT | |
value | string | (オプション) サービスから受け取った値は、ほとんどのサービスで空になります | |
status | number | (オプション) サービスステータス: 0, DOBJECT_STATUS_UP - サービスアップ 1, DOBJECT_STATUS_DOWN - サービスダウン |
|
auto registration | array | (オプションl) オートレジストレーションデータオブジェクトの配列 | |
clock | number | オートレジストレーションデータのタイムスタンプ | |
host | string | ホスト名 | |
ip | string | (オプション) IPアドレス | |
dns | string | (オプション) IPアドレスから解決されたDNS名 | |
port | string | (オプション) ホストのポート | |
host_metadata | string | (オプション) エージェントによって送信されたホストメタデータ(HostMetadataまたはHostMetadataItemエージェント構成パラメーターに基づく) | |
tasks | array | (オプション) タスクの配列 | |
type | number | タスクのタイプ: 0, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND_RESULT - リモートコマンドの結果 |
|
status | number | リモートコマンドの実行ステータス: 0, ZBX_TM_REMOTE_COMMAND_COMPLETED - リモートコマンドは正常に完了 1, ZBX_TM_REMOTE_COMMAND_FAILED - リモートコマンド失敗 |
|
error | string | (オプション) エラーメッセージ | |
parent_taskid | number | 親タスクID | |
more | number | (オプション) 1 - 追加の送信ヒストリデータ | |
clock | number | (オプション) データ転送のタイムスタンプ (秒) | |
ns | number | (オプション) データ転送のタイムスタンプ (ナノ秒) | |
version | string | プロキシバージョン (<メジャー>.<マイナー>.<ビルド>) | |
サーバーからプロキシ: | |||
response | string | リクエストの成否 ('success'または'failed') | |
tasks | array | (オプション) タスクの配列 | |
type | number | タスクのタイプ: 1, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND - リモートコマンド |
|
clock | number | タスクの作成時間 | |
ttl | number | タスクが期限切れになるまでの秒単位の時間 | |
commandtype | number | リモートコマンドのタイプ: 0, ZBX_SCRIPT_TYPE_CUSTOM_SCRIPT - カスタムスクリプト使用 1, ZBX_SCRIPT_TYPE_IPMI - IPMI使用 2, ZBX_SCRIPT_TYPE_SSH - SSH使用 3, ZBX_SCRIPT_TYPE_TELNET - Telnet使用 4, ZBX_SCRIPT_TYPE_GLOBAL_SCRIPT - グローバルスクリプト使用 (現在、機能的にはカスタムスクリプトと同等) |
|
command | string | 実行するリモートコマンド | |
execute_on | number | カスタムスクリプトの実行ターゲット: 0, ZBX_SCRIPT_EXECUTE_ON_AGENT - エージェントでスクリプト実行 1, ZBX_SCRIPT_EXECUTE_ON_SERVER - サーバーでスクリプト実行 2, ZBX_SCRIPT_EXECUTE_ON_PROXY - プロキシでスクリプト実行 |
|
port | number | (オプション) telnetおよびsshコマンドのポート | |
authtype | number | (オプション) sshコマンドの認証タイプ | |
username | string | (オプション) telnetおよびsshコマンドのユーザー名 | |
password | string | (オプション) telnetおよびsshコマンドのパスワード | |
publickey | string | (オプション) sshコマンドの公開鍵 | |
privatekey | string | (オプション) sshコマンドの秘密鍵 | |
parent_taskid | number | 親タスクID | |
hostid | number | ターゲットホストID |
例:
サーバーからプロキシ:
プロキシからサーバー:
{
"session": "12345678901234567890123456789012"
"interface availability": [
{
"interfaceid": 1,
"available": 1,
"error": ""
},
{
"interfaceid": 2,
"available": 2,
"error": "Get value from agent failed: cannot connect to [[127.0.0.1]:10049]: [111] Connection refused"
},
{
"interfaceid": 3,
"available": 1,
"error": ""
},
{
"interfaceid": 4,
"available": 1,
"error": ""
}
],
"history data":[
{
"itemid":"12345",
"clock":1478609647,
"ns":332510044,
"value":"52956612",
"id": 1
},
{
"itemid":"12346",
"clock":1478609647,
"ns":330690279,
"state":1,
"value":"Cannot find information for this network interface in /proc/net/dev.",
"id": 2
}
],
"discovery data":[
{
"clock":1478608764,
"drule":2,
"dcheck":3,
"type":12,
"ip":"10.3.0.10",
"dns":"vdebian",
"status":1
},
{
"clock":1478608764,
"drule":2,
"dcheck":null,
"type":-1,
"ip":"10.3.0.10",
"dns":"vdebian",
"status":1
}
],
"auto registration":[
{
"clock":1478608371,
"host":"Logger1",
"ip":"10.3.0.1",
"dns":"localhost",
"port":"10050"
},
{
"clock":1478608381,
"host":"Logger2",
"ip":"10.3.0.2",
"dns":"localhost",
"port":"10050"
}
],
"tasks":[
{
"type": 0,
"status": 0,
"parent_taskid": 10
},
{
"type": 0,
"status": 1,
"error": "No permissions to execute task.",
"parent_taskid": 20
}
],
"version":"5.4.0"
}
サーバーからプロキシ:
{
"response": "success",
"tasks":[
{
"type": 1,
"clock": 1478608371,
"ttl": 600,
"commandtype": 2,
"command": "restart_service1.sh",
"execute_on": 2,
"port": 80,
"authtype": 0,
"username": "userA",
"password": "password1",
"publickey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe",
"privatekey": "lsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5QCqGKukO1De7zhd",
"parent_taskid": 10,
"hostid": 10070
},
{
"type": 1,
"clock": 1478608381,
"ttl": 600,
"commandtype": 1,
"command": "restart_service2.sh",
"execute_on": 0,
"authtype": 0,
"username": "",
"password": "",
"publickey": "",
"privatekey": "",
"parent_taskid": 20,
"hostid": 10084
}
]
}
proxy config
リクエストはプロキシ設定データを取得するためにプロキシによって送信されます。 このリクエストは、 ConfigFrequency
(プロキシ設定パラメータ)秒ごとに送信されます。
名前 | 値の型 | 説明 | |||
---|---|---|---|---|---|
プロキシからサーバー: | |||||
request | string | 'proxy config' | |||
host | string | プロキシ名 | |||
version | string | プロキシバージョン (<メジャー>.<マイナー>.<ビルド>) | |||
サーバーからプロキシ: | |||||
request | string | 'proxy config' | |||
<table> | object | <table>データを持つ1つ以上のオブジェクト | |||
fields | array | フィールド名の配列 | |||
- | string | フィールド名 | |||
data | array | 行の配列 | |||
- | array | 列の配列 | |||
- | string,number | データベーススキーマの列タイプに応じたタイプの列値 | |||
プロキシからサーバー: | |||||
response | string | リクエストの成否 ('success'または'failed') |
例:
プロキシからサーバー:
サーバーからプロキシ:
{
"globalmacro":{
"fields":[
"globalmacroid",
"macro",
"value"
],
"data":[
[
2,
"{$SNMP_COMMUNITY}",
"public"
]
]
},
"hosts":{
"fields":[
"hostid",
"host",
"status",
"ipmi_authtype",
"ipmi_privilege",
"ipmi_username",
"ipmi_password",
"name",
"tls_connect",
"tls_accept",
"tls_issuer",
"tls_subject",
"tls_psk_identity",
"tls_psk"
],
"data":[
[
10001,
"Linux",
3,
-1,
2,
"",
"",
"Linux",
1,
1,
"",
"",
"",
""
],
[
10050,
"Zabbix Agent",
3,
-1,
2,
"",
"",
"Zabbix Agent",
1,
1,
"",
"",
"",
""
],
[
10105,
"Logger",
0,
-1,
2,
"",
"",
"Logger",
1,
1,
"",
"",
"",
""
]
]
},
"interface":{
"fields":[
"interfaceid",
"hostid",
"main",
"type",
"useip",
"ip",
"dns",
"port",
"bulk"
],
"data":[
[
2,
10105,
1,
1,
1,
"127.0.0.1",
"",
"10050",
1
]
]
},
...
}
プロキシからサーバー:
proxy data
リクエストはプロキシによって送信され、ホストインターフェイスの可用性、ヒストリ、ディスカバリ、および自動登録データを提供します。 このリクエストはDataSenderFrequency
(プロキシ設定パラメータ)秒ごとに送信されます。
名前 | 値の型 | 説明 | |
---|---|---|---|
プロキシからサーバー: | |||
request | string | 'proxy data' | |
host | string | プロキシ名 | |
session | string | データセッショントークン | |
interface availability | array | (オプション) インターフェイス可用性データオブジェクトの配列 | |
interfaceid | number | インターフェースID | |
available | number | インターフェースの可用性 0, INTERFACE_AVAILABLE_UNKNOWN - 不明 1, INTERFACE_AVAILABLE_TRUE - 使用可能 2, INTERFACE_AVAILABLE_FALSE - 使用不可 |
|
error | string | インターフェースエラーメッセージまたは空白 | |
history data | array | (オプション) ヒストリデータオブジェクトの配列 | |
itemid | number | アイテムID | |
clock | number | アイテム値のタイムスタンプ (秒) | |
ns | number | アイテム値のタイムスタンプ (ナノ秒) | |
value | string | (オプション) アイテム値 | |
id | number | ID (1つのデータセッション内で一意の昇順カウンター) | |
timestamp | number | (オプション) ログタイプアイテムのタイムスタンプ | |
source | string | (オプション) イベントログアイテムのソース値 | |
severity | number | (オプション) イベントログアイテムの深刻度 | |
eventid | number | (オプション) イベントログアイテムのイベントログID | |
state | string | (オプション) アイテムの状態 0, ITEM_STATE_NORMAL 1, ITEM_STATE_NOTSUPPORTED |
|
lastlogsize | number | (オプション) ログタイプアイテムの最後のログサイズ | |
mtime | number | (オプション) ログタイプの項目の時刻を変更 | |
discovery data | array | (オプション) ディスカバリデータオブジェクトの配列 | |
clock | number | ディスカバリデータのタイムスタンプ | |
druleid | number | ディスカバリルールID | |
dcheckid | number | ディスカバリーチェックIDまたはヌルのディスカバリー・ルール・データ | |
type | number | ディスカバリチェックタイプ: -1 ディスカバリルールデータ 0, SVC_SSH - SSHサービスチェック 1, SVC_LDAP - LDAPサービスチェック 2, SVC_SMTP - SMTPサービスチェック 3, SVC_FTP - FTPサービスチェック 4, SVC_HTTP - HTTPサービスチェック 5, SVC_POP - POPサービスチェック 6, SVC_NNTP - NNTPサービスチェック 7, SVC_IMAP - IMAPサービスチェック 8, SVC_TCP - TCPポートの可用性チェック 9, SVC_AGENT - Zabbixエージェント 10, SVC_SNMPv1 - SNMPv1エージェント 11, SVC_SNMPv2 - SNMPv2エージェント 12, SVC_ICMPPING - ICMPピング 13, SVC_SNMPv3 - SNMPv3エージェント 14, SVC_HTTPS - HTTPSサービスチェック 15, SVC_TELNET - Telnetの可用性チェック |
|
ip | string | ホストのIPアドレス | |
dns | string | ホストのDNS名 | |
port | number | (オプション) サービスポート番号 | |
key_ | string | (オプション) タイプのディスカバリーチェック用アイテムキー 9 SVC_AGENT | |
value | string | (オプション) サービスから受け取った値は、ほとんどのサービスで空になります | |
status | number | (オプション) サービスステータス: 0, DOBJECT_STATUS_UP - サービスアップ 1, DOBJECT_STATUS_DOWN - サービスダウン |
|
auto registration | array | (オプションl) オートレジストレーションデータオブジェクトの配列 | |
clock | number | オートレジストレーションデータのタイムスタンプ | |
host | string | ホスト名 | |
ip | string | (オプション) IPアドレス | |
dns | string | (オプション) IPアドレスから解決されたDNS名 | |
port | string | (オプション) ホストのポート | |
host_metadata | string | (オプション) エージェントによって送信されたホストメタデータ(HostMetadataまたはHostMetadataItemエージェント構成パラメーターに基づく) | |
tasks | array | (オプション) タスクの配列 | |
type | number | タスクのタイプ: 0, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND_RESULT - リモートコマンドの結果 |
|
status | number | リモートコマンドの実行ステータス: 0, ZBX_TM_REMOTE_COMMAND_COMPLETED - リモートコマンドは正常に完了 1, ZBX_TM_REMOTE_COMMAND_FAILED - リモートコマンド失敗 |
|
error | string | (オプション) エラーメッセージ | |
parent_taskid | number | 親タスクID | |
more | number | (オプション) 1 - 追加の送信ヒストリデータ | |
clock | number | (オプション) データ転送のタイムスタンプ (秒) | |
ns | number | (オプション) データ転送のタイムスタンプ (ナノ秒) | |
version | string | プロキシバージョン (<major>.<minor>.<build>) | |
サーバーからプロキシ: | |||
response | string | リクエストの成否 ('success'または'failed') | |
upload | string | ヒストリデータ(ヒストリ、自動登録、ホストの可用性、ネットワークディスカバリ)のアップロード制御。 使用可能な値 -'enabled'または'disabled' | |
tasks | array | (オプション) タスクの配列 | |
type | number | タスクのタイプ: 1, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND - リモートコマンド |
|
clock | number | タスクの作成時間 | |
ttl | number | タスクが期限切れになるまでの秒単位の時間 | |
commandtype | number | リモートコマンドのタイプ: 0, ZBX_SCRIPT_TYPE_CUSTOM_SCRIPT - カスタムスクリプト使用 1, ZBX_SCRIPT_TYPE_IPMI - IPMI使用 2, ZBX_SCRIPT_TYPE_SSH - SSH使用 3, ZBX_SCRIPT_TYPE_TELNET - Telnet使用 4, ZBX_SCRIPT_TYPE_GLOBAL_SCRIPT - グローバルスクリプト使用 (現在、機能的にはカスタムスクリプトと同等) |
|
command | string | 実行するリモートコマンド | |
execute_on | number | カスタムスクリプトの実行ターゲット: 0, ZBX_SCRIPT_EXECUTE_ON_AGENT - エージェントでスクリプト実行 1, ZBX_SCRIPT_EXECUTE_ON_SERVER - サーバーでスクリプト実行 2, ZBX_SCRIPT_EXECUTE_ON_PROXY - プロキシでスクリプト実行 |
|
port | number | (オプション) telnetおよびsshコマンドのポート | |
authtype | number | (オプション) sshコマンドの認証タイプ | |
username | string | (オプション) telnetおよびsshコマンドのユーザー名 | |
password | string | (オプション) telnetおよびsshコマンドのパスワード | |
publickey | string | (オプション) sshコマンドの公開鍵 | |
privatekey | string | (オプション) sshコマンドの秘密鍵 | |
parent_taskid | number | 親タスクID | |
hostid | number | ターゲットホストID |
例:
プロキシからサーバー:
{
"request": "proxy data",
"host": "Proxy #12",
"session": "12345678901234567890123456789012",
"interface availability": [
{
"interfaceid": 1,
"available": 1,
"error": ""
},
{
"interfaceid": 2,
"available": 2,
"error": "Get value from agent failed: cannot connect to [[127.0.0.1]:10049]: [111] Connection refused"
},
{
"interfaceid": 3,
"available": 1,
"error": ""
},
{
"interfaceid": 4,
"available": 1,
"error": ""
}
],
"history data":[
{
"itemid":"12345",
"clock":1478609647,
"ns":332510044,
"value":"52956612",
"id": 1
},
{
"itemid":"12346",
"clock":1478609647,
"ns":330690279,
"state":1,
"value":"Cannot find information for this network interface in /proc/net/dev.",
"id": 2
}
],
"discovery data":[
{
"clock":1478608764,
"drule":2,
"dcheck":3,
"type":12,
"ip":"10.3.0.10",
"dns":"vdebian",
"status":1
},
{
"clock":1478608764,
"drule":2,
"dcheck":null,
"type":-1,
"ip":"10.3.0.10",
"dns":"vdebian",
"status":1
}
],
"auto registration":[
{
"clock":1478608371,
"host":"Logger1",
"ip":"10.3.0.1",
"dns":"localhost",
"port":"10050"
},
{
"clock":1478608381,
"host":"Logger2",
"ip":"10.3.0.2",
"dns":"localhost",
"port":"10050"
}
],
"tasks":[
{
"type": 2,
"clock":1478608371,
"ttl": 600,
"commandtype": 2,
"command": "restart_service1.sh",
"execute_on": 2,
"port": 80,
"authtype": 0,
"username": "userA",
"password": "password1",
"publickey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe",
"privatekey": "lsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5QCqGKukO1De7zhd",
"parent_taskid": 10,
"hostid": 10070
},
{
"type": 2,
"clock":1478608381,
"ttl": 600,
"commandtype": 1,
"command": "restart_service2.sh",
"execute_on": 0,
"authtype": 0,
"username": "",
"password": "",
"publickey": "",
"privatekey": "",
"parent_taskid": 20,
"hostid": 10084
}
],
"tasks":[
{
"type": 0,
"status": 0,
"parent_taskid": 10
},
{
"type": 0,
"status": 1,
"error": "No permissions to execute task.",
"parent_taskid": 20
}
],
"version":"5.4.0"
}
サーバーからプロキシ:
{
"response": "success",
"upload": "enabled",
"tasks":[
{
"type": 1,
"clock": 1478608371,
"ttl": 600,
"commandtype": 2,
"command": "restart_service1.sh",
"execute_on": 2,
"port": 80,
"authtype": 0,
"username": "userA",
"password": "password1",
"publickey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe",
"privatekey": "lsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5QCqGKukO1De7zhd",
"parent_taskid": 10,
"hostid": 10070
},
{
"type": 1,
"clock": 1478608381,
"ttl": 600,
"commandtype": 1,
"command": "restart_service2.sh",
"execute_on": 0,
"authtype": 0,
"username": "",
"password": "",
"publickey": "",
"privatekey": "",
"parent_taskid": 20,
"hostid": 10084
}
]
}