VineLinux4.x/サーバ管理/MRTGに監視項目追加
ハードウェアの温度監視 †
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/hc_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/hc_temp.sh
実行してみます。
# /usr/local/bin/mrtg/hc_temp.sh 37 45
それぞれの数値が帰ってくればOK。
MRTGへの追加 †
mrtg.cfgを編集します。
# vi /etc/mrtg.cfg
追加
### HDD & CPU Temperature ### Target[hctemp]: `/usr/local/bin/mrtg/hc_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