2018年3月12日月曜日

cacti でダッシュボード(もどき)

機器登録も完了して、ほぼ運用体制が完了。こうなるとダッシュボードっぽいものが欲しくなってきました。

デフォルトでは用意されていないので、グーグル先生にきいてみたところ DDN LAB'SさんのCactiで好きなグラフだけ集めたダッシュページを作るが参考になりそうです。

でさっそく htmlファイルを作成してみました。Cacti が動いているローカルサーバのロードアベレージとメモリの状態。
cacti_dashboard01

これでいいかなと思ったのですが、動的にグラフを作成するため数が少ない時は問題なのですが、しょぼい自サーバでノード数が多くなるとリロード時に表示する数分グラフ作成が走るので、画面表示に時間がかかりすぎました。

じゃぁMRTGみたいにグラフのPNGファイルを作っておけばいいんじゃないと思い、5分ごとにグラフを作ることにしました。rrdtool のオプションとか全然知らないので、

  • グラフ表示右端歯車マークをクリック
  • 遷移した場面右端のスパナ(?)みたいなマークをクリック

で表示された RRDtool Command を参考にシェルを作成しました。--start とか --end とかはUNIXタイムで指定してあげる必要がありそうです。

シェルの中で指定することもできるんでしょうけど、自分のスキルでは力及ばず解決に至りませんでした。力業で perlスクリプトを作り、戻り値をセットすることで逃げました。

Cacti が 5分ごとに動いているので、グラフ作成用のシェルを Cactiが動いた後の1分後に動かすようにしました。1,6,11 ... 56 って指定するのが面倒なので調べてみたところ、

# cat /etc/cron.d/cacti
*/5 * * * *     cacti   /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1
1-56/5 * * * *  root    /root/script/makegraph.sh > /dev/null 2>&1

って書いてあげれば自分の要望を満たしてくれることが分かりました。こんな書き方もできるんですねぇ。

で、できたのが↓こちら。
cacti_dashboard02

15分平均はいらないので、最終的には次のようにしました。
cacti_dashboard03

個人的にはこれで満足できるレベル。メモリ使用状況が freeコマンドで表示される free の値が気に入らないので、次は標準で用意されているデータテンプレートとグラフテンプレートを使うのをやめ、自分用に一から作ってみることにします。(freeコマンドとfree値ではなく、availableの値を空き容量として表示させたい。かつ2Gと4Gに線を引いてみたい。)