全天カメラシステム内監視アプリmunin+systemdのこと(/tmp直下は見えない)

 全天カメラではそのシステム内でシステム監視するのにmunin を使用しています。又、アクリルドーム内外に結露は出来ないようにリングヒーターを入れて制御しています。露点を監視してドーム内温度に近くなるとヒーターを入れています。全天カメラ画像に温度等情報が表示されています。そんな事をしているのもあり、システムや環境の時間経過を監視するためmuninを使用しています。
今回、外部の温湿度気圧を測定していたセンサー(BME680)が故障(水濡れか)したので別方式を採用しました。
全天カメラの筐体は開けたくないので、BLE(Bluetooth LE)を使い別の機器(M5StickCとセンサー)で測定&アドバタイズした値をラズパイで定期的に受け簡単に /tmp 内にテキストでファイル渡しで作りました。
単に画像に表示するだけだと問題ないのですが、munin にて問題が発生しました。/tmp内ファイルをShellで読み、温度湿度を出力するだけなのですが、munin-nodeでは取得出来ない(awk を使っていますが、/tmp内ファイルが無いとエラー)状態となりました。
スクリプトが悪いのか動かしてるShellが駄目なのか(因みにラズパイOSでの/bin/shはdashとなっているので、よく知っているbashとは違う)等悩みました。pythonで書いても駄目。muninの今までのデータ削除までしてみたが駄目。
色々とググって、どうやらmunin-nodeが systemd で動いている点がヒントでした。

systemdを使っているmunin-nodeは、サービス定義で PrivateTmp=true としているのでtmp利用はプライベートエリア?になる感じ(実/tmp配下のプライベート用エリア)で、その為/tmp直下にあるファイルは見えない事になる感じ。munin-nodeからのサブプロセス等も/tmp直下のファイル等にはアクセス出来ない感じです(詳細は分かりませんが)。

即の解決策が思いつかない(munin-nodeのsystemdサービス定義ファイルは変更したくない)ので、当面 外部温度、湿度などは nan のままで放置です。
やれやれでした。

2023/10/11 追記
試しとしてmunin-nodeのサービス定義内 PrivateTmp=true をコメントアウトして、daemin-reload, munin 再起動をして様子見。ファイル無しのエラーは案の定消えた。最初はグラフ表示でもnan だったが(どうも別のセンサーがエラーで全情報なしの様子)、その後の表示で正常となった。
本来の処置では無いが、これで行くこととしよう。

コメント

タイトルとURLをコピーしました