Zabbixによる気圧の監視・モニタリング「USB-PA (BME280)」 – Debian Linuxによる自宅サーバ

自宅サーバ
自宅サーバ

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 - DogRatIan/USB-Sensor-OpenSource: Example programs for my USB sensors.
Example programs for my USB sensors. Contribute to DogRatIan/USB-Sensor-OpenSource development by creating an account on...

取得プログラム

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を用いて自宅サーバの気圧を監視・モニタリングする方法について解説しました。
これにより、自宅の気圧をリアルタイムで把握しできるようになります。
また、トリガー機能を活用することで、異常な状態になったとき、警告を受け取ることができ、問題を早期発見できるようになります。

コメント

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