3. PCのCPU温度の監視
サーバ機の場合は、CPUの温度やファンの回転数、電源の稼動状態をSNMP等で比較的簡単に取得することができ、容易に監視できるようになっています。
市販のPCの場合は、一般的にそのようなI/Fはないので、WMIなどで値を取得するフリーソフトなどで状態を確認することが多いと思います。
今回は、Core Tempというツールから温度データを取得し、Zabbixで記録する方法を確認します。
CoreTempのダウンロードとインストール
CoreTempはこちらから入手できます。
Webサイトのトップページにダウンロードリンクがあります。
インストール後、CoreTempを起動し、設定を確認します。
Tempature Loggin Intervalがログに記録される間隔です。初期値は30秒になっているので、ログファイルのサイズが大きくなりすぎないよう、600秒程度にしておいたほうが良いかもしれません。
設定の保存後、 最小化ボタンを押すと、タスクバーに常駐して温度を監視を行います。
CoreTempのログファイル
ログファイルは、CoreTempがインストールされたフォルダに作成されます。iniファイルやOption設定を見る限り、ログファイルの出力先は変更できないようです。
ログファイルは、CSV形式になっています。
Zabbixの監視設定
CoreTempのログファイルから温度データを取得します。ログファイルから温度データの行を抜き出し、依存アイテムで、各CPUコアごとの温度を取り出すようにします。
マスターアイテム
Zabbixエージェントのログ監視でデータを取得します。キーは、ファイル名が可変(日付が付いている)ので、logrt[]を使用します。ファイル名の指定は、ユーザマクロで指定しています。
CoreTempのログデータは、ファイルの頭にヘッダや見出し行が入るので、それらを除外するために、正規表現で頭が数値で始まる行のみを取得するように指定しています。やや安易ですが、今回のケースでは、これで必要な行のみを抽出しています。
マクロ(ファイル名の指定)の定義
依存アイテム
温度情報を含むログデータから、CPUコア毎にデータを取り出す依存アイテムの定義です。
これだけだと、行全体をとりにいってしまうので、保存前処理で必要なデータだけを切り出せるよう設定します。
コア0
コア1
これで温度データが取得できるようになりました。 2つのコアの値でグラフにすると以下のようになります。
普通のデスクトップマシンなので今のところ特に問題ない感じです。 冷却ファンの性能が落ちてくると、内部温度が高めになっていくようなので、瞬間的なデータではなく、長期的にデータを取得しておくと、劣化傾向がつかみやすくなると思います。