USB-PA (BME280)という機器を使い、Zabbixで気圧を監視・モニタリングする設定を解説したいと思います。
USB-PA (BME280)
USB-PA (BME280) は気圧を測定するための機器です。
BME280のセンサーを使用しており、温度・湿度も取得可能です。
USB-PA (BME280)
https://www.dogratian.com/index.php/sensors/usb-pa-bme280
ebayから入手可能です。ドイツから発送されます。
https://www.ebay.com/itm/256003951678
データの取得方法
USB-PA (BME280)をサーバに接続し、データを取得できるようにします。
データを取得できるプログラムがGitHubにあるのでそちらを使います。
取得プログラム
GitHubから取得しコンパイルします。
cd /usr/src
sudo git clone https://github.com/DogRatIan/USB-Sensor-OpenSource
cd USB-Sensor-OpenSource/software/console_app/_lib
sudo make clean
sudo make
cd ../get_pa
sudo make clean
sudo make
sudo cp get_pa_linux /usr/local/bin/bme280
確認
sudo bme280 -d /dev/ttyACM0 -a -j -P
実行すると下記のように気圧・温度・湿度が取得できます。
{ "temperature": 29.29, "humidity": 44.64, "pressure": 995.10, "name": "SENSOR" }
-a
オプションで気圧・温度・湿度すべて取得できますが時間がかかります。
個別取得だとレスポンスは良くなります。
気圧
sudo bme280 -d /dev/ttyACM0 -p -j -P
温度
sudo bme280 -d /dev/ttyACM0 -t -j
湿度
sudo bme280 -d /dev/ttyACM0 -h -j
Zabbix設定
Zabbix Agent
Zabbix Agentにはユーザーパラメータという、独自の監視項目を追加できる機能があります。
ユーザーパラメータに気圧・温度・湿度のデータを取得できるように設定します。
ユーザパラメータ
Zabbix Agentにユーザパラメータの設定を行います。
jq
コマンドで値だけを抽出します。
sudo vi /etc/zabbix/zabbix_agentd.conf.d/bme280.conf
UserParameter=bme280.pressure,sudo bme280 -d /dev/ttyACM0 -p -P
UserParameter=bme280.temperature,sudo bme280 -d /dev/ttyACM0 -t
UserParameter=bme280.humidity,sudo bme280 -d /dev/ttyACM0 -h
設定後、Zabbix Agentを再起動します。
sudo service zabbix-agent restart
ユーザパラメータ取得テスト
zabbix_agentd
コマンドで取得できるか確認します。
気圧
sudo zabbix_agentd -t bme280.pressure
bme280.pressure [t|994.96]
温度
sudo zabbix_agentd -t bme280.temperature
bme280.temperature [t|27.51]
湿度
sudo zabbix_agentd -t bme280.humidity
bme280.humidity [t|46.98]
sudo設定
bme280
コマンドは管理者で実行しないと値が取得できません。
Zabbix Agentのデータの取得は、zabbix
ユーザで実行されるので、zabbix
ユーザから実行できるように設定します。
echo 'Defaults:zabbix !requiretty' | sudo tee -a /etc/sudoers.d/zabbix-bme280
echo 'zabbix ALL= NOPASSWD: /usr/local/bin/bme280' | sudo tee -a /etc/sudoers.d/zabbix-bme280
Zabbix Server
アイテムの設定
監視しているホストに気圧の監視項目を追加します。
監視項目の追加は、監視ホストのアイテム作成になります。
アイテムの作成
データ収集 -> ホスト
から Zabbix Server
のアイテム
を選択。
アイテムの作成
からアイテムの追加を行います。
気圧
Zabbixでは値が1000を超える場合、1000で除算されて表示されます。
単位がhPaの場合、1000は1khPaの表示
単位に !
をつけることにより、除算されなくなります。
名前: 気圧
タイプ: Zabbixエージェント
キー: bme280.pressure
データ型: 浮動小数
単位: !hPa
監視間隔: 1m
キーは、Zabbix Agentに設定したユーザパラメータを設定します。
値を設定し追加する前に、データが取得できるか確認します。
下のテスト
ボタンからアイテムのテストを呼び出し、値の取得とテスト
で取得できるか確認します。
最新データ
監視データ -> 最新データ
から取得しているデータの確認ができます。
トリガーの設定
Zabbixにはトリガーという、特定の条件に基づいてアラートを発生させる仕組みがあります。
トリガーを使い、気圧が閾値を超えたときにアラートを発生させるよう設定します。
トリガーの作成
データ収集 -> ホスト
から Zabbix Server
のトリガー
を選択。
トリガーの作成
からトリガーの追加を行います。
気圧
名前: 気圧
深刻度: 警告
条件式: avg(/Zabbix server/bme280.pressure,#3)<1000
気圧の最新の3回のデータの平均値が、1000hPaを下回った場合、警告になります。
トリガーの確認
警告になった場合、メッセージが送信される設定を行うことにより、問題を早期に発見できます。
ダッシュボード
ダッシュボードにウィジットを追加し、グラフィカルに確認できるようにします。
ウィジット追加
タイプ: グラフ
名前: 気圧
データセット #1
ホストパターン: Zabbix server
アイテムパターン: 気圧
塗りつぶし: 0
おわりに
Zabbixを用いて自宅サーバの気圧を監視・モニタリングする方法について解説しました。
これにより、自宅の気圧をリアルタイムで把握しできるようになります。
また、トリガー機能を活用することで、異常な状態になったとき、警告を受け取ることができ、問題を早期発見できるようになります。
コメント