Lenovo x3650M5サーバ温度をIMM経由で取得しThinkspeakで監視

公開

VMware ESXiホストを担う Lenovo x3650M5 サーバが、空調の切れる週末の日中に環境 温度 がしきい値を越えたことで、自動シャットダウンしていました。搭載されている IMM から各種 温度 やシステムの状態を定期的に取得し、 ThingSpeak へアップロードするスクリプトを急造しました。

オーバーヒートによる自動シャットダウン

週末や夜間には空調の切れる部屋に設置しているVMware ESXiホストが週明け出社してみるとオフラインに。他のホストは稼働しているので停電とも思えず、Lenovo x3650M5サーバ内蔵のIMMへアクセスしてイベントログを確認。

図1.IMM Event Log

図1.IMM Event Log

曰く、日曜の昼過ぎに環境温度がしきい値を越えたため、シャットダウンシーケンス発動…

現在の温度と共に実際のしきい値を確認すると、デフォルトで50℃とあるのでサーバの環境温度がこれを越えたということでしょう。ともあれ、現在の温度が正常に戻っているので、IMM越しにESXiホストを始動。

図2.IMM Temperatures

図2.IMM Temperatures

IMMからSSH越しに温度取得

今後に備えて、このサーバに対する定期的な温度監視をするに当たり、その観測手段としてまず思い付くのが、ブラウザではなくターミナル越しのIMMアクセスで便利なIMM CLIでした。

予め、IMMのWebUIの IMM Management → Security ページにある、 SSH Server タブでSSH Serverを有効にしておきます。

図3.IMM Enable SSH Server

図3.IMM Enable SSH Server

なお、IMMで使われるホストキーがだいぶ古いので、SSH接続試行時にまず、 no matching host key type found と突き返されるはずなので、アクセスの前にクライアント側の設定で例外許可を加えておきます。

SSHログイン後、各温度センサの状態は以下の要領で取得することができました。

何度か取得してみて分かったことは、センサから得られる温度値は摂氏の整数値までということ。摂氏からの変換値に過ぎない華氏に小数点以下があるのは、計測工学における有効数字の考え方からすると疑念も。

 

IMMからSNMPによる温度取得

IMM CLIで温度センサ値を容易に得られることは分かりましたが、ちょっと情報量が多くて定期的なモニタリングにおけるテキスト成形が手間なことから、計測値だけを得る手段として、SNMPのIMM-MIBを試してみようと思います。

まず、IMMのWebUIの IMM Management → Network ページにある、 SNMP タブで SNMPv1SNMPv3 を有効にした上で、コミュニティ名やユーザを適宜設定しておきます。

図4.IMM Enable SNMP

図4.IMM Enable SNMP

IMM-MIB (oid: 1.3.6.1.4.1.2.3.51.3 )の仕様はこちらのページを参考。

温度センサ関連の2つの oidsnmpwalk で読み取ってみました。

図5.snmpwalk結果

図5.snmpwalk結果

例えば環境温度だけを取得したければ、以下の要領でsnmpwalkを実行します。

 

また、IMM WebUIログイン後に表示されるシステムの状態も、SNMP IMM-MIBの以下の oid で取得可能です。

図6.IMM System Status

図6.IMM System Status



 

ThingSpeakへデータを上げるまで

ThingSpeakに新しいチャンネルを作成し、APIを通じた書き込みキーをコピーしておきます。

なお、ThingSpeakのチャンネル内には、最大で8つのフィールドを設定することができるので、今回は様々な温度の中から次のパラメータを選抜しました。

snmpwalk で必要なデータを集め、それらを curl でThingSpeak APIへ投げつけるシェルスクリプトを、突貫工事で製作。

これを cron に登録して数分おきに実行するように設定、しばらく運用してみました。

図7.ThingSpeakチャンネル

図7.ThingSpeakチャンネル

さらに、スマートフォンアプリでThingSpeakウィジェットを作っておけば、いつでもどこでもサーバの状態を監視できるようになります。

 

コメントを残す

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

CAPTCHA