2013年から暗号通貨について活動している、とあるモナコイナーのブログである。

2018年7月22日日曜日

ZABBIX APIって何?トークンって?

こんにちは、Lmonaです。

最近暑いですが皆さんいかがお過ごしでしょうか。
私は以前までは焼けるスポーツをやっていたので全く日焼けを気にしていなかったのですが、やめて丸の内OLになった今日焼けしないよう気を付けています。

日差しが強いときは、日傘とサングラスをするんです。
こういう心がけ大事ですよね~。サングラスは目を守ってくれ日傘は上半身を守ってくれます笑。




さて、今日はZABBIXという監視ツールのAPIを使うために必要なトークンの取得方法について伝授いたします。

関連画像




ZABBIXといえば無料で使えるサーバの監視ツール。

UXがあまりよくないという声も多いですが(つまり使いづらい)、ZABBIXのAPIは結構いいという話をきいたことがあり使ってみました。

Zabbix API は、要求-応答のプロトコルに JSON-RPC 2.0 を使用しています。JSON-RPC は、データ形式に JSON を使用した状態を保持しない軽量の RPC (Remote Procedure Call) プロトコルです。

JSON-RPC 2.0 での要求は、jsonrpc、method、params、id から構成されます。

このように、手続名と引数を JSON 形式で送ってやるだけという非常に分かりやすい作りです。



*jsonrpc → JSON-RPC のヴァージョン番号で "2.0"

*method →呼び出す手続きの名称

*params →呼び出した手続きに渡す引数 (省略可)

*id →要求と応答のひも付けを行うための識別子でクライアント側で決めた値


いうそしてAPIを使ってデータを取得するには、トークンが必要となります。

auth というのがユーザ認証用のトークンで、Zabbix API における user.login メソッドを叩くことで得られます。user.loginメソッドを叩く時の auth は null でOKです。


ーーーーーーー
<トークン取得>
要求
 curl -v -d '{"auth":null,"method":"user.login","id":1,"params":{"user":"API-test","password":"API-test"},"jsonrpc":"2.0"}' -H "Content-Type: application/json-rpc" http://〓IPアドレス〓/zabbix/api_jsonrpc.php

結果
{"jsonrpc":"2.0","result":"de512aeb78c6538a5bb8","id":1}

 ーーーーーーーー

結果として返ってきたde512aeb78c6538a5bb8がトークンとなります!!

これは毎回異なるトークンが発行されるので発行しなおしたらそれ以前のトークンは使えなくなります。

一度発行したトークンは記録するなりして、ホスト登録やホスト削除、ホストデータの取得する際などに使えるようにしておくとよいかと思います。



以上です。

今日はまじめな投稿でした~。

Lmona