この記事は、以下のアドベントカレンダー9日目になります
5日目のzabbix api の記事を受けて、以下の情報を記載してみたいと思います
- jupyter lab による簡単な返り値等の確認
- zabbixに対してはpy-zabbix というライブラリを利用
5日目の記事はこちら
https://qiita.com/hon_m/items/b7b19b623335f7040502
それぞれどのような役割で利用するか
py-zabbix
py-zabbixは記載した通り、jsonを生で書き下ろさずにライブラリを介して監視データを取得するために利用します
jupyter lab
jupyter lab は、コードを1つずつ確認しながら進めるために利用します
- セルごとにステップ実行しながら結果を確認して進めていくことができます
jupyter lab をインストール
まずは以下のコマンドでjupyterlabをインストールします
ogurin@zabbix_api_srv$ pip3 intstall jupyterlab
インストールが完了したら、起動します
ogurin@zabbix_api_srv$ jupyter lab
`中略`
To access the server, open this file in a browser:
file:///home/ogurin/.local/share/jupyter/runtime/jpserver-27667-open.html
Or copy and paste one of these URLs:
http://localhost:8888/lab?token=xxxxx
or http://127.0.0.1:8888/lab?token=xxxxx
py-zabbixをインストール
まずは最初のセルで、py-zabbixをインストールします
以下をセルの中に入力し、「Shift + Enter」でセルごとに実行します
!pip3 install py-zabbix
次に、今回の処理で必要なpandasとpyzabbixをインポートします
import pandas as pd
from pyzabbix import ZabbixAPI
- 左側の数字は、kernelを起動して以降の実行された順番です
今回は先頭に[3]が表示されていますが、おかしなことをしなければ先頭は[1]になっているはずです
jupyter lab でエラーをすぐに発見出来る
今回、zabbix info の下のセルで変数に格納している値を誤ってしまいました。
そのため、tokenをgetするところで以下のようにエラーとなりました。
この画面を見て、先ほどのzabbix info を修正しエラーの解消にすぐに当たることができました
py-zabbixを利用してzabbix情報を取得する
今回は、host.getを用いてホスト情報の中からホスト名とホストIDを取得します
例えば、このようにhosts.infoに格納した[13]の要素におけるhost名は、dummyというホスト名でした
正しくzabbixから値が取れています
zabbixからInterface情報のアイテムを取得していく際には、hostidが用いられるため、hostidも併せて取得してdataframeへ格納して表示してみます
出力結果を若干加工してしまったため、[13]の要素のみ表示されていますが、実際はすべてのホストについて出力されるはずです
これらを関数にして、しまってもよいと思います
まとめ
このように、jupyter labを利用するとプロセスごとに動作を確認しながら進めるため、初心者が動きを確認する際には便利だと思います
そのほかにも、pythonのnetmikoを利用してネットワーク機器からの返り値を確認したり、いろいろと活用出来るかもしれません