Raspberry Pi Zeroで測定した気温・湿度をzabbix_senderでZabbix Serverへ送信(Zabbix設定編)


今回はRaspberry Pi Zeroで取得した気温・湿度をzabbix_senderを使ってZabbix Serverへ送信します。定期的にデータを送信し、Zabbix Server側でグラフ化しようと思います。


























zabbix_senderコマンドの導入

ZabbixServerからzabbix_senderのコマンドをRaspberry Pi Zeroへコピーします。
バイナリを置けばいいだけです。

Raspberry Pi Zero側で以下のコマンドを実行。
$ sudo scp -p pi@<ZabbixServerのIPアドレス>:/usr/local/bin/zabbix_sender /usr/local/bin/.



Zabbixの設定

ホスト登録

ツールバーの[設定]→[ホスト]→右上の[ホストの作成]







ホスト名 Raspberry Pi Zeroのホスト名
表示名 好きな名前をつける
新規グループ作成 好きな名前をつける
IPアドレス そのままで良い

[追加]を押す


アイテム作成

作成したホストの[アイテム]をクリックする。



画面右上の[アイテムの作成]を押す。












名前 気温
タイプ Zabbixトラッパー
キー trapper_temperature
データ型 数値(浮動小数   整数
単位
ヒストリ 30日
トレンド 365日

[追加]を押す。
同様の手順で湿度のアイテムも追加する。


名前 湿度
タイプ Zabbixトラッパー
キー trapper_humidity
データ型 数値(浮動小数   整数
単位 %
ヒストリ 30日
トレンド 365日



Raspberry Pi Zeroからデータ送信テスト

Raspberry Pi Zeroからzabbix_senderコマンドでダミーデータの送信テストを行う。
$ zabbix_sender -z 192.168.11.6 -s raspizero -k trapper_temperature -o 32.5
info from server: "processed: 1; failed: 0; total: 1; seconds spent: 0.000512"
sent: 1; skipped: 0; total: 1


Zabbixの画面からデータが受信できているか確認する。
ツールバーの監視データ→最新データ→ホスト:raspizero











最新の値が記録されていれば成功です。

cronで定期送信

Raspberry Pi Zeroのcronにzabbix_senderコマンドを登録してRaspberry Pi 3のZabbixへ定期的に温度湿度を送信します。

気温測定用pythonスクリプトの作成
$ vim /home/pi/DHT11_Python/read_dht11.py

以下の内容で作成。exampleをてきとうに作り直したのでバグってたらゴメンなさい。
import RPi.GPIO as GPIO
import dht11
import time
import datetime
import sys

# initialize GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.cleanup()

# read data using pin 14
instance = dht11.DHT11(pin=14)

args = sys.argv
method = args[1]

result = instance.read()
while not result.is_valid():
    time.sleep(1)
    result = instance.read()
else:
    pass

if method == "temperature":
    print("%d" % result.temperature)
elif method == "humidity":
    print("%d" % result.humidity)
else:
    pass

cronに作成したスクリプトを登録。
$ sudo vi /etc/crontab
最下部に以下を追記。5分毎にRaspberry Pi ZeroからZabbixへ気温と湿度を送信してます。
# zabbix sender
*/5 * * * * root zabbix_sender -z <ZabbixのIPアドレス> -s <Raspberry Pi Zeroのホスト名> -k trapper_temperature -o `python /home/pi/DHT11_Python/read_dht11.py temperature` >/dev/null 2>&1
*/5 * * * * root zabbix_sender -z <ZabbixのIPアドレス> -s <Raspberry Pi Zeroのホスト名> -k trapper_humidity -o `python /home/pi/DHT11_Python/read_dht11.py humidity` >/dev/null 2>&1

温度・湿度のグラフ作成

温度と湿度を1つのグラフで見るためにグラフを作成します。
ツールバーの設定→ホスト→raspizeroのグラフをクリック。画面右上の[グラフの作成]を押す。

名前 好きな名前をつける
任意の値
高さ 任意の値
アイテム 追加から気温の湿度を選択
アイテム 追加から湿度のアイテムを選択

色やグラフの大きさはお好みで設定。



[追加]ボタンを押す。

ツールバーの監視データ→グラフをクリックし、右上のプルダウンから作成したグラフを選択する。
フィルターのバーを動かすとスコープが変わります。

気温のアイテムと湿度のアイテムが表示されていればOKです。

0 件のコメント :