Linux Tips | |
![]() |
MRTGでCPUの温度変化をグラフ化するには 北浦訓行 |
MRTGでハードディスクの温度変化をグラフ化するにはで説明したとおり、MRTGを使えば外部プログラムによって得た数値をグラフ化することができる。ここでは、CPUの温度変化をグラフ化する方法を紹介する。
CPUの温度は、「lm_sensors」というプログラムで測定できる。lm_sensorsのインストールおよび実行方法については、CPUの温度やファンの回転数などをモニタするにはで紹介している。
lm_sensorsを実行すると、以下のような測定結果が得られる。テストに使用したPCの場合、ファンの回転数を得ることができなかったが、マザーボードの温度を測定することができるようなので、CPUと合わせてマザーボードの温度もグラフ化することにする(MRTGは1つのグラフで値を2つ使用するため)。
# sensors |
MRTGの設定は、/etc/mrtg/mrtg.cfgに行う。ここでは、MRTGでハードディスクの温度変化をグラフ化するにはで行った設定を丸ごとコピーして、それを変更することにする。
ハードディスクの温度測定では、「Target[hddtemp]」としたが、このhddtempをすべてcputempに変更する。これによって、Webブラウザでcputemp.htmlというファイルを開けば、CPUとマザーボードの温度変化がグラフで現れることになる。hddtempの設定をすべて残しておけば、hddtemp.htmlを開くことによって、ハードディスクの温度変化も知ることができる。
もう1つ重要なのは、「Target[cputemp]」で入力するCPUとマザーボードの測定結果だ。測定プログラムは、上記のとおりsensorsコマンドを使用するが、結果の表示が多岐にわたるため、そこからCPUとマザーボードの温度だけを取り出す必要がある。
幸いなことに、sensorsの出力は測定結果の数値が変化するだけで、行数などは固定されている。上記の測定結果では、マザーボードの温度が13行目に、CPUの温度が14行目に表示されるため、13行目と14行目の最初に出てくる数字を抜き出せばいいことになる。
ここでは、sensorsの出力結果からgrepでTempという文字列がある行を抜き出し、awkで測定結果を得て、sedで数値だけを取り出している(頭の「+」と単位の「℃」を削除)。sensorsの出力結果はマザーボードによって異なるので、環境に応じて「Target[cputemp]」を変更する必要がある。複雑な処理が必要な場合は、独立したシェルスクリプトを書いて、「Target[cputemp]」でそのシェルスクリプトを実行するようにした方がいいだろう。
Target[cputemp]: `/usr/bin/sensors | grep Temp | awk '{print $3}' | sed -e 's/+//' -e 's/[^0-9+\.].*//'` |
/etc/mrtg/mrtg.cfgを編集して保存すれば、自動的に温度測定とグラフ化が行われるようになる。初期設定では、結果のファイル群が/var/www/mrtgに作成されるので、
http://PCのIPアドレス/mrtg/cputemp.html |
にWebブラウザでアクセスするとグラフが表示される。当然ながら、ApacheなどのWebサーバが稼働している必要がある。
![]() |
上記の設定で作成されたCPUとマザーボードの温度変化グラフ |
![]() |
Linux Tips Index |
Linux Squareフォーラム Linux Tipsカテゴリ別インデックス |
|
- 【 pidof 】コマンド――コマンド名からプロセスIDを探す (2017/7/27)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。 - Linuxの「ジョブコントロール」をマスターしよう (2017/7/21)
今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です - 【 pidstat 】コマンド――プロセスのリソース使用量を表示する (2017/7/21)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示する「pidstat」コマンドです。 - 【 iostat 】コマンド――I/Oデバイスの使用状況を表示する (2017/7/20)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、I/Oデバイスの使用状況を表示する「iostat」コマンドです。
![]() |
|
|
|
![]() |