์ด์ ๋ gui ํด์ ์จ์ ํธํ๊ฒ ์ฐ๊ฒฐํ๊ณ ์ถ์ด์ influxdb 2๋ฒ์ ์ ์ฌ์ฉํ์๋ค.
์ค๋์ influxdb 1.8๋ฒ์ ์ด๋ฏธ์ง๋ก ์ปจํ ์ด๋๋ฅผ ์์ฑํ๊ณ ์ผ์๋ฐ์ดํฐ๋ฅผ ์์งํด๋ณด๋ ค๊ณ ํ๋ค.
โ Influxdb 1.8๋ฒ์ ๊ณผ 2.0๋ฒ์ ์ ์ฐจ์ด์
๐ ๋ฐ์ดํฐ ์์ง ๋ฐฉ์์ ์ฐจ์ด
- 1.8 ๋ฒ์ ์ ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํด database์ measurements๋ฅผ ์ฌ์ฉํ๋ค.
- 2.0 ๋ฒ์ ์ ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํด bucket์ ์ฌ์ฉํ๋ค.
๐ GLI์ GUI ์ง์
- 1.8 ๋ฒ์ ์ influx ๋ช ๋ น์ด๋ฅผ ํตํด CLI ํ๊ฒฝ์ ์ ์ํ์ฌ ๋ฐ์ดํฐ๋ฅผ ํ์ธํ๊ฑฐ๋ ์ฟผ๋ฆฌ๋ฅผ ๋์ง ์ ์๋ค.
- 2.0 ๋ฒ์ ์ ๋ธ๋ผ์ฐ์ ๊ธฐ๋ฐ์ GUI ํ๊ฒฝ์ ์ ๊ณตํ๋ฏ๋ก ๋ฐ์ดํฐ๋ฅผ ์๊ฐ์ ์ผ๋ก ํ์ธํ ์ ์๊ณ , ์ฟผ๋ฆฌ๋ ํธ๋ฆฌํ๊ฒ ์์ฑํ ์ ์๋ค.
๐ฅ Telegraf์ influxdb ์ปจํ ์ด๋๋ฅผ ์ฐ๋ํ์ฌ mqtt ๋ฐ์ดํฐ ์์งํ๊ธฐ
โ Influxdb ์ปจํ ์ด๋ ์คํ์ํค๊ธฐ
์ฐ์ , ์๋ ๋ช ๋ น์ด๋ก influxdb 1.8๋ฒ์ ์ด๋ฏธ์ง๋ฅผ ์ด์ฉํด ์ปจํ ์ด๋๋ฅผ ์์ฑํ๊ณ ์คํ์์ผ์ค๋ค.
docker run -d --name influxdb2 -p 8086:8086 -v $PWD/influxdb_data:/var/lib/influxdb influxdb:1.8
๊ทธ๋ฆฌ๊ณ ์ปจํ ์ด๋ ๋ด๋ถ influx cli ์๋ก ์ ์ํ์ฌ "telegraf"๋ผ๋ ์ด๋ฆ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ฏธ๋ฆฌ ๋ง๋ค์ด์ค๋ค.
~ $ docker exec -it influxdb2 influx
Connected to http://localhost:8086 version 1.8.10
InfluxDB shell version: 1.8.10
> CREATE DATABASE telegraf
> EXIT
~ $
โ telegraf ์ค์ ํ์ผ ์์ฑํ๊ธฐ
telegraf.conf ํ์ผ์ ์๋์ ๊ฐ์ด ์์ฑํด์ฃผ์๋ค.
# Global Agent Configuration
[agent]
interval = "10s"
round_interval = true
metric_batch_size = 1000
metric_buffer_limit = 10000
collection_jitter = "0s"
flush_interval = "10s"
flush_jitter = "0s"
precision = ""
debug = false
quiet = false
logfile = ""
# MQTT Input Plugin Configuration
[[inputs.mqtt_consumer]]
servers = ["tcp://192.168.70.203:1883"]
topics = ["#", "data/s/+/b/+/p/#"]
qos = 0
connection_timeout = "30s"
data_format = "json"
json_time_format = "unix"
# InfluxDB Output Plugin Configuration
[[outputs.influxdb]]
urls = ["http://192.168.71.231:8086"]
database = "telegraf"
skip_database_creation = true
- mqtt_consumer ํ๋ฌ๊ทธ์ธ์ server ํญ๋ชฉ์๋ ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋ mqtt ๋ธ๋ก์ปค ์ฃผ์๋ฅผ ์ ์ด์ฃผ์๋ค.
- influxdb ํ๋ฌ๊ทธ์ธ์ urls ํญ๋ชฉ์๋ influxdb ์ปจํ ์ด๋๊ฐ ์คํ๋๊ณ ์๋ host ์ปดํจํฐ์ ip ์ฃผ์์ธ http://192.168.71.231:8086์ ์ ์ด์ฃผ์๋ค.
์ฒ์์๋ ํธ์คํธ ์ปดํจํฐ์ ip ๋์ http://localhost:8086์ ์ ์์๋๋ฐ, influxdb์ ์ฐ๊ฒฐ๋์ง ์๋ ๋ฌธ์ ๊ฐ ์์๋ค.
# telegraf ์ปจํ
์ด๋ ๋ก๊ทธ
2024-11-27T04:13:45Z I! [inputs.mqtt_consumer] Connected [tcp://192.168.70.203:1883]
2024-11-27T04:13:55Z E! [outputs.influxdb] When writing to [http://localhost:8086]: failed doing req: Post "http://localhost:8086/write?db=telegraf": dial tcp [::1]:8086: connect: connection refused
2024-11-27T04:13:55Z E! [agent] Error writing to outputs.influxdb: could not write any address
2024-11-27T04:14:05Z E! [outputs.influxdb] When writing to [http://localhost:8086]: failed doing req: Post "http://localhost:8086/write?db=telegraf": dial tcp [::1]:8086: connect: connection refused
2024-11-27T04:14:05Z E! [agent] Error writing to outputs.influxdb: could not write any address
์์ธ์ telegraf ์ค์ ํ์ผ์์ localhost๋ ํธ์คํธ ์ปดํจํฐ๊ฐ ์๋๋ผ telegraf ์ปจํ ์ด๋ ๋ด๋ถ๋ฅผ ๊ฐ๋ฆฌํค๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋์ ๋ฐ๋์ localhost๊ฐ ์๋๋ผ ํธ์คํธ ์ปดํจํฐ์ ip๋ฅผ ์ ์ด์ฃผ์ด์ผ ํ๋ค.
(ํธ์คํธ ์ปดํจํฐ์ 8086 ํฌํธ์ influxdb์ปจํ ์ด๋์ 8086 ํฌํธ๊ฐ ๋งตํ๋์ด ์๊ธฐ ๋๋ฌธ์ ํธ์คํธ ์ปดํจํฐ์ ip๋ฅผ ์ ์ผ๋ฉด telegraf ์ปจํ ์ด๋์์ influxdb ์ปจํ ์ด๋์ ์ ๊ทผํ ์ ์์)
โ telegraf ์ปจํ ์ด๋ ์คํ
์ค์ ํ์ผ์ ๋ค ์์ฑํ์ผ๋ฉด, ์ค์ ํ์ผ์ด ์๋ ๋๋ ํ ๋ฆฌ๋ก ์ด๋ํด์
์๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ์ฌ telegraf ์ปจํ ์ด๋๋ฅผ ์์ฑํ์ฌ ์คํํด์ค๋ค.
docker run -d --name telegraf2 -v $PWD/telegraf.conf:/etc/telegraf/telegraf.conf:ro telegraf:latest
โ ์์งํ ๋ฐ์ดํฐ ํ์ธ
influxDB shell์ ์ ์ํ์ฌ ๋ฐ์ดํฐ๋ฅผ ํ์ธํด๋ณผ ์ ์๋ค.
$ docker exec -it influxdb2 influx
Connected to http://localhost:8086 version 1.8.10
InfluxDB shell version: 1.8.10
> use telegraf
Using database telegraf
> show measurements
name: measurements
name
----
mqtt_consumer
> select * from mqtt_consumer limit 10
'๊ฐ์ธ ๊ณต๋ถ > IoT' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
docker ์์ telegraf, influxdb(2.x) ์ปจํ ์ด๋ ์ฌ๋ ค์ mqtt ์ผ์ ๋ฐ์ดํฐ ์์งํ๊ธฐ (1) | 2024.11.26 |
---|---|
node-red API์ Auth์ค์ (2) | 2024.09.30 |
MQTT (2) | 2023.11.27 |
[Node-red] flow ์์ฑ (0) | 2023.11.21 |