やってみる †$ cat auth.json
{
"auth": null,
"method": "user.login",
"id": 1,
"params": {
"user": "Admin",
"password": "xxxx"
},
"jsonrpc":"2.0"
}
などのJSONデータを用意し、下記の通りZabbixサーバにリクエストを送ることでトークンを取得します。 $ curl -s -X GET --data-binary @auth.json \ ← ファイルデータをパラメタとして > -H "Content-Type:application/json-rpc" \ ← Content-Type を指定 > http://[zabbix Server]/api_jsonrpc.php | \ ←所定のサーバに > jq -r .result ← JQで整形、 resultプロパティだけ取得、通常は" " がつくが -r オプションで除去 e5f6ee796acfxxxxxxxxxxxxxx トークンがとれました。 つぎにこのトークンを用いて、HOST一覧を取得してみます $ cat param.json
{
"auth": "e5f6ee796acfxxxxxxxxxxxxxx", ←先のトークン
"method": "host.get",
"id": 1,
"params": {
"output": "extend",
"selectInterfaces": "extend"
},
"jsonrpc": "2.0"
}
$ curl -s -X GET --data-binary @param.json \
> -H "Content-Type:application/json-rpc" \
> http://[zabbix Server]/api_jsonrpc.php | jq
{
"jsonrpc": "2.0",
"result": [
{
"hostid": "10263",
"proxy_hostid": "0",
"host": "windowsEsxi",
"status": "0",
"disable_until": "0",
"error": "",
"available": "1",
...
"name": "ESXi上のWindows10",
"flags": "0",
"templateid": "0",
"description": "",
"tls_connect": "1",
"tls_accept": "1",
"tls_issuer": "",
"tls_subject": "",
"tls_psk_identity": "",
"tls_psk": "",
"interfaces": [
{
"interfaceid": "12",
"hostid": "10263",
"main": "1",
"type": "1",
"useip": "1",
"ip": "192.168.10.203",
"dns": "",
"port": "10050",
"bulk": "1"
}
]
},.....
],
"id": 1
}
関連リンク †この記事は 現在のアクセス:2707 |