サーバ室の温度計測を行うために、マシン自体の温度測定を行おうと思っております。 サーバなどではなく、通常のWindowsマシンで温度測定を行おうと考えているのですが、何かいい方法はありませんでしょうか?SNMPを使った方法でも構いません。
アイテムとトリガーの式も分かるようでしたら教えてください。
よろしくお願い致します。
OSがLinuxで、利用しているサーバのハードウェアが対応している チップセットを利用していると、CentOSならlm_sensorsというパッ ケージを利用し、その中のsensorコマンドでCPUやマザーボードの 温度や各種電圧、ファンの回転数などを取得して監視することがで きます。
Windowsですと、WMIを利用して取得できる場合もあるようなのです が、取得できるかどうかはサーバのハードウェアが対応しているか どうかに依存するようです。 Win32_TemperatureProbeというクラスを利用するようなのですが、 私が試せたPCでは対応していなかったため、どう取得できるかまで 確認できませんでした。
他には、OSの標準機能ではなく、他のパッケージをインストールし て良いのであれば、以前、Zabbixと組み合わせて試されていた方が いらっしゃいましたので、その方法も参考にしてみてください。
[Zabbix][システム監視] Windows OS上からCPUとGPUの温度を取得する方法。 http://kometchtech.blog.fc2.com/?no=1158
ただし、SpeedFan SNMP Extensionのサイトが現在アクセスできな い状態かもしれません。
あとは、安価なデスクトップPCではなく、IPMIなどの管理ボードが 利用できるサーバであれば、IPMIを利用することで監視できると思 います。
TNKさん
回答ありがとうございます。
>OSがLinuxで、利用しているサーバのハードウェアが対応しているチップセットを利用していると、CentOSならlm_sensorsというパッケージを利用し、その中のsensorコマンドでCPUやマザーボードの温度や各種電圧、ファンの回転数などを取得して監視することができます。
VMware Server 2.0上で動かしているCentOSでもlm_sensorsを使って温度やファンの回転数を監視できますでしょうか?この場合、VMware ServerをインストールしているWindows端末の温度になると思いますが。
>ただし、SpeedFan SNMP Extensionのサイトが現在アクセスできない状態かもしれません。
私もSpeedFan SNMP Extensionを取得してやろうと考えていたのですが、どこを探してもSpeedFan SNMP Extensionが見つからず、ダウンロードできませんでした。
USB温度計を使った方法も考慮していますが、手軽にできる方法があるといいのですが。
残念ながらできません。
VM上からは、VMwareによってエミュレートされたハードウェアまで しか見ることができません。
SpeedFan SNMP Extensionが入手できれば、SpeedFanとSNMPエージ ェントと組み合わせるのが比較的簡単に実現できそうなのですが、 なかなか見つかりませんね。
SpeedFan SNMP Extensionの代替手段としてsf2mrtgがありますが、sf2mrtgを使ってZabbixで監視できませんでしょうか?
C:\Users\xxxxx\Desktop\sf2mrtg-10>sf2mrtg.exe 10000 0 uptime 0 days 01 hours 09 minutes Temperature
Seconds Core 0 47556 100.0 47559 100.0 47562 100.0 47565 100.0
KAZさん
ありがとうございます。 私の方でやるとSFlog{yyyymmdd}.csvにSecondsの値しか出てきませんでした。 なので、sf2mrtgの先頭1行目の値をとり、100で割ってあげようと考えていますが、EXEを実行し、先頭の値をとり、100で割るというのはZabbixのアイテムでどのように指定すればよいのでしょうか?
Ryo Sugisakiさん
私の方でやるとSFlog{yyyymmdd}.csvにSecondsの値しか出てきませんでした。 それ秒数です。 温度タブで温度を取りたいcpuやHDDを選択して記録するをチェックしないと温度は取れません。 添付参照してみてください。
なので、sf2mrtgの先頭1行目の値をとり、100で割ってあげようと考えていますが、EXEを実行し、先頭の値をとり、100で割るというのはZabbixのアイテムでどのように指定すればよいのでしょうか? 計算アイテム使ってみてはどうでしょうか? <url> http://wiki.arashike.com/zabbix/calc_item
Speedfanで無事に温度情報の入ったCSVファイルを出力することが出来ました。 私自身があまり物分かりが良いほうではないので、簡単な方法でやろうと考えており、logrtアイテムで最新の1行の3フィールド目の値を監視し、CPU温度が40℃を上回ったらアラートを出そうかと考えているのですが、アイテムがうまく作れません。
logrtアイテムで最新の1行の3フィールド目の値を監視を実現するにはどうすればよいでしょうか? 分かり易く教えていただけると助かります。
下記のURL参考になりますか? 以前、Windowsで最終行の2フィールド目を取得する内容について書いてます。
http://www.zabbix.jp/node/2604
一点注意が必要なのは、Speedfanのログはcsv(Comma Separated Values)となってますが、フォーマットはtsv(Tab Separated Values)です。 デリミタはタブ文字になります。
URLを参考にすると以下のようになるのでしょうか? デリミタがタブの場合、カンマの部分はどう変えれば良いのでしょうか?
【zabbix_agentd.conf】 UserParameter=speedfan,tail -1 C:\Program Files\SpeedFan\SFLog*.csv| cut -f 3 -d ','
【アイテムキー】 logrt["speedfan"].regexp("^[^,]+,[^,]+,1,")}>=8000
Ryo Sugisaki さん
■その1 「〜 cut -f 3 -d '\t'」ですかね?
■その2 ユーザパラメータは「SFLog*.csv」だとローテーションしたログも取るので、「SFLog????????.csv」かと ※:文字数で最新のファイルのみ指定
■その3 アイテムはユーザパラメータなのでlogrtじゃなくて、下記のようになるかと… タイプ :Zabbixエージェント キー :speedfan[] データ型:浮動小数
実際にやってみたのですが、ステータスが「取得不可」となってしまいます。 メッセージは「Not supported by Zabbix Agent」と出ます。
Windowsなので、tailやcutのコマンドが無いせいなのかと思ってインストールしたのですが、やはりだめです。
どうすれば良いものでしょうか? ちなみに、zabbix_getでやると値はちゃんと取れています。
# zabbix_get -s 192.168.1.4 -k speedfan 37.0
zabbix_getを利用してZabbixサーバが稼働しているサーバから値を 取得できているのであれば、アイテムの「データ型」を確認してく ださい。
先ほど記載頂いたように、zabbix_getを実行して「37.0」という値 が返ってきているのであれば、データ型として「数値(浮動小数)」 を選択しないと、数値として受け取れないと思います。
データ型が「数値(浮動小数)」になっていたならば、一度アイテム を無効 -> 有効と切り替えてみてください。
KAZさん、TNKさん
解決しました。 長きに渡り、アドバイス頂きありがとうございました。 本当に助かりました。
温度監視できたみたいですね、良かったです。
TNKさん、フォロー感謝です。m(__)m
アカウント名 Ryo Sugisaki
Zabbix関連
TNK - 投稿数: 4769
OSがLinuxで、利用しているサーバのハードウェアが対応している
チップセットを利用していると、CentOSならlm_sensorsというパッ
ケージを利用し、その中のsensorコマンドでCPUやマザーボードの
温度や各種電圧、ファンの回転数などを取得して監視することがで
きます。
Windowsですと、WMIを利用して取得できる場合もあるようなのです
が、取得できるかどうかはサーバのハードウェアが対応しているか
どうかに依存するようです。
Win32_TemperatureProbeというクラスを利用するようなのですが、
私が試せたPCでは対応していなかったため、どう取得できるかまで
確認できませんでした。
他には、OSの標準機能ではなく、他のパッケージをインストールし
て良いのであれば、以前、Zabbixと組み合わせて試されていた方が
いらっしゃいましたので、その方法も参考にしてみてください。
[Zabbix][システム監視] Windows OS上からCPUとGPUの温度を取得する方法。
http://kometchtech.blog.fc2.com/?no=1158
ただし、SpeedFan SNMP Extensionのサイトが現在アクセスできな
い状態かもしれません。
あとは、安価なデスクトップPCではなく、IPMIなどの管理ボードが
利用できるサーバであれば、IPMIを利用することで監視できると思
います。
Ryo Sugisaki - 投稿数: 139
TNKさん
回答ありがとうございます。
>OSがLinuxで、利用しているサーバのハードウェアが対応しているチップセットを利用していると、CentOSならlm_sensorsというパッケージを利用し、その中のsensorコマンドでCPUやマザーボードの温度や各種電圧、ファンの回転数などを取得して監視することができます。
VMware Server 2.0上で動かしているCentOSでもlm_sensorsを使って温度やファンの回転数を監視できますでしょうか?この場合、VMware ServerをインストールしているWindows端末の温度になると思いますが。
>ただし、SpeedFan SNMP Extensionのサイトが現在アクセスできない状態かもしれません。
私もSpeedFan SNMP Extensionを取得してやろうと考えていたのですが、どこを探してもSpeedFan SNMP Extensionが見つからず、ダウンロードできませんでした。
USB温度計を使った方法も考慮していますが、手軽にできる方法があるといいのですが。
TNK - 投稿数: 4769
残念ながらできません。
VM上からは、VMwareによってエミュレートされたハードウェアまで
しか見ることができません。
SpeedFan SNMP Extensionが入手できれば、SpeedFanとSNMPエージ
ェントと組み合わせるのが比較的簡単に実現できそうなのですが、
なかなか見つかりませんね。
Ryo Sugisaki - 投稿数: 139
SpeedFan SNMP Extensionの代替手段としてsf2mrtgがありますが、sf2mrtgを使ってZabbixで監視できませんでしょうか?
KAZ - 投稿数: 1085
SpeedFan とsf2mrtgをVMware上のWindows8に入れてみました。
こんなかんじで取れます。
先頭の「10000」が温度です。(readme読むと実際の値を100倍しているとなっています。)
先頭1行のみ取り100で割ってやればよいかと…
因みにSpeedFanでログ出力すると[SFlog{yyyymmdd}.csv]と言うファイルをインストールDirに出力します。
これの最終行の2カラム目を読んでもOKかと
Ryo Sugisaki - 投稿数: 139
KAZさん
ありがとうございます。
私の方でやるとSFlog{yyyymmdd}.csvにSecondsの値しか出てきませんでした。
なので、sf2mrtgの先頭1行目の値をとり、100で割ってあげようと考えていますが、EXEを実行し、先頭の値をとり、100で割るというのはZabbixのアイテムでどのように指定すればよいのでしょうか?
KAZ - 投稿数: 1085
Ryo Sugisakiさん
私の方でやるとSFlog{yyyymmdd}.csvにSecondsの値しか出てきませんでした。
それ秒数です。
温度タブで温度を取りたいcpuやHDDを選択して記録するをチェックしないと温度は取れません。
添付参照してみてください。
なので、sf2mrtgの先頭1行目の値をとり、100で割ってあげようと考えていますが、EXEを実行し、先頭の値をとり、100で割るというのはZabbixのアイテムでどのように指定すればよいのでしょうか?
計算アイテム使ってみてはどうでしょうか?
<url>
http://wiki.arashike.com/zabbix/calc_item
Ryo Sugisaki - 投稿数: 139
KAZさん
Speedfanで無事に温度情報の入ったCSVファイルを出力することが出来ました。
私自身があまり物分かりが良いほうではないので、簡単な方法でやろうと考えており、logrtアイテムで最新の1行の3フィールド目の値を監視し、CPU温度が40℃を上回ったらアラートを出そうかと考えているのですが、アイテムがうまく作れません。
logrtアイテムで最新の1行の3フィールド目の値を監視を実現するにはどうすればよいでしょうか?
分かり易く教えていただけると助かります。
よろしくお願い致します。
KAZ - 投稿数: 1085
Ryo Sugisakiさん
下記のURL参考になりますか?
以前、Windowsで最終行の2フィールド目を取得する内容について書いてます。
http://www.zabbix.jp/node/2604
一点注意が必要なのは、Speedfanのログはcsv(Comma Separated Values)となってますが、フォーマットはtsv(Tab Separated Values)です。
デリミタはタブ文字になります。
Ryo Sugisaki - 投稿数: 139
KAZさん
URLを参考にすると以下のようになるのでしょうか?
デリミタがタブの場合、カンマの部分はどう変えれば良いのでしょうか?
【zabbix_agentd.conf】
UserParameter=speedfan,tail -1 C:\Program Files\SpeedFan\SFLog*.csv| cut -f 3 -d ','
【アイテムキー】
logrt["speedfan"].regexp("^[^,]+,[^,]+,1,")}>=8000
KAZ - 投稿数: 1085
Ryo Sugisaki さん
■その1
「〜 cut -f 3 -d '\t'」ですかね?
■その2
ユーザパラメータは「SFLog*.csv」だとローテーションしたログも取るので、「SFLog????????.csv」かと
※:文字数で最新のファイルのみ指定
■その3
アイテムはユーザパラメータなのでlogrtじゃなくて、下記のようになるかと…
タイプ :Zabbixエージェント
キー :speedfan[]
データ型:浮動小数
Ryo Sugisaki - 投稿数: 139
実際にやってみたのですが、ステータスが「取得不可」となってしまいます。
メッセージは「Not supported by Zabbix Agent」と出ます。
Windowsなので、tailやcutのコマンドが無いせいなのかと思ってインストールしたのですが、やはりだめです。
どうすれば良いものでしょうか?
ちなみに、zabbix_getでやると値はちゃんと取れています。
# zabbix_get -s 192.168.1.4 -k speedfan
37.0
TNK - 投稿数: 4769
zabbix_getを利用してZabbixサーバが稼働しているサーバから値を
取得できているのであれば、アイテムの「データ型」を確認してく
ださい。
先ほど記載頂いたように、zabbix_getを実行して「37.0」という値
が返ってきているのであれば、データ型として「数値(浮動小数)」
を選択しないと、数値として受け取れないと思います。
データ型が「数値(浮動小数)」になっていたならば、一度アイテム
を無効 -> 有効と切り替えてみてください。
Ryo Sugisaki - 投稿数: 139
KAZさん、TNKさん
解決しました。
長きに渡り、アドバイス頂きありがとうございました。
本当に助かりました。
KAZ - 投稿数: 1085
Ryo Sugisakiさん
温度監視できたみたいですね、良かったです。
TNKさん、フォロー感謝です。m(__)m