サーバー機温度監視修正


先に行った「サーバー監視へのHDD温度・CPU温度」の監視追加、どうも値が変わっていないようだったので、再び修正を行いました。


この記事を書いている時点では作業終了後間もない為、変化が確認出来ず、本当に直っているかはもう少し時間が必要ですが、他にも少々設定をいじったので防備録として記載。



今回、修正を行った際、HDD温度は「HDD温度」と「エアフロー温度」を取得するよう変更。


また「CPU温度」も「Core 0」「Core 1」の温度を取得するようそれぞれ変更。


以下、その手順。


HDD・エアフロー温度の取得


まずHDD・エアフロー取得用のスクリプトを新規作成。

[Bash]vi /usr/local/bin/hddtemp.sh[/Bash]


[Bash]#!/bin/sh[/Bash]

[php]<pre class="wp-block-syntaxhighlighter-code">LANG=C
export LANG</pre>
<!-- /wp:syntaxhighlighter/code -->
DEV=sda

/usr/sbin/smartctl -A /dev/sda | grep Temperature_Celsius | awk '{print $10}'
/usr/sbin/smartctl -A /dev/sda | grep Airflow_Temperature_Cel | awk '{print $10}'
UPTIME=`uptime | awk '{print $3$4}' | sed -e "s/,//g"`
echo "$UPTIME"
echo "HDD Temperature"
[/php]

そしてパーミッション設定。


[php]chmod 755 /usr/local/bin/hddtemp.sh[/php]

CPU温度取得準備


CPU温度も取得できるように「lm_sensors」をインストール。


[Bash]yum -y install lm_sensors[/Bash]

CPU温度の取得

続いてCPU温度取得用スクリプトを新規作成。


[Bash]vi /usr/local/bin/cputemp.sh[/Bash]

[php]#!/bin/sh
/usr/bin/sensors | grep 'Core 0' | awk '{print $3}' | sed -e 's/+//' -e 's/[^0-9+\.].*//'
/usr/bin/sensors | grep 'Core 1' | awk '{print $3}' | sed -e 's/+//' -e 's/[^0-9+\.].*//'
UPTIME=`uptime | awk '{print $3$4}' | sed -e "s/,//g"`
echo "$UPTIME"
echo "CPU Temperature"[/php]

そしてこちらもパーミッション設定。


[php]chmod 755 /usr/local/bin/cputemp.sh[/php]

 MRTG設定ファイル修正


[Bash]vi /etc/mrtg/mrtg.cfg.org[/Bash]

ディスク使用率設定の下(設定ファイルの最後?)に以下の記述を追加。


[php]Target[hddtemp]: `/usr/local/bin/hddtemp.sh`
MaxBytes[hddtemp]: 100
Title[hddtemp]: HDD Temperature・Airflow Temperature
PageTop[hddtemp]: <h1>ハードディスク・エアフローの温度</h1>
Options[hddtemp]: growright,absolute,gauge,nopercent,noinfo
WithPeak[hddtemp]: ymw
YLegend[hddtemp]: Temperature
ShortLegend[hddtemp]: C
LegendI[hddtemp]: HDD Temperature
LegendO[hddtemp]: Airflow Temperature
Legend1[hddtemp]: HDD 温度
Legend2[hddtemp]: エアフロー温度
##### CPU Temperature #####
Target[cputemp]: `/usr/local/bin/cputemp.sh`
ThreshMaxI[cputemp]: 65
ThreshMaxO[cputemp]: 65
MaxBytes[cputemp]: 70
Unscaled[cputemp]: dwmy
Options[cputemp]: gauge,growright,noinfo,nopercent,unknaszero
Title[cputemp]: CPU Temperature
PageTop[cputemp]: <H1>CPU 温度</H1>
ShortLegend[cputemp]: ℃
YLegend[cputemp]: CPU Temperature (Celsius)
LegendI[cputemp]: Core 0
LegendO[cputemp]: Core 1
Legend1[cputemp]: Core 0 温度
Legend2[cputemp]: Core 1 温度[/php]

そして文字コード変換とインデックスページ再作成。


[Bash]nkf -e /etc/mrtg/mrtg.cfg.org > /etc/mrtg/mrtg.cfg[/Bash]

[Bash]indexmaker --columns=1 /etc/mrtg/mrtg.cfg > /var/www/mrtg/index.html[/Bash]

最後に手動でデータ取得をかけてみてエラーを吐かないかチェック


[Bash]./mrtg.sh[/Bash]

以上で作業は終了。


今回、作業にあたって参考にしたのは先に参照したのと同じこちらのサイト様に加え、こちらとこちらのサイト様。


さて今度こそ直るといいなぁ(´・ω・`)

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください