Quantcast
Channel: mattintosh note
Viewing all articles
Browse latest Browse all 891

Node-RED から Zabbix にデータを連携する

$
0
0

始める始めると言いつつまだ始めてない FlashAir Lua。Zabbix は Zabbix Sender が無くてもソケット通信ができればデータを送れるのは前に試したときにわかったけど、FlashAir の Luaからソケット通信が出来るかどうかがわからない。とりあえず HTTP で何かするのは出来そうなので Node-RED の勉強がてらインターフェイスを準備しておく。

今回は Docker の node-red-docker を使用。

$ sudo docker run -it -p 1880:1880 --name node-red-alpha nodered/node-red-docker

http://localhost:1880を開いて Node-RED へ。

https://screenshots.firefoxusercontent.com/images/1da8feef-b58b-4d7e-b84f-e8f8be064180.png

まずは入力になるノードを作成していく。HTTP GET と HTTP POST は両方作る必要はなく、用途に合わせて作成。

入力で HTTP GET ノードを作成。

https://screenshots.firefoxusercontent.com/images/d88d3bbb-9142-4499-a74a-4d180708163f.png

入力に HTTP POST ノードを作成。

https://screenshots.firefoxusercontent.com/images/452224bf-bb5f-457b-a28a-de6d8cd0fa0a.png

中間に JSONノードを作成。

https://screenshots.firefoxusercontent.com/images/eb706692-1ef6-40f2-bf62-c22f3f5034bd.png

その次に TCPリクエストノードを作成。ポートは Zabbix の待受ポートを指定する。

https://screenshots.firefoxusercontent.com/images/8900e8c9-f675-4371-8590-b58ade174df6.png

一通り出来上がるとこんな感じ。あとはデプロイしておしまい。

https://screenshots.firefoxusercontent.com/images/5274ced3-d902-4246-ab11-fcf49c5321c3.png

テストで GET、POST 両方試してみる。Zabbix に送る JSONはこんな感じ。ホストは raspberrypi-zero、キーは testを作成してある。

{"request": "sender data"
,   "data": [{"host": "raspberrypi-zero"
        ,   "key": "test"
        ,   "value": "0"
        }]}

まずは GET。data は配列で送る必要がある。$RANDOMはシェルの変数で適当な数値が入る。

curl -g-X GET "http://localhost:1880/get?request=sender+data&data[0][host]=raspberrypi-zero&data[0][key]=test&data[0][value]=${RANDOM}"

次に POST。Content-Type: application/jsonを忘れずに。

curl -X POST -H'Content-Type: application/json'--data\'{"request": "sender data",   "data": [        {"host": "raspberrypi-zero"        ,   "key": "test"        ,   "value": "'${RANDOM}'"        }    ]}' http://localhost:1880/post

いずれも成功すれば Zabbix からメッセージが返ってくる。このメッセージが返ってこなければ TCPリクエストに失敗している可能性がある。また、 processed ではなく failed になってしまう場合は host や key が間違っていたり、JSONの内容が間違っている可能性がある。

ZBXDZ{"response":"success","info":"processed: 1; failed: 0; total: 1; seconds spent: 0.000064"}

Zabbix のダッシュボードでデータを確認してみる。

https://screenshots.firefoxusercontent.com/images/e3b3106f-0d5f-4bc1-a6b4-24f0eb74c1a1.png

Node-RED はデータを視覚的に繋げられて、モニタリングやデバッグがもできるので面白い。


Viewing all articles
Browse latest Browse all 891

Trending Articles