XymonでRaspberry Piの電源電圧と温度を監視するモジュールvcthrottled

[English page]

概要

Raspberry Pi OSではvcgencmd get_thresholdというコマンドで電源電圧と温度に関する状態を、また/sys/class/thermal/thermal_zone0/tempというスペシャルファイルから温度を取得できることを最近知ったので、Xymonでそれらを監視するモジュールを作成しました。

構成要素

vcthrottled

メインのモジュールで、次に述べるwrapper、get_throttled経由でvcgencmd get_throttledを実行して

の3項目の状態を取得します。詳しくはvcgencmdのオフィシャルドキュメントを参照して下さい。

また、/sys/class/thermal/thermal_zone0/tempから温度を取得します。このスペシャルファイルを読み出すと摂氏温度の1000倍がASCII文字列で返ってきます。別の方法としてvcgencmdmeasure_tmpサブコマンドで取得することも考えられます。

その後、xymonコマンドを2回実行してtemperaturevoltageの状態をXymonサーバにレポートします。

temperatureのレポートには温度と、"Soft temperature limit active"が発生しているか否か、"Arm frequency capped"が発生しているか否かが含まれています。https://forums.raspberrypi.com/viewtopic.php?f=63&t=147781&start=50#p972790によれば、"Arm frequency capped"は80°Cを、throttlingは85°Cを超えると発生するそうです。

voltageのレポートには"Under-voltage detected"が発生しているか否かだけを含んでいます。先ほどのページによれば、閾値は4.63Vだそうです。計測値には興味があるんですが、まだ取得方法を発見できていません。vcgencmd measure_voltsで取得できるのは、Raspberry Pi外部からUSBコネクタ経由で供給されている電圧ではなく、コアやSDRAMに供給されている電圧です。

get_throttled

vcgencmd get_throttledを特権を行使して実行するためのwrapperです。

インストール

tar ballを取得して適当な作業ディレクトリに展開します。

$ tar xvzf vcthrottled.tar.gz
  

vcthrottledというサブディレクトリが展開されるので、そこにcdします。

$ ls
vcthrottled
$ cd vcthrottled
  

ここでget_throttledを配置するディレクトリを決めます。このディレクトリをLIBEXECDIRと表記します。作者は/pub/libexec/xymon/vcthrottledというディレクトリにしています。/usr/local/lib/opt/vcthrottled/libであればFilesystem Hierarchy Standard Version 3.0に適合するのではないかと思います。vcthrottledを配置する/usr/lib/xymon/client/local以下はXymonクライアントが自動的に実行するのでget_throttledを置いてはいけませんが、それ以外で任意にして下さい。

決定したLIBEXECDIRを与えてconfigureを実行します。LIBEXECDIRを指定しないと/usr/local/libexecになります。

$ ./configure --libexecdir=LIBEXECDIR
  

もしLIBEXECDIRがまだなければ、例えば

$ sudo mkdir /pub/libexec/xymon/vcthrottled
  

のようにして、ここで作成しておかなければなりません。もちろん意図したLIBEXECDIRに読み替えて下さい。mkdir-pオプションを与えると便利なこともありますが、深刻ではないにせよ意図しない結果を引き起こさないように注意して下さい。

それではインストールしましょう。

$ sudo make install
  

vcthrottled/usr/lib/xymon/client/localにインストールされます。Debianのxymon-clientパッケージを使っていればこのディレクトリが適切なのでconfigureに与えたパラメータの影響は受けません。変更するのであればMakefile.inを変更してconfigureをやり直して下さい。

get_throttledconfigure--libexecdirで与えたLIBEXECDIRにインストールされるはずです。もし

    
Please
    mkdir /some/where
before
    make install
if the directory is sure.
    
  

というメッセージが表示されたら、原因は

のいずれかだと思われます。

起動

上で述べたようにDebianのxymon-clientパッケージは/usr/lib/xymon/client/local以下のモジュールを自動的に実行しますし、temperatureのRRD関係の設定はXymonに組み込まれているので、このモジュールに関する特別な設定は必要ありません。

make installを実行してしばらくするとXymonの画面にtemperaturevoltageの2つのコラムが現れるはずです。もしうまくいかないときは/var/lib/xymon以下を調べてみて下さい。

スクリーンショット

[temperature][voltage]

Happy monitoring!


[トップページ|Software|Xymon]
Copyright(c) 2021, Koh-ichi Ito, All rights reserved
Last update: $Date:: 2021-12-31 18:07:00 +0900#$