今回はZABBIXとraspberry piを使って視覚と音で障害を認識できる監視システムを作ろうと思います。

説明が長いので2回に分けて紹介します。

ZABBIXでは通常はメールやWeb画面のスクリーンやマップ等で監視をしていると思いますが
音とLEDのランプで障害発生を知らせる仕組みを作ってみます。

raspberry piと組み合わせる事で、格安でシステムが組めます。
大まかな仕組としては、ZABBIXのトリガーのアクション機能を利用して
rshコマンドをraspberry piへ送信して、raspberry側のGPIOに接続したLEDを点灯させ音声ファイル再生をします。

まずはLEDと音声を制御するためのシェルスクリプトをraspberry pi上に作成します。
今回は
GPIO26(LED出力)
GPIO24(スイッチ入力)
を利用したいと思います。

シェルの作りとしては、障害発生時に警報音声とLEDを点滅させて
スイッチを押すと警告が停止しLEDを点灯したままにします。

復旧時には障害回復の音声を流しLEDを消灯するようにします。

あらかじめネットなどで警報音と

棒読みちゃんなどで利用する音声を作成しておきます。

今回は
警報音:keihou.wav
障害発生音声:shougai_onsei.wav
スイッチを押したときの停止音声:keihou_teishi.wav
障害復旧音声:kaihuku.wav
として作成し/home/pi/配下に作成しています。

障害発生時に起動するシェルをled_on.shとして以下のように/home/pi/配下作成します。

led_on.sh

#/bin/sh
#ボタン利用
echo 24 > /sys/class/gpio/export
echo in >/sys/class/gpio/gpio24/direction
#LED利用
echo 26 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio26/direction
echo 1 >/sys/class/gpio/gpio26/value
aplay /home/pi/keihou.wav
#警報発令(ループ)
while true
do
btnst=$(cat /sys/class/gpio/gpio24/value)
#ボタンが押されたらループ抜け
if [ $btnst -eq 1 ]
then
aplay /home/pi/keihou_teishi.wav
break
fi
#LED点滅・音声出力(ループ)
echo 1 >/sys/class/gpio/gpio26/value
aplay /home/pi/shougai_onsei.wav
sleep 0.5
echo 0 >/sys/class/gpio/gpio26/value
sleep 0.5
done
#LED点灯のまま終了
echo 1 >/sys/class/gpio/gpio26/value
#ボタン初期化
echo 24 > /sys/class/gpio/unexport

障害復旧時に起動するシェルをled_off.shとして以下のように/home/pi/配下作成します。

led_off.sh

#/bin/sh
aplay /home/pi/kaihuku.wav
echo 0 >/sys/class/gpio/gpio26/value
aplay /home/pi/kaihuku.wav
echo 26 > /sys/class/gpio/unexport

これでシェルの準備はできました。

次にブレッドボードを以下のように配線します。

3vの電源
GPIO26(LED出力)
GPIO24(スイッチ入力)
GND
を利用します。

breadboard_003

 

 

これでスクリプトと物理的な配線の準備が完了です。
次回は完結編としてrshの設定とzabbix側の設定を紹介します。