この間、
FedoraサーバのMRTGにCPUの温度を監視する機能を追加してみました。
CPUの温度は「 lm_sensors 」というパッケージを使ってモニタできます。
Fedora10には「 lm_sensors 」はインストールされてました。
もし、インストールされてなければこんな感じで。
1
| # yum install lm_sensors
|
実施手順
1.センサーを検出
1
2
3
4
5
| [root@noah ~]# sensors-detect
# sensors-detect revision 5249 (2008-05-11 22:56:25 +0200)
・・・( 省略 )・・・
Do you want to overwrite /etc/sysconfig/lm_sensors? (YES/no):
Starting lm_sensors: loading module i2c-i801 smsc47m192 sms[ OK ]
|
途中何ヶ所か[ yes/no ]聞かれるが、全て[ Enter ]でOK!
2.「 lm_sensors 」動作確認
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| [root@noah ~]# sensors
smsc47m192-i2c-0-2d
Adapter: SMBus I801 adapter at 2000
+2.5V: +2.50 V (min = +0.00 V, max = +3.32 V)
VCore: +1.15 V (min = +0.00 V, max = +2.99 V)
+3.3V: +3.35 V (min = +0.00 V, max = +4.38 V)
+5V: +5.08 V (min = +0.00 V, max = +6.64 V)
+12V: +12.19 V (min = +0.00 V, max = +15.94 V)
VCC: +3.35 V (min = +0.00 V, max = +4.38 V)
+1.5V: +1.55 V (min = +0.00 V, max = +1.99 V)
+1.8V: +1.77 V (min = +0.00 V, max = +2.39 V)
Chip Temp: +35.0°C (low = -127.0°C, high = +127.0°C)
CPU Temp: +56.0°C (low = -127.0°C, high = +127.0°C)
Sys Temp: +46.0°C (low = -127.0°C, high = +127.0°C)
cpu0_vid: +2.050 V
smsc47m1-isa-0680
Adapter: ISA adapter
fan1: 1228 RPM (min = 1280 RPM, div = 4) ALARM
fan2: 0 RPM (min = 1280 RPM, div = 4) ALARM
|
3.シェルスクリプトを作成
例として root に「 sensors.sh 」というファイルに以下のように記述。
(今回は「 CPU 」と「 Chip 」の温度を監視してみます)
1
2
3
4
5
| [root@noah ~]# vi /root/sensors.sh
#!/bin/sh
/usr/bin/sensors | grep CPU | awk '{print $3}' | sed -e 's/+//' -e 's/[^0-9+\.].*//'
/usr/bin/sensors | grep Chip | awk '{print $3}' | sed -e 's/+//' -e 's/[^0-9+\.].*//'
|
4.「 sensors.sh 」に実行権を与える。
1
| [root@noah ~]# chmod 755 sensors.sh
|
5.MRTGの設定ファイルの修正
MRTGの設定ファイル「 /etc/mrtg/mrtg.cfg 」の最後に以下のような記述を追加する。
実際には、当方のサーバはシステムの文字コードが「 UTF−8 」なので、設定ファイルの文字コードを「 EUC 」に変換するために、以下のように「 /etc/mrtg/mrtg.cfg.org 」を編集して「 /etc/mrtg/mrtg.cfg 」にEUC変換してコピーするというようなことをしています。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| [root@noah ~]# vi /etc/mrtg/mrtg.cfg.org
・・・( 省略 )・・・
### CPU Temp ###
Target[cputemp]: `/root/sensors.sh`
MaxBytes[cputemp]: 100
Title[cputemp]: CPU・チップセット温度
PageTop[cputemp]:
<h1>CPU・チップセット温度</h1>
Options[cputemp]: growright,absolute,gauge,nopercent,noinfo
WithPeak[cputemp]: ymw
#unscaled[cputemp]: dwmy
YLegend[cputemp]: Temperature
ShortLegend[cputemp]: C
LegendI[cputemp]: CPU
LegendO[cputemp]: Chip
Legend1[cputemp]: CPU温度
Legend2[cputemp]: ChipSet温度
[root@noah ~]# nkf -e /etc/mrtg/mrtg.cfg.org > /etc/mrtg/mrtg.cfg
|
6.各画面の統合
元々あるMRTGの各種グラフが統合された画面に「 CPU・チップセット温度 」も同じように統合するには、以下のようにする。
・MRTGインデックスページ作成
1
2
3
| [root@noah ~]# indexmaker --columns=1 \
--addhead="<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=euc-jp\">" \
/etc/mrtg/mrtg.cfg > /var/www/html/mrtg/index.html
|
・MRTGインデックスページ編集
1
2
| [root@noah ~]# vi /var/www/html/mrtg/index.html
<!-- <meta http-equiv="content-type" content="text/html; charset=iso-8859-15" > --> < - - - コメントアウト(文字化け対策)
|
7.動作確認
「 http://%E3%82%B5%E3%83%BC%E3%83%90%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9/mrtg/ 」にアクセスしてみる。
MRTGが正常に動作していれば、設定した間隔(ここでは5分)でモニタできるはずです。
↓↓こんな感じ↓↓

「 CPU・チップセット温度 」をクリックして、以下のようになるはず。


設定は以上です。
・MRTGの統合画面での表示順は「 /etc/mrtg/mrtg.cfg 」を編集してご自由に変更してください。
※MRTG自体の操作については こちら を参照してください。
しかし、CPUの温度が60度近くもあるって、おかしくない?
去年の夏場から今のマシンでサーバ稼働させてるけど、たぶん夏場はもっと大変なことになってたんだろう!
と思うとなんともおそろしい。
ちなみに、ケースの外からエアフロー考えてUSB接続のミニ扇風機で風を送ってやると、何とか55度くらいまで下がるけど。。。
ということで、CPUファンを付けることを考えたが、mini-ITX用ケース(Noah800シリーズ)なんで、ケース内に余裕がない。
ならば、ケースファンを付けようということで、Noah800シリーズ用の拡張ファン(Noah Fan Kit 1700)を付けることにしました。
ということで、ネットで探して注文しました。(¥3,000ほどでした)
(残念ながら、楽天の各ショップにはありませんでした)
それでは、また。