VineLinux4.x/サーバ管理/MRTGに監視項目追加 のバックアップソース(No.2)

* ハードウェアの温度監視 [#e151dfd6]

** HDD温度の取得 [#a06e115c]

HDDのSMART値から温度を取得するためにsmartmontoolsをインストールします。

 # apt-get install smartmontools

HDDの情報を確認します(/dev/hdaは対象HDDに適宜変更)。

 # smartctl -A /dev/hda
 smartctl version 5.38 [i686-pc-linux-gnu] Copyright (C) 2002-8 Bruce Allen
 Home page is http://smartmontools.sourceforge.net/
 
 === START OF READ SMART DATA SECTION ===
 SMART Attributes Data Structure revision number: 16
 Vendor Specific SMART Attributes with Thresholds:
 ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
 :
 :
 194 Temperature_Celsius     0x0002   148   148   000    Old_age   Always       -       37 (Lifetime Min/Max 15/56)
 :

194 Temperature_Celsius・・・が表示されればOKです。右側の37という数字が現在のHDD温度です。

**CPU温度の取得(IBM Thinkpad X23の場合) [#pa45e2f5]

CPUの温度が取得できるか確認。

 # cat /proc/acpi/ibm/thermal
 temperatures:   45 44 43 0 0 0 0 0

45という数字が現在のCPU温度です。

**温度取得スクリプトの作成 [#u7c449b9]

/usr/sbin/smartctl -A /dev/hda および、cat /proc/acpi/ibm/thermal の結果から温度値のみを取得するスクリプトを作成します。

 # vi /usr/local/bin/mrtg/hw_temp.sh
>新規に作成します。
 #!/bin/sh
 /usr/sbin/smartctl -A /dev/hda|grep Temperature_Celsius|awk '{print $10}'
 awk '{print int($2)}' /proc/acpi/ibm/thermal

実行権限を与えます。
 # chmod 755 /usr/local/bin/mrtg/hw_temp.sh

実行してみます。
 # /usr/local/bin/mrtg/hw_temp.sh
 37
 45
それぞれの数値が帰ってくればOK。

**MRTGへの追加 [#mfd8ed4c]

mrtg.cfgを編集します。

 # vi /etc/mrtg.cfg
>追加
 ### Hardware Temperature ###
 Target[hwtemp]: `/usr/local/bin/mrtg/hw_temp.sh`
 MaxBytes[hwtemp]: 56
 Options[hwtemp]: gauge, growright, absolute, integer, nopercent, noinfo
 Unscaled[hwtemp]: dwmy
 YLegend[hwtemp]: Temperature
 ShortLegend[hwtemp]: deg.
 LegendI[hwtemp]: TEMP 
 LegendO[hwtemp]: TEMP 
 Legend1[hwtemp]: HDD温度
 Legend2[hwtemp]: CPU温度
 Title[hwtemp]: ハードウェア温度
 PageTop[hwtemp]: <H1>ハードウェア温度</H1>
>MaxBytes[hwtemp]: には温度の最大値を記述します。

MRTGを実行します。

 # /usr/bin/mrtg /etc/mrtg.cfg

インデックスページを作成します。

 # indexmaker --columns=1 /etc/mrtg.cfg > /home/httpd/html/mrtg/index.html

*バッテリ状態の監視(ACPI対応パソコンの場合) [#d828f9ab]

**バッテリ状態の確認 [#xf7c7317]

バッテリの状態が取得できるか確認します。

 # cat /proc/acpi/battery/BAT0/state
 present:                 yes
 capacity state:          ok
 charging state:          charged
 present rate:            0 mW
 remaining capacity:      37310 mWh
 present voltage:         12413 mV
remaining capacity: が現在のバッテリ容量、present voltage: が現在のバッテリ電圧です。

バッテリの情報を確認します。

 # cat /proc/acpi/battery/BAT0/info
 present:                 yes
 design capacity:         43200 mWh
 last full capacity:      37780 mWh
 battery technology:      rechargeable
 design voltage:          10800 mV
 design capacity warning: 2160 mWh
 design capacity low:     432 mWh
 capacity granularity 1:  1 mWh
 capacity granularity 2:  1 mWh
 model number:            IBM-02K6846
 serial number:             630
 battery type:            LION
 OEM info:                Panasonic
design capacity: がこのバッテリの定格容量(最大値)だと思われます。

**バッテリ状態取得スクリプトの作成 [#j753f3ac]

cat /proc/acpi/battery/BAT0/stateの結果から、容量と電圧の値をスクリプトで取得してMRTGに渡すことにします。

 # vi /usr/local/bin/mrtg/batt_stat.sh
>新規に作成します。
 #!/bin/sh
 grep remaining /proc/acpi/battery/BAT0/state | awk '{print int($3)}'
 grep voltage /proc/acpi/battery/BAT0/state | awk '{print int($3)}'

実行権限を与えます。
 # chmod 755 /usr/local/bin/mrtg/batt_stat.sh

実行してみます。
 # /usr/local/bin/mrtg/batt_stat.sh
 37280
 12413
それぞれの数値が帰ってくればOK。

**MRTGへの追加 [#l56cc18e]

mrtg.cfgを編集します。

 # vi /etc/mrtg.cfg
>追加
 ### Battery State ###
 Target[bstat]: `/usr/local/bin/mrtg/batt_stat.sh`
 MaxBytes[bstat]: 43200
 Options[bstat]: gauge, integer
 Unscaled[bstat]: dwmy
 YLegend[bstat]: Battery State
 ShortLegend[bstat]:
 kMG[bstat]: m,,k
 LegendI[bstat]: capacity[Wh]
 LegendO[bstat]: voltage[V]
 Legend1[bstat]: バッテリ容量[Wh]
 Legend2[bstat]: バッテリ電圧[V]
 Title[bstat]: バッテリ状態
 PageTop[bstat]: <H1>バッテリ状態</H1>
>
MaxBytes[bstat]: には先ほど調べたバッテリの定格容量(最大値)を記述します。

MRTGを実行します。

 # /usr/bin/mrtg /etc/mrtg.cfg

インデックスページを作成します。

 # indexmaker --columns=1 /etc/mrtg.cfg > /home/httpd/html/mrtg/index.html


* コメント [#nb1a6c49]
#comment