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


ハードウェアの温度監視

HDD温度の取得

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の場合)

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

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

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

温度取得スクリプトの作成

/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への追加

mrtg.cfgを編集します。

# vi /etc/mrtg.cfg

追加

### HDD & CPU Temperature ###
Target[hctemp]: `/usr/local/bin/mrtg/hw_temp.sh`
MaxBytes[hctemp]: 60
Options[hctemp]: gauge, growright, absolute, integer, nopercent, noinfo
Unscaled[hctemp]: dwmy
YLegend[hctemp]: Temperature
ShortLegend[hctemp]: deg.
LegendI[hctemp]: HDD TEMP;
LegendO[hctemp]: CPU TEMP;
Legend1[hctemp]: HDD温度
Legend2[hctemp]: CPU温度
Title[hctemp]: HDD & CPU 温度
PageTop[hctemp]: <H1>HDD & CPU温度</H1>

MaxBytes[hctemp]: には温度の最大値を記述します。

MRTGを実行します。

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

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

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

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

バッテリ状態の確認

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

# 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: がこのバッテリの定格容量(最大値)だと思われます。

バッテリ状態取得スクリプトの作成

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への追加

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

コメント