SATA接続のHDD温度をグラフ化する with Munin

Muninはすごく簡単に、トラフィックや負荷をグラフ化してくれるものですが、標準稼働しているHDD温度プラグインではなぜかSATA接続のHDD温度をグラフ化することはできません。
面倒なので、「hddtemp」でいいじゃんみたいなものはなしで。(笑)

プラグインの名前からもどうやら、S.M.A.R.T.を利用して温度を取得しているようなのですが、ターミナル上で「smartctl」を実行すると、何やら表示される。どうやら、smartctlがないために取得できないわけではないらしい・・・。
そしたら、なぜか。グラフを見ると、「hda」は取得しようとしているようで、hdaの情報が習得できるかどうか・・・。結果、どうやらhdaはCD/DVDドライブらしいので、これは温度が取得できるはずはないですね。
ということは、HDDはどこへ?以前の記憶をたどりに考えてみると、確かSATA接続のHDDは「sda」や「sdb」などになるはずだったので、sdaの情報を取得。見事ビンゴ。

ではでは、いったい全体、なぜsdaは取得できないのか。プラグインを見てみることに。

# On Linux, we know how to enumerate ide drives. SCSI is not as easy
if (-d ‘/proc/ide’) {
opendir(IDE, ‘/proc/ide’);
@drives = grep /hd[a-z]/, readdir IDE;
closedir(IDE);
}

どうやら、ここで接続されているドライブを認識しているらしい。「SCSI is not as easy」とか書かれていて、SATAはもしかしたら無理かも(sdaなどはSCSIと同じデバイス名)と思いましたが、「locate sda」などを駆使して、がんばってとりあえず、下のように修正。

# On Linux, we know how to enumerate ide drives. SCSI is not as easy
if (-d ‘/sys/block‘) {
opendir(IDE, ‘/sys/block‘);
@drives = grep /[h|s]d[a-z]/, readdir IDE;
closedir(IDE);
}

なにか問題あるかもしれませんが、これで動いているのでよしとしましょう。(笑)
もっといい方法や、問題などがありましたら教えてくださると幸いです。(汗)

ちなみに、どの環境でも正常に動くわけではないかもしれませんので、変更は自己責任でお願いしますね!!

以上、適当な自分宛メモでした。(笑)


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です