最近はいろいろなグラフ化ツールが出ています。 例えば、GrafanaとかKibanaとかあります。 人気の理由の一つに、自分でダッシュボードを作成できるというのもあるかと思います。
さて、我らがCactiにもそんな機能は、・・・・・・ないですね。 なんとかCactiでもダッシュボードを作成できないのでしょうか?
問題1.グラフのフィルター機能の不足
Cactiには複数のグラフを表示させる時に以下の3つのフィルターが利用できます。
たとえば、スイッチAのポートGi1/0/1とスイッチBのポートGi1/0/1を一つのページで見たい時、どうなるでしょうか?
- Hostでフィルターをかけようとしても、一つのHostしか選択できないため、上手くいきません。
- Templateでフィルターをかけようとし、Interface - Traffic(bit/sec) というのを選ぶと、Gi1/0/1だけでなく、全てのインターフェースが表示されてしまいます。
- SearchでGi1/0/1とフィルターをかけるとGi1/0/10も一緒に表示されたりします。
TemplateとSearchを組み合わせると、ある程度ましなフィルターができる場合もあるのですが、なかなか期待通りの一覧が出せないことが多いです。
問題2.Cactiサーバ1台ごとしか見れない
GREEさんのブログでCacti による監視サーバ分散の仕組みというのが紹介されていますが、普通はパッとはできません。 さすがGREEさん、凄いなーと思う次第です。
なお、Cactiロードマップによると、Cacti 1.1.0にDistributed and remote pollingという機能が予定されています。 ただ、ここ数年0.8.8から変化ないので・・・・・・。
ちなみにさっき知ったのですが、2015年3月9日にmultipollerserverというプラグインが公開されていました。 複数Cactiサーバの連携に使えるかもしれません。
解決編
上記の2つの問題を解決する方法があります。 しかも、超簡単なローテクです。 サーバ側の変更は不要です。 自分のPCでHTMLファイル一つ作れば終わりです。
ネタ元はこちらです:Generating graphs for a remote webpage
おもむろにエディタを開いてhtmlファイルを書きましょう。 以下のhtmlコードを表示させたいグラフの数だけ書いてください。
[html] <a href="http://[Cacti-Server-1]/cacti/graph.php?action=view&rra_id=all&local_graph_id=[Graph-ID]"> <img src="http://[Cacti-Server-1]/cacti/graph_image.php?local_graph_id=[Graph-ID]&rra_id=5&graph_width=300&graph_height=100&graph_nolegend=true"> </a> [/html]
CactiのグラフにはそれぞれGraph-IDがついていて、以下の方法で確認できます。
または、実際のグラフの上にカーソルを持ってくるとURLにgraph_idが入っていたりします。
これで好きなグラフの一覧が好きなだけ作れますね!
こんな感じで簡単に作れます!
まあ私のデザインはアレですが、機能的に問題ないでしょう。 Cactiのダッシュボードとは言えないかもしれませんが、思う存分HTML,CSS,JavaScriptを書けば思うがままですね?
なお、<META HTTP-EQUIV="Refresh" CONTENT="300">を書けば、5分で自動更新できます。
オフィスのディスプレイで重要なメトリックを表示させ続けるのもいいかもしれません。