忍者ブログ

IT-Note

インフラ屋さんのメモ書き

ZabbixのAPIを使うVBAを作り直していく_01

IT業界でZabbixの地位がどんどん高くなっているように思います。
(他ツールの状況を自分が知らないだけかもしれませんが…)

会社内でも一部環境の監視をZabbixで実装しているのですが、
そのグラフ閲覧やらデータの一括受信やらを手動でやっていると非常に手間なので、
Excel VBAを中心にツールを作りました。

作った当初はとりあえず動くことを目的に作っていたのですが、
VBA自体やZabbixの機能などを勉強しながら突貫工事で
ツギハギやコピペも含めて作ったこともあり、
整理して作り直したいなと思うところもあり、その覚書を書いていきます。


まず初めに、必要な部品の整理をします。
主にZabbixと会話するための情報を整理します。

(1)Zabbix APIを使うには、HTTPのPOSTメソッドを使います。
(2)Zabbix APIは基本的にJSON形式でレスポンスを返しますので、JSON形式をデコードする必要があります。
(3)Zabbix APIを使うには、ログインが成功したSESSION_IDのコードを他のHTTPのリクエストに含めることで、APIが反応してくれるようになります。
(4)Zabbixのグラフを取得するには、通常のAPIとは異なるURLにリクエストを行う必要があります。



次に、やりたいこと、欲しい機能を考えます。
私が欲しかったのは、主には以下の2つの機能です。
<1>指定した期間の中で、特定のグラフを画像として保存し、Excelに一覧化させて貼り付ける
<2>指定した期間の中の、特定のアイテムの数値を取得し、Excelに表として記録させる
メインの目的は一定期間毎に実施する、監視対象の環境の正常性確認です。
これで取得した情報を中心に、以下の情報を整理したりします。
・安定して稼働しているか
・以前の状況はどうだったか
・増強、増設の必要性はあるか

Zabbix自体のScreenの機能を使えば、グラフの一括表示などは可能なのですが、
期間指定がしづらかったり、一定期間(たとえば一か月)などで静的なレポートとして
残しておきたい目的では、Screenは少し使いづらいので、その補助的な役割として
機能を実装していきます。


2回目記事へのリンク