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


HDDの温度監視

smartmontoolsのインストール

# apt-get install smartmontools

/dev/hdaの情報を表示

# smartctl -a /dev/hda
smartctl version 5.33 [i686-pc-linux-gnu] Copyright (C) 2002-4 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
:
:
193 Load_Cycle_Count        0x0012   100   100   050    Old_age   Always       -       248
194 Temperature_Celsius     0x0002   122   122   000    Old_age   Always       -       45 (Lifetime Min/Max 13/61)
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0
:
:

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

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

/usr/sbin/smartctl -A /dev/hdaの結果から温度の値のみをスクリプトで取得してMRTGに渡すことにします。

# vi /usr/local/bin/mrtg/hdd_temp.sh

新規に作成します。

#!/bin/sh
/usr/sbin/smartctl -A /dev/hda|grep Temperature_Celsius|awk '{print $10}{print $10}'

MRTGは入力が2系統なためprintで同じデータを2つ出力しています。

実行権限を与えます。

# chmod 755 /usr/local/bin/mrtg/hdd_temp.sh

mrtg.cfgの編集

# vi /etc/mrtg.cfg

追加

### HDD Temperature ###
Target[htemp]: `/usr/local/mrtg-2/hdd_temp.sh`
MaxBytes[htemp]: 56
Options[htemp]: gauge, growright, absolute, integer, nopercent, noinfo
Unscaled[htemp]: dwmy
YLegend[htemp]: Temperature
ShortLegend[htemp]: deg.
LegendI[htemp]: TEMP 
LegendO[htemp]: TEMP 
Legend1[htemp]: HDD温度
Legend2[htemp]: HDD温度
Title[htemp]: HDDの温度
PageTop[htemp]: <H1>HDDの温度</H1>

MRTG実行

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

インデックスページの作成

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

CPUの温度監視(IBM Thinkpad X23の場合)

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

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

45という数値が現在のCPU温度。

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

cat /proc/acpi/ibm/thermalの結果から温度の値のみをスクリプトで取得してMRTGに渡すことにします。

# vi /usr/local/bin/mrtg/cpu_temp.sh

新規に作成します。

#!/bin/sh
awk '{print int($2)}{print int($2)}' /proc/acpi/ibm/thermal 

MRTGは入力が2系統なためprintで同じデータを2つ出力しています。

実行権限を与えます。

# chmod 755 /usr/local/bin/mrtg/cpu_temp.sh

mrtg.cfgの編集

# vi /etc/mrtg.cfg

追加

### CPU Temperature ###
Target[ctemp]: `/usr/local/bin/mrtg/cpu_temp.sh`
MaxBytes[ctemp]: 56
Options[ctemp]: gauge, integer, nopercent
Unscaled[ctemp]: dwmy
YLegend[ctemp]: Temperature
ShortLegend[ctemp]: deg.
LegendI[ctemp]: Temp
LegendO[ctemp]: Temp
Legend1[ctemp]: CPU温度
Legend2[ctemp]: CPU温度
Title[ctemp]: CPU 温度
PageTop[ctemp]: <H1>CPU 温度</H1>

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

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

コメント