ZabbixのAPIを使うVBAを作り直していく_01 zabbix 2015年08月14日 0 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回目記事へのリンク