pfSenseのNET-SNMPを拡張してサーバ温度を取得する

公開
図10.The Dudeでの温度監視

pfSense のWebUIダッシュボードに表示されるようなサーバ 温度 を、The Dude SNMP マネージャにより継続的に監視すべく、FreeBSDのsysctlコマンドで得られる温度情報を NET-SNMP 拡張に渡し、 SNMP マネージャで受け取れるような仕組みを構築しました。

pfSenseのダッシュボードの温度表示

pfSenseのダッシュボードページでは、システム温度が次のように表示されます。

図01.pfSense Dashboard Status

図01.pfSense Dashboard Status

参照する温度センサに関する設定は、メニューを System → Advanced と進んで「Miscellaneous」タブから。実際に読み取れるかはハードウェアに依存しますが、CPU温度はまず取得出来ると思います。

図02.pfSense Thermal Sensors Hardware

図02.pfSense Thermal Sensors Hardware

この温度情報をSNMPで取得出来るようにして、SNMPマネージャから継続的に監視するのが今回の目標です。尚、ハードウェアやOSなどは以下の通り。

 

sysctlで温度を取得

FreeBSDにおいて、sysctlコマンドを使って温度センサの値を得る手法については、こちらの記事がとても丁寧で参考になりました。Great Tnx!

実際にどんな情報が得られるのか、pfSenseのコンソール上で確認してみます。

Xeon E5405は4コアなのでCPUコア温度も4つ出てきます。本来ならばx3650のシステムボード上のAmbientセンサ(  hw.acpi.thermal  )もあるはずなのですが、おそらくこれは何かドライバ入れないと取得出来ないのでしょう。ひとまず今回のデータソースはこれにします。

 

NET-SNMP拡張を定義

sysctlで得られる温度情報をスクリプトで整形し、NET-SNMP拡張に載せると言う今回のアイディアは、netgateフォーラムのこちらのスレッドによるものです(Great Tnx!!)。

NET-SNMP拡張が呼び出すスクリプトも、そのまま有り難く使わせていただきました。

この実行結果は以下のように、温度の数字のみが改行区切りで抽出された形になります。

このスクリプトをpfSenseのNET-SHMP拡張に定義するのですが、メニューの Services → NET-SNMP ページの「Host Information」タブを開こうとするとFirefox(v88)では正しく開くことが出来ませんでした。

図03.pfSense Firefoxではエラーで開けないページ

図03.pfSense Firefoxではエラーで開けないページ

Chromeでは問題なく開くことが出来たので、その中の Extended Commandsに次の要領で拡張を登録します。

図04.pfSense NET-SNMP Host Information

図04.pfSense NET-SNMP Host Information

クライアントよりsnmpwalk

次に設定したNET-SNMP拡張が機能しているか、Ubuntu機からsnmpwalkで確認してみます。

監視に使うのは、上記出力結果の最後の4行のoidということがわかりました。もしかすると図04で空欄にしたoid欄を何か指定すれば、そのoidで呼び出せるのかも知れませんが、oidの規則をさほど理解しているわけでもないので、欲張らずにシステムの提示するoidに従います。

 

The Dude SNMPサーバにMIBを追加

以前にも何度か登場しているこのThe Dudeは、MikroTik社から出ているSNMPマネージャソフトウェアです。以前はWindows版のバイナリもリリースされていましたが、現行版がリリースされた当時はRouterOSの一機能としてのみでした。これを仮想マシンに構築して、SNMPによるネットワーク監視デバイスとしてのみ使用しています。現在、改めてダウンロードページをチェックしてみると、WindowsやLinux向けインストーラも再びラインナップされていますね。

今回利用しているNET-SNMP拡張機能は、NET-SNMP-EXTEND-MIBとしてMIBを公式サイトからダウンロードすることが出来ます。ダウンロードしたMIBをsftpにてThe Dudeへ転送して適用する手順については、以前まとめたこちらの記事を参考に。

図05.The Dude NET-SNMP-EXTEND-MIB Added

図05.The Dude NET-SNMP-EXTEND-MIB Added

尚、oidを数字で直接して使うのであれば、SNMPマネージャ側でのこの作業は必須ではないと思います。

 

The Dude SNMPサーバに監視項目を設定

The Dudeのsnmpwalkにて、以下のoidのサブツリーを要求してみます。

得られた結果を右クリックして、監視項目とする為のプローブを作成することも可能ですが、今回は以前、UPSの温度監視に取り組んだ際と同じ様に、しきい値を設定してオーバーヒート警告の機能を盛り込みたいので、ここでは作成しません。

図06.The Dude Create Probe from snmpwalk

図06.The Dude Create Probe from snmpwalk

まずプローブウィンドウにおいて、新規にプローブを以下の要領で作成します(しきい値を45℃に設定)。

図07.TheDude Create Probe Function

図07.TheDude Create Probe Function

プローブの新規作成は手間の掛かる作業ですが、1つ作ってしまえばそれを複製して(下図緑枠内のボタン)、2つ目以降に編集出来るのは便利なので活用しましょう。

図08.TheDude New Probe Added

図08.TheDude New Probe Added

プローブの作成を終えたらpfSenseデバイスを開き、「Discover」ボタンを押すと追加したプローブが監視項目として追加されます。

図09.The Dude Discover Probe on Device

図09.The Dude Discover Probe on Device

追加直後はなかなか受信しなくてやきもきしますが、一晩放置した後、問題無く監視・記録していることを確認出来ました。

図10.The Dudeでの温度監視

図10.The Dudeでの温度監視

コメントを残す

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

CAPTCHA