Muninの負荷を5分の調整で劇的に減らし、グラフ表示を高速化する方法
サーバ負荷メトリクス分析ツール「Munin」は、導入・運用保守コストが圧倒的に低いのが特徴です。
しかし、たった数十台の監視を行うだけで、5分おきの更新もままならない程のCPU・I/O負荷となります。
設定の手間の掛かるCactiやGangliaへの乗り換えも面倒で仕方ありません。
環境
- CentOS-6.3
- Munin-1.4.7
課題
以下のような課題を抱えているなら、この記事が役立つはずです。動作分析
Muninは5分おきに何をしているのか、解説します。STEP1〜2は低負荷ですが、STEP3以降はCPU・I/Oを必要とする処理です。
解決策
先程の動作分析で、【STEP-3】以降の処理が高負荷である事が分かりました。解決の方向性としては、グラフ精度には影響を与えずにグラフ生成のタイミングを調整する対応とします。
rrdデータからpng形式でグラフの画像書き出しを行う
Muninというプロダクトの設計思想上、長期的視野でのメトリクス分析に用いるものです。その為、ほぼリアルタイムな5分毎のグラフ更新は理想であって、実際の所は1日3回も更新すれば十分ではないでしょうか?
今回の例では、始業前(8:00)・昼休み(13:00)・帰宅前(18:00)の3回の更新とします。
実施方法
上記の解決策を設定に落とし込みます。話は簡単。「/etc/cron.d/munin」を以下の様に書き換えるだけです。
変更後に再起動等は不要です。
なお、munin-limitsに関する記述がある場合には、そのまま残してください。
変更前
# # cron-jobs for munin # */5 * * * * munin test -x /usr/bin/munin-cron && /usr/bin/munin-cron
変更後
# # cron-jobs for munin # */5 * * * * munin test -x /usr/bin/munin-cron && /usr/share/munin/munin-update 0 8,13,18 * * * munin test -x /usr/bin/munin-cron && /usr/share/munin/munin-graph 30 0 * * * munin test -x /usr/bin/munin-cron && /usr/share/munin/munin-htmlさあ、これで軽快なMuninライフをお送りください!