muninのプラグインの追加/削除

munin


先日、muninをインストールしました が、そのときはデフォルトでインストールされたプラグインの組をそのまま使っていました。

大抵の場合はそれで十分なのですが、私個人としては、電力や熱にかかわる項目とHDDに関する項目は確実に取れるように、もうちょっとプラグインを厳選したいと思います。

今日調整する内容は以下の通りです。

  • NTPプラグインの停止
  • hddtemp_smartctl の修正
  • smartctl による情報の記録
  • lm_sensors の情報の記録
  • CPUの動作周波数の記録

munin-nodeの停止

プラグインの追加/削除や設定の変更をしている間は munin-node を止めていおいたほうが無難です。

# /sbin/service munin-node stop
Stopping Munin Node agents:                                [  OK  ]

NTPプラグインの停止

CentOSの場合、時刻合わせに使用するNTPサーバーは pool.ntp.org プロジェクトによるものなので、特定の固定したサーバーに時刻合わせにいくわけではありません。

そういったわけで、muninのNTPプラグインで記録を取る意味は無いので、さっくり停止しましょう。

プラグインの削除は、 /etc/munin/plugins/ ディレクトリ中にある、該当のシンボリックリンク(と、気になるならこれまでに記録していたデータのファイル)を削除するだけでOKです。

# rm /etc/munin/plugins/ntp_*
# rm /var/lib/munin/localhost/localhost-ntp_*.rrd

hddtemp_smartctl の修正

hddtemp_smartctl はその名の通り、smartctlを使ってSMART情報を読み、その中のHDDの温度を記録してくれるプラグインです。

ところが、デフォルトではDVDドライブも対象にしてしまっているうえ、SATAのディスクは読めていなかったので、調整が必要でした。

設定は /etc/munin/plugin-conf.d/* に記述すれば良い((/etc/munin/plugin.conf というファイルはトラップです。無視しましょう(笑)))のですが、 plugin-conf.d には既に hddtemp_smartctl があったので、それを修正しました。

# vi /etc/munin/plugin-conf.d/hddtemp_smartctl
(以下のように修正)
# cat /etc/munin/plugin-conf.d/hddtemp_smartctl
[hddtemp_smartctl]
user root
env.drives hda sda
env.type_sda ata

hdaはIDEのHDDで、sdaがS-ATAのHDDです。この2つを drives に列挙することで、計測対象を明示しています。 (ちなみに、sdbとしてDVD-Rドライブが繋がっていて、最初はこれも計測対象になっていました)

また、S-ATAのHDDはSMARTの取得の際に -d ata のオプションが必要なので、それを明示するため type_sda 環境変数ata と設定しました。

smartctl による情報の記録

温度以外にも、SMARTからはHDDの障害を予測する上で重要なデータが取得できるので、できるだけログをとっておくことにします。

そのためのプラグインは /usr/share/munin/plugins/smart_ にありますので、取得したいドライブに合わせた名前でシンボリックリンクを張ります。

# ln -s /usr/share/munin/plugins/smart_ /etc/munin/plugins/smart_hda
# ln -s /usr/share/munin/plugins/smart_ /etc/munin/plugins/smart_sda

また、このプラグインの実行にはroot権限が必要ですし、S-ATAの場合はオプションを弄る必要もあります。

# vi /etc/munin/plugin-conf.d/smart_
[smart_*]
user root

[smart_sda]
env.smartargs -d ata

lm_sensors の情報の記録

先日設定したlm_sensors を読み取るためのプラグインもmuninに同梱されています。muninインストール前にlm_sensorを設定しておけば、muninの自動設定によってプラグインが有効になっていたはずなのですが、今回は順番が前後してしまったので、個別にプラグインを追加します。

といっても、することは、プラグインの実体である /usr/share/munin/plugins/sensors_ へのシンボリックリンクとして /etc/munin/plugins/ に sensors_fan sensors_volt sensors_temp の3つのファイルを作成するだけです。

# ln -s /usr/share/munin/plugins/sensors_ /etc/munin/plugins/sensors_fan
# ln -s /usr/share/munin/plugins/sensors_ /etc/munin/plugins/sensors_volt
# ln -s /usr/share/munin/plugins/sensors_ /etc/munin/plugins/sensors_temp

ちなみに、この3つの名前は、プラグインのソースを読めばわかりますが、プラグインにsuggestというオプションを付けて実行することで教えてもらえます。

# /usr/share/munin/plugins/sensors_ suggest
fan
volt
temp

CPUの動作周波数の記録

先日、cpufreqのモジュールも組み込んだので、その周波数の変動も記録しておくことにしましょう。

残念ながら、この目的にあうプラグインはmuninには同梱されていませんでした。 しかし、このくらい需要のありそうなプラグインならどこかの誰かが作成しているはずなので、ここはそちらにのっかることにします。

色々な人が作成したプラグインはこちらのサイトにまとまっています。→ http://muninexchange.projects.linpro.no/

このカタログから探してみたところ、私の目的に該当しそうなのは、 cpufreq-info か cpuspeed か cpuspeed2 あたりなのですが、ソースを見たところ、cpuspeed2 がデキが良さそうだったので、こちらをダウンロードして使います。

# mkdir -p /usr/local/share/munin/plugins/
# cd /usr/local/share/munin/plugins/
# wget "http://muninexchange.projects.linpro.no/download.php?phid=243"
(中略)
23:58:38 (38.4 MB/s) - `cpuspeed2' saved [1035/1035]
# chmod +x cpuspeed2
# ln -s /usr/local/share/munin/plugins/cpuspeed2 /etc/munin/plugins/

munin-node サービスの再開と動作確認

一通り設定が済んだら、munin-node サービスを再開させて暫く放置し、きちんとログが取れていることを確認します。

# /sbin/service munin-node start
Starting Munin Node:                                       [  OK  ]

本当はもう少し設定したい事があるのですが、長くなってしまったのでまた後日。

(2008-07-03 追記: 続きを書きました)