Express5800 TypePJ で sensors を使った監視設定

スポンサーリンク

 NEC Express5800 TypePJ で CentOS 7 を動作させ、監視には Munin を用いている。Sensors の Plugin を組み込めば Fan 回転数や電源の各種電圧も取得出来るので監視しておけば障害を事前に察知出来るかも知れないと思ったから設定してみた。

sensors の設定

 sensors をこれから使うときには sensors-detect コマンドを用いて、マシンで使われている SuperI/O の Chip を判別する必要がある。


# sensors-detect revision 6170 (2013-05-20 21:25:22 +0200)
# System: NEC Express5800/S70 [N8100-9021] [FR1.1]
# Board: NEC MS9666

This program will help you determine which kernel modules you need
to load to use lm_sensors most effectively. It is generally safe
and recommended to accept the default answers to all questions,
unless you know what you're doing.

Some south bridges, CPUs or memory controllers contain embedded sensors.
Do you want to scan for them? This is totally safe. (YES/no):

 特別何か追加設定する必要も無く Enter 連打で終わった。

センサーの名称設定

 sensors-detect 直後では sensors コマンドを叩いても Fan なら Fan1 や Fan2 などと表示されるだけ。電圧も in0 から in5 までと表示されるので、何がどれだか分かりづらい。
 そこで /etc/sensors3.conf を編集する。Express5800 TypePJ のセンサーは adt7490-i2c-7-2e なので、該当する chip の部分を次の様に編集すると良い。

chip "adt7476-*" "adt7490-*"

    label in1 "Vcore"
    label in2 "+3.3V"
    label in3 "+5V"
    label in4 "+12V"
    label in5 "Vbat"

    label fan1 "CPU Fan"
    label fan2 "Chassis Fan"

    set in1_min  0.65
    set in1_max  1.40
    set in2_min  3.3 * 0.90
    set in2_max  3.3 * 1.10
    set in3_min  5.0 * 0.90
    set in3_max  5.0 * 1.10
# Depending on how your ADT7476 is hardwired, you may or may not have
# +12V readings.
#    set in4_min 12.0 * 0.90
#    set in4_max 12.0 * 1.10

    label temp2 "M/B Temp"

 in1_min と in1_max は Vcore の電圧範囲を Intel のスペックシートから拾って来て CPU に合わせた物を書いて上げると良い。

 設定したら改めて sensors コマンドを叩くと次の様に出力される。

adt7490-i2c-7-2e
Adapter: SMBus I801 adapter at 1860
in0:          +1.55 V  (min =  +1.35 V, max =  +1.65 V)
Vcore:        +0.95 V  (min =  +0.65 V, max =  +1.40 V)
+3.3V:        +3.37 V  (min =  +2.96 V, max =  +3.61 V)
+5V:          +5.20 V  (min =  +4.48 V, max =  +5.50 V)
+12V:        +12.13 V  (min = +10.34 V, max = +13.29 V)
Vbat:         +2.43 V  (min =  +0.00 V, max =  +4.48 V)
CPU Fan:      740 RPM  (min =  300 RPM)
Chassis Fan: 1243 RPM  (min =  900 RPM)
fan3:           0 RPM  (min =    0 RPM)
temp1:        +34.0°C  (low  = -127.0°C, high = +127.0°C)
                       (crit = +100.0°C, hyst = +96.0°C)
M/B Temp:     +32.5°C  (low  = -127.0°C, high = +127.0°C)
                       (crit = +100.0°C, hyst = +96.0°C)
temp3:        +32.8°C  (low  = -127.0°C, high = +127.0°C)
                       (crit = +100.0°C, hyst = +96.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +23.0°C  (high = +89.0°C, crit = +105.0°C)
Core 2:       +28.0°C  (high = +89.0°C, crit = +105.0°C)

 temp1, temp3 は恐らく SuperI/O 経由の CPU 温度だと思うが確証が無いので coretemp-isa-0000 に示されるコア温度を見る事にした。

Munin でグラフ化する

 Munin には sensors_ という Plugin が同梱されていたので、これをそのまま利用する。sensors_ を元にして温度とファン回転数と電圧をグラフ化する設定に。

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

 続いて /etc/munin/plugin-conf.d/munin-node.conf に設定を追記する。

[sensors_*]
user root
group root
env.sensors /usr/bin/sensors
env.ignore_volt1 yes
env.ignore_temp3 yes
env.ignore_temp5 yes
env.ignore_fan3 yes

 グラフに必要の無い数値は省きたいので env.ignore_fan3 yes 等と記述している。Fan3 は 0rpm だから不要としている。temp3 と 5 も今回は見ないことにしたから無視。
 このグラフ化しない ignore の記述は Plugin ファイル冒頭に書いてあるやり方ではエラーが出ることに注意。
 設定が完了したら systemctl restart munin-node をやって暫く待つ。あとはグラフを観察するだけとなる。

Munin のグラフを確認する。

 Fan のグラフ。アラートを出す閾値に常時線が引いてあるので見づらい……
sensors_fan-day

 Temp のグラフ。CPU の Core 温度と M/B 温度が描かれている。
sensors_temp-day

 Volt のグラフ。各電圧毎に閾値の範囲が描写されるからかなり見づらい。
sensors_volt-day

まとめ

 sensors の設定自体は簡単で問題も無かったが、Munin の Plugin が説明通りに設定してもダメで、結局ググって見つけた海外の情報で動作出来たと言う具合に面倒だった。
 これでハード的な問題も事前に察知出来ればいいなと思う所。Fan が壊れて停止したりだとか、電源がヘタって電圧が落ち込む等々と予兆はある程度見えると思うので。

スポンサーリンク