3回に渡ってご紹介している本テーマも遂に最終回となります!今回は監視対象の温度に異常があった場合に警告メールを送信する設定をしていきます!

また、おまけとして以前弊社で扱っていた製品との比較もしてみました!

UbuntuでUSB温度計やBlutooth温度計を使う方法、温度データをグラフ化する方法は前回までの記事でご紹介しています。こちらもぜひご覧ください。
その1POWERSTEP fitlet2とSORACOMで測定した温度データをOneDriveへアップロードする!
その2OneDriveと同期したオンプレミスサーバで温度データをグラフ化する!

目次
1. 今回の目標
2. 環境構築
3. 結果
4. まとめ
5. おまけ
 5-1.サイズと重さ
 5-2.CPU
 5-3.使用環境温度
 5-4.インターフェイス
 5-5.価格

1. 今回の目標

遠隔温度監視システムのイメージ

①POWERSTEP fitlet2とSORACOMで測定した温度データをOneDriveへアップロードする!
②OneDriveと同期したオンプレミスサーバで温度データをグラフ化する!
③異常な温度を検知したら警告メールを送信する!

前回の記事で、温度データをグラフで分かりやすく見ることができるようになりました。しかし、これだけでは温度に異常があってもすぐに気づくことができません。そこで今回は、③のように異常な温度が検知された場合に警告メールを送信する設定をしていきます!今回の環境構築はすべてオンプレミスサーバで行います。

2. 環境構築

警告メール設定

  1. postfix、mailutilsのインストール
    postfixはオープンソースソフトウェアのメール転送エージェント、mailutilsはメール送信に必要なソフトウェアです。
    postfixのインストール時、メールサーバ形式は「設定なし」を選択します。smtpサーバの送信先は社内のメールゲートウェイを指定していますが、実際に運用する際はシステム管理者に相談するなどしてください。
    $ sudo apt install postfix mailutils
  2. munin.confの編集
    muninはオープンソースのシステム監視ソフトウェアです。詳しくは前回の記事で紹介していますので参考にしてください。
    munin.confに送信先のメールアドレスと温度を警告する閾値の設定を追加します。
    「” ”」で囲われたところはメールの件名で、自由に決めることができます。今回はグループ名とホスト名を入れています。
    閾値はそのまま入力すると上限値になります。下限値を設定する場合は「下限値:」、両方設定する場合は「下限値:上限値」と入力します。
    $ sudo vi /etc/munin/munin.conf

    contact.email.command mail -s "[Munin] ${var:group}::${var:host}" <送信先メールアドレス>

    # a simple host tree [localhost.localdomain] address 127.0.0.1 use_node_name yes

    TEMPer.temperature.warning 40
    TEMPer.temperature.critical 45
    IBS_TH1.temperature.warning 40
    IBS_TH1.temperature.critical 45
    IBS_TH1_Mini.temperature.warning 40
    IBS_TH1_Mini.temperature.critical 45
  3. 動作確認
    コマンドで今のステータスをメールで送信させることができます。あとはわざと閾値を変えるなどして警告メールが届くかどうか確認します。
    $ sudo -u munin sh -c "/usr/share/munin/munin-limits --contact email --force"

3. 結果

警告メールを受信できた!

warningの閾値を変更して警告メールが送信されて受信できるかどうか確かめてみました。TEMPerとIBS-TH1のwarning上限値を10に、IBS-TH1 Miniの下限値を10に設定しました。

$ sudo vi /etc/munin/munin.conf

contact.email.command mail -s "[Munin] ${var:group}::${var:host}" <送信先メールアドレス>

# a simple host tree [localhost.localdomain] address 127.0.0.1 use_node_name yes

TEMPer.temperature.warning 10
TEMPer.temperature.critical 45
IBS_TH1.temperature.warning 10
IBS_TH1.temperature.critical 45
IBS_TH1_Mini.temperature.warning 10:
IBS_TH1_Mini.temperature.critical 45

しばらくすると設定した送信先に警告メールが届きました。
今回はメールの送信を確認するための簡易的な設定しかしていないのでlocalhost、localdomainになっています。

受信した警告メール

上限値オーバーと下限値オーバーの両方がWARNINGとして検出され、警告メールを受信することができました!これで離れた場所にいても温度の異常を知ることができます!

閾値を戻した後に受信したメール

異常な数値を検知している間は5分毎に警告メールが送信されますが、正常な数値に戻った際にも通知メールが送信されます。上の画像は閾値のほうを変更した場合ですが、このように正常であることを通知してくれています。

また、通知メールの間隔はcronを書き換えることで変えることができます。

$ sudo vi /etc/cron.d/munin

#
# cron-jobs for munin
#

MAILTO=root

*/5 * * * * munin if { -x /usr/bin/munin-cron ]; then /usr/bin/munin-cron; fi

4. まとめ

今回の実験で使用したINKBIRDのBluetooth温度計
IBS-TH1(左)とIBS-TH1 Mini(右)

POWERSTEP fitlet2 BTOとSORACOM Airを使った遠隔温度監視システムの最終回ということで、取得したログから異常な数値を検出して警告メールを送信するシステムを構築しました。これで遠隔地にあるシステムでも安心して運用できますね!MuninはCPU・メモリ使用量といったサーバリソースを監視するプラグインが付属しているので、データだけでなくサーバ自身の監視も可能です。

3回に渡ってご紹介したこのシステムは簡易的なものではありましたが、ご参考になりましたでしょうか?そのまま導入されることはなくとも、UbuntuでBluetooth温度計を使ったりMuninのプラグインを作成するといった技術は他のIoTシステムでも応用が効くのではないかと思います。みなさんのIoTシステム構築の一助になれば幸いです!

5. おまけ

今回の記事では出番のなかったPOWERSTEP fitlet2 BTOですが、以前弊社で扱っていた製品を手元にいただいたので比較をしてみました。

POWERSTEP RUGGED S(左)とPOWERSTEP fitlet2 BTO(右)

弊社では以前、組み込み用コンピュータとしてPOWERSTEP RUGGED Sという製品を扱っていました。fitlet2 BTOはその後継製品となります。そこで、fitlet2 BTOがRUGGED Sと比べてどんなところが優れているのか比較してみました!

5-1. サイズと重さ

RUGGED Sのサイズは106 mm(W) x 150.4  mm(D) x 85.9 mm(H)、fitlet2 BTOはVESAマウント対応トップカバー装着時で112 mm(W) × 112 mm(D) × 25 mm(H)です。幅は若干長くなっていますが、奥行きは38.4 mm短くなっており、高さは3分の1以下にまで小さくなっています!組み込み用コンピュータは設置するスペースが限られている場合も多いので、サイズの小さいfitlet2 BTOのほうが優れています!

また、RUGGED Sの重さは約1.5 kg、fitlet2 BTOは約350 g(0.35 kg)と4分の1以下まで軽くなっています。軽いほうが壁への取り付けがしやすいため、この点でもfitlet2 BTOのほうが優れていると言えます!

5-2. CPU

RUGGED SのIntel Atom E3845とfitlet2 BTOのCeleron J3455はどちらも4コア4スレッドですが、最大クロック周波数を見るとE3845は1.91 GHz、J3455は2.30 GHzとJ3455のほうが処理性能が高いことがわかります。その分最大性能を発揮する場合は消費電力は大きくなりますが、TDPで言うとどちらも同じ10 Wなため、最低の消費電力は同じでもJ3455のほうが幅広い用途に対応できると言えそうです。「Atom E3845 vs Celeron J3455」といったキーワードで検索するとベンチマークを比較するWebページがたくさんヒットするので、詳しくはそちらをご覧ください。

5-3. 使用環境温度

RUGGED Sもfitlet2 BTOも標準構成とは別に、内部パーツ専用のものを採用した広温度対応モデルがあります。その対応範囲はRUGGED Sで-20 ~ 70 ℃、fitlet2 BTOで-50 ~ 112 ℃と、fitlet2 BTOのほうが広い温度範囲で使用することが可能なことがわかります。組み込み用コンピュータは様々な環境で使用されることが予想されるので、より広い温度に対応したfitlet2 BTOのほうが優れていると言えます。ただし、広温度対応モデルのfitlet2 BTOは通常版と違い納期が長くなりますのでご了承ください。

5-4. インターフェイス

インターフェイスに関してはRUGGED Sのほうが大きい分豊富と言えます。fitlet2 BTOはシリアルポートが1つしかないのに対し、RUGGED Sは4つも搭載しています。しかし、最近はシリアルポートを使うことが少ないため、活かしきれるかどうかは用途によります。映像出力を見てみると、RUGGED SはDVI-Iポートが1つしかないのに対してfitlet2 BTOはHDMIポートが1つ、mini DPポートが1つの合計2つ搭載しています。DVIは最近あまり使われませんし、出力が2ポートあればデュアルディスプレイにすることもできるので、fitlet2 BTOのほうが今どきの用途には適していると言えるのではないでしょうか。

5-5. 価格

気になるお値段ですが、RUGGED Sは標準構成で当時127,600円、fitlet2 BTOは標準構成で51,150円でご提供しています。これほどfitlet2 BTOのほうが高性能にもかかわらず、RUGGED Sの半額以下で購入することができます!これは大変お買い得なのではないでしょうか?

従来の組み込み用コンピュータより性能が高く価格も安いPOWERSTEP fitlet2 BTOをぜひご検討ください!

POWERSTEP fitlet2 BTO / 見積依頼ページ