〜PING監視+通知音で、異常を即キャッチ〜
1.はじめに
家庭内LANやNAS、ネットワーク機器のトラブルは、気づいた時にはもう遅い…ということがよくあります。
画面を見ていない時にも、異常をすぐ察知できたら便利ですよね。
そこで今回は、hsboxを使ってLANの監視を行い、異常があれば「システム アラート」楽曲で通知する仕組みを作ってみました。
音のインパクトが強いので、他の作業中でも一発で気づけます
2.仕組みの概要
- PINGコマンドで監視対象にアクセス
- 応答がなければ異常と判断
- hsboxに通知音再生コマンドを送信
監視対象は、家庭内LANのルーターやNAS、PC、IoT機器など何でもOK。
音源は先日作成した通知用楽曲「システム アラート」を使用します。
3.実装例(簡易版)
以下はLinux環境でのサンプルです。
監視対象IPは例として「192.168.1.10」に設定しています。
#!/bin/bash
TARGET="192.168.1.10"
if ! ping -c 1 -W 2 $TARGET > /dev/null; then
# 異常時にhsboxで通知音を再生
python3 /home/hsbox/py/cast3.py --url <system_alert.mp3のURL>
fi
-c 1
… 1回だけPINGを送る-W 2
… タイムアウトを2秒に設定hsbox play
… hsboxで音を再生するコマンド(環境に合わせて変更)
このスクリプトを/usr/local/bin/lan_alert.sh
に保存し、実行権限を付与します。
chmod +x /usr/local/bin/lan_alert.sh
4.定期実行の設定
常時監視するため、cronまたはsystemd timerを使います。
例:cronで1分ごとに実行する場合
※cronはhsbox自体で使用しているので、hsboxの設定を消さないように追加する必要があります。
* * * * * /usr/local/bin/lan_alert.sh
実際に実装する場合はGUI画面から操作できるように実装しますが、ここでは既存のhsbox機能をできるだけ使って追加削除する方法を簡単に書いておきます。詳細は下記の開発者サイトで確認してください。
●追加方法
次のように コマンドでcroncmd.txtファイルに cron設定を書き込み、cron設定シェルコマンドを実行してください。
cat > /home/hsbox/wtmp/croncmd.txt
* * * * * /usr/local/bin/lan_alert.sh
sudo /home/hsbox/sh/cronset.sh
●削除方法
日時指定呼出設定機能画面で削除操作できます。詳細は機能紹介ページを参照してください。
5.実際に使ってみた感想
テストとしてNASの電源を落とすと、1分以内に「システム アラート」音が鳴動。画面を見ていなくても異常を即把握できました。「音で知らせる」だけで反応速度が段違いです。さらに、音源を変えるだけで
- 雨予報の通知
- 監視カメラ異常検知通知
- 宅配到着通知
などにも応用可能です。
6.まとめ
- hsboxはLAN監視+音声通知の実装が簡単
- 音楽や効果音を使えば、視覚に頼らないアラートが可能
- 実用性と遊び心を両立できる
今回は実験実装ですので、ログ実装や異常系処理(多重実行抑止)など品質や汎用性は考慮しておりません。実装についての支援はhss(サポートサイト)等で紹介している開発者サイトにて支援しています。
次回は、この仕組みをさらに発展させた「複数端末監視」や「スマホ連携通知」にも挑戦してみたいと思います。