誰でも ZABBIX

Zabbixの使い方、役に立つ情報、等々

3. PCのCPU温度の監視

サーバ機の場合は、CPUの温度やファンの回転数、電源の稼動状態をSNMP等で比較的簡単に取得することができ、容易に監視できるようになっています。

市販のPCの場合は、一般的にそのようなI/Fはないので、WMIなどで値を取得するフリーソフトなどで状態を確認することが多いと思います。

今回は、Core Tempというツールから温度データを取得し、Zabbixで記録する方法を確認します。

CoreTempのダウンロードとインストール

CoreTempはこちらから入手できます。

www.alcpu.com

Webサイトのトップページにダウンロードリンクがあります。

f:id:Unam:20180221072916p:plain

インストール後、CoreTempを起動し、設定を確認します。

f:id:Unam:20180221074119p:plain

Tempature Loggin Intervalがログに記録される間隔です。初期値は30秒になっているので、ログファイルのサイズが大きくなりすぎないよう、600秒程度にしておいたほうが良いかもしれません。

f:id:Unam:20180221074412p:plain

設定の保存後、 最小化ボタンを押すと、タスクバーに常駐して温度を監視を行います。

f:id:Unam:20180221074533p:plain

f:id:Unam:20180221080751p:plain

CoreTempのログファイル

ログファイルは、CoreTempがインストールされたフォルダに作成されます。iniファイルやOption設定を見る限り、ログファイルの出力先は変更できないようです。

f:id:Unam:20180221074923p:plain

ログファイルは、CSV形式になっています。

f:id:Unam:20180221075042p:plain

Zabbixの監視設定

CoreTempのログファイルから温度データを取得します。ログファイルから温度データの行を抜き出し、依存アイテムで、各CPUコアごとの温度を取り出すようにします。

f:id:Unam:20180221075409p:plain

マスターアイテム

Zabbixエージェントのログ監視でデータを取得します。キーは、ファイル名が可変(日付が付いている)ので、logrt[]を使用します。ファイル名の指定は、ユーザマクロで指定しています。

CoreTempのログデータは、ファイルの頭にヘッダや見出し行が入るので、それらを除外するために、正規表現で頭が数値で始まる行のみを取得するように指定しています。やや安易ですが、今回のケースでは、これで必要な行のみを抽出しています。

f:id:Unam:20180221075514p:plain

マクロ(ファイル名の指定)の定義

f:id:Unam:20180221075938p:plain

依存アイテム

温度情報を含むログデータから、CPUコア毎にデータを取り出す依存アイテムの定義です。

f:id:Unam:20180221080103p:plain

これだけだと、行全体をとりにいってしまうので、保存前処理で必要なデータだけを切り出せるよう設定します。

コア0
f:id:Unam:20180221080206p:plain

コア1
f:id:Unam:20180221080252p:plain

これで温度データが取得できるようになりました。 2つのコアの値でグラフにすると以下のようになります。

f:id:Unam:20180221080451p:plain

普通のデスクトップマシンなので今のところ特に問題ない感じです。 冷却ファンの性能が落ちてくると、内部温度が高めになっていくようなので、瞬間的なデータではなく、長期的にデータを取得しておくと、劣化傾向がつかみやすくなると思います。

関連ページ

unam.hatenadiary.jp

unam.hatenadiary.jp

unam.hatenadiary.jp