IPMIを使ってHP ProLiant ML115の温度を監視する

FreeBSD 7.2-RELEASEをインストールしたML115 G1は、騒音対策でCPU FANを鎌風2の風に交換してる。ファンコンでファンの回転数を制御できるんだけど、CPUの温度とCPU FANの回転数を連動させられないので、CPUの温度を気にしておく必要がある。
以前はmbmonを使ってたけど、ML115だと使えなさそう。その代わり、IPMIでセンサー情報が取得できるので使ってみた。

準備

まずはFreeBSDからIPMIが見えるように準備する。IPMIのドライバはすでにbase systemに取り込まれてるので、kernel moduleをloadする。

# kldload ipmi

こんなかんじでipmi0その他のデバイスが認識されたらOK。

ipmi0: <IPMI System Interface> port 0xca2-0xca3 on acpi0
ipmi0: KCS mode found at io 0xca2 on acpi
ipmi0: IPMI device rev. 1, firmware rev. 2.2, version 2.0
ipmi0: Number of channels 1
ipmi0: Attached watchdog
ipmi1: <IPMI System Interface> on isa0
device_attach: ipmi1 attach returned 16
ppc0: cannot reserve I/O port range
sio1: configured irq 3 not in bitmap of probed irqs 0
sio1: port may not be enabled

あとは、再起動した後もipmi.koがloadされるように、/boot/loader.confに以下を記述しておく。

ipmi_load="YES"

ipmitoolのインストール

IPMI経由で情報をゲットするipmitoolというツールがあるので、インストールする。portsならsysutils/ipmitoolから。
ちなみに、sysutils/ipmi-kmodもあるけど、こっちは5.3や6.1へのbackportなので、7.2-RELEASEだと不要。

ipmitoolを使ってセンサー情報を取得する

IPMI経由では、サーバに関する多くの情報がゲットできる。とりあえず、温度を含むセンサー情報をゲットしてみる。以下では温度に間係する部分だけ抜粋した。他には、FANの回転数や電源電圧などが取得できる。

# ipmitool sensor list
多いので省略
RCPU Diode 1     | 36.000     | degrees C  | ok    | na        | na        | na        | na        | 85.000    | na
Ambient          | 27.000     | degrees C  | ok    | na        | na        | na        | na        | 53.000    | na
Local VRD0 Temp  | 33.000     | degrees C  | ok    | na        | na        | na        | na        | 85.000    | na

あとはわかりやすいようにグラフにするか。muninのpluginを書くのがよさそう。