in Blog

มาเล่น Telegraf กับ MQTT Broker กัน

Telegraf มี plugin ให้ใช้งานได้หลายรูปแบบทั้ง input, output, process และ service ขึ้นอยู่กับเราต้องการใช้งานแบบไหน ครั้งนี้เราจะใช้ MQTT Consumer สำหรับเชื่อมต่อไปยัง MQTT Broker เพื่อ Subscribe ใน Topic ที่เราต้องการเอาข้อมูลมาใช้ แล้วให้ Telegraf ส่งข้อมูลไปเก็บใน InfluxDB และใช้ Grafana ในการแสดงผลต่อไป

มาสร้าง config กันก่อน ใช้ docker เหมือนเดิมดังนี้

docker run --rm telegraf --input-filter mqtt_consumer --output-filter influxdb config > mqtt-telegraf.conf

แก้ไข MQTT Broker, Topic, InfluxDB Database, Data Type

จากนั้นสั่ง run Telegraf เพิ่มขึ้นมาได้เลยดังนี้

docker run -v $PWD/mqtt-telegraf.conf:/etc/telegraf/telegraf.conf:ro --net=container:influxdb --name telegraf-mqtt telegraf

มาทดลองกัน สั่ง publish ไปยัง MQTT Broker ใน Topic ชื่อ sensors/dht22 ส่งข้อมูลเป็น json string ดังนี้

mosquitto_pub -t "sensors/dht22" -m "{\"temp\": 25, \"humid\": 52}"

ถ้าจะให้ดูมีข้อมูลเยอะๆ ก็สั่ง loop ใน bash script ก็ได้ หรือจะส่งผ่าน IoT Device มาก็ได้ เมื่อมีข้อมูลส่งมาแล้วก็เข้าไปเพิ่ม Data Source

แล้วก็เพิ่มข้อมูลใน Dashbord ได้เลย