6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ZabbixAdvent Calendar 2017

Day 6

内部APIはご存知ですか?

Last updated at Posted at 2017-12-05

どうも、日本Zabbixユーザ会@_BSmile_ です。

前置き

zabbixには、バージョン1.8からAPIが実装されており、この素晴らしい機能により外部APとの連携が取れるようになりました。
そう、例えば「Zabbixのダッシュボード画面はXXXXXだ!」なんて言っている方々が使っているgrafanaなんかでZabbixダッシュボードを表示している場合はAPIを使用していますね。
一応言っておきますが、XXXXXな画面はZabbix 3.4からちょっと見栄えが良くなりますので使ってみると良いかもしれません。

下の画像は2.2。
queue.png

APIドキュメント

内部API

さて、今回お話したいのはAPIドキュメントに載っていないAPIがあるという事です。
通称「内部API」。

Zabbixは過去の収集履歴等、ほぼ全ての情報をDBに保存しています。
皆さんが使用するWebUIについては、このDBからデータを検索した結果を見ています。
この点はログインユーザのグループへ「デバッグモード」を有効化すると分かり易いです。

ですが、ZabbixのDBに保持していない情報という物も存在します。
それはキューの情報です。
DBに無い情報をWebUIで取得する、そういう時に内部APIは使用されています。

キューの情報

キューの情報は、zabbix3.0.8以前は取得・表示できる上限値が500となっておりCのソースとphpの改修が必要でしたがそれ以降はphpのパラメータ変更可能になっています。
https://www.zabbix.com/documentation/3.2/manual/web_interface/definitions

手順

  • 準備:通常のAPIでユーザのログインを行い、認証トークンを払い出して下さい。
[root@localhost ~]# curl -X POST -H 'Content-Type:application/json' -d'{"jsonrpc": "2.0","method":"user.login","params": {"user":"Admin","password":"zabbix"},"id":0}' 127.0.0.1/zabbix/api_jsonrpc.php
{"jsonrpc":"2.0","result":"fa23a03c53c8db0c2654ce0893611747","id":0}
  • 実践:払い出したトークンを使用し、内部APIを実行

内部APIは、通常のapiとは違いWebサーバは介さずにZabbixサーバの待受ポート(通常は10051/TCP)を使用します。
telnetでは無く、ncコマンドを使用しても取得できます。
queue.getで使用するsidは、先程のuser.loginで取得したresult値を使用してください。

[root@localhost ~]# telnet 127.0.0.1 10051
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
{"request":"queue.get", "sid":"fa23a03c53c8db0c2654ce0893611747","type":"overview"}
{"response":"success","data":[{"itemtype":3,"delay5":0,"delay10":1,"delay30":0,"delay60":0,"delay300":0,"delay600":0}]}Connection closed by foreign host.

上は、キュー画面の「概要」をJSON型式で取得したものです。
typeを"overview by proxy"や"details"にすると、プロキシの概要や詳細を取得できます。

まとめ

10分以上経過したキューが埋もれてWebUIから見えなくなってしまった時には、この内部APIが役立つかもしれません。
ソースを読むと意外と面白い事が分かるZabbix、是非チャレンジしてみてください!

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?