๐ ๊ณต๋ถํ๋ ์ง์ง์ํ์นด๋ ์ฒ์์ด์ง?
[IoT Service Platform] Raspberry Pi IoT Server : InfluxDB, MQTT, Grafana, Node-RED & Docker ๋ณธ๋ฌธ
[IoT Service Platform] Raspberry Pi IoT Server : InfluxDB, MQTT, Grafana, Node-RED & Docker
์ง์ง์ํ์นด 2023. 6. 19. 02:14<๋ณธ ๋ธ๋ก๊ทธ๋ Learn Embedded Systems ๋์ ์ ํ๋ธ๋ฅผ ์ฐธ๊ณ ํด์ ๊ณต๋ถํ๋ฉฐ ์์ฑํ์์ต๋๋ค :-)>
=> Raspberry Pi IoT Server Tutorial: InfluxDB, MQTT, Grafana, Node-RED & Docker
๐ฅ๏ธ Node-Red
: ํ๋์จ์ด ์ฅ์น๋ค, API, ์จ๋ผ์ธ ์๋น์ค๋ฅผ ์ฌ๋ฌผ์ธํฐ๋ท์ ์ผ๋ถ๋ก ์์ด์ด๋ง(๋ฐฐ์ ํ)์ํค๊ธฐ ์ํด ๋ณธ๋ IBM์ด ๊ฐ๋ฐํ ์๊ฐ ํ๋ก๊ทธ๋๋ฐ์ ์ํ ํ๋ก ๊ธฐ๋ฐ ๊ฐ๋ฐ ๋๊ตฌ
: IoT ์ฒ๋ผ ๋ค์ํ ๋ฐ์ดํฐ ๋ชจ๋ธ๊ณผ ์ฐ๊ฒฐํ์ฌ ์น์ผ๋ก ์๊ฐํ ํ ์ ์๊ฒ ๋ณด์ฌ์ง๋ ์ฉ๋
๐ฅ๏ธ InfluxDB
: ์ธํ๋ญ์ค๋ฐ์ดํฐ๊ฐ ๊ฐ๋ฐํ ์คํ ์์ค ์๊ณ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค
: ์ด์ ๋ชจ๋ํฐ๋ง, ์ ํ๋ฆฌ์ผ์ด์ ๋งคํธ๋ฆญ์ค, ์ฌ๋ฌผ์ธํฐ๋ท ์ผ์ ๋ฐ์ดํฐ, ์ค์๊ฐ ๋ถ์ ๋ฑ ๋ถ์ผ์์ ์๊ณ์ด ๋ฐ์ดํฐ์ ๊ณ ์์ ๊ณ ๊ฐ์ฉ์ฑ์ ์ ์ฅ ๋ฐ ๊ฒ์์ ์ต์ ํ
: ๋ง์ ์ฐ๊ธฐ ์์ ๊ณผ ์ฟผ๋ฆฌ ๋ถํ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด 2013๋ ์ Go ์ธ์ด๋ก ๊ฐ๋ฐ๋ ์คํ์์ค TSDB
: ๊ฐ์ฅ ์ ๋ช ํ๊ณ , ๋ง์ด ์ฌ์ฉ๋๋ TSDB
: Restful API๋ฅผ ์ ๊ณตํ๊ณ ์์ด API ํต์ ์ด ๊ฐ๋ฅ
๐ฅ๏ธ Grafana
: ๋ฉํฐํ๋ซํผ ์คํ ์์ค ์ ๋๋ฆฌํฑ์ค ๋ฐ ์ธํฐ๋ํฐ๋ธ ์๊ฐํ ์น ์ ํ๋ฆฌ์ผ์ด์
: ์ฌ์ฉ์๊ฐ ํ๋์ ๋์๋ณด๋(๋๋ ์ฌ๋ฌ ๋์๋ณด๋)๋ก ํตํฉ๋ ์ฐจํธ์ ๊ทธ๋ํ๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ํ์ธํ ์ ์์ด ๋ฐ์ดํฐ๋ฅผ ์์ฝ๊ฒ ํด์ํ๊ณ ์ดํด ๊ฐ๋ฅ
๐ฅ๏ธ Docker
: ์ปจํ ์ด๋ ๊ธฐ๋ฐ์ ์คํ์์ค ๊ฐ์ํ ํ๋ซํผ
๐ ํ๋์ ์๋ฒ์ ์ฌ๋ฌ ๊ฐ์ ํ๋ก๊ทธ๋จ์ ์ค์น ๋ฌธ์ & ์๋ก ์ฌ์ฉํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฒ์ ์ด ๋ค๋ฅด๊ฑฐ๋ ๋์ผํ ํฌํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
: ๋ค์ํ ํ๋ก๊ทธ๋จ, ์คํํ๊ฒฝ์ ์ปจํ ์ด๋๋ก ์ถ์ํํ๊ณ ๋์ผํ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ์ฌ ํ๋ก๊ทธ๋จ์ ๋ฐฐํฌ ๋ฐ ๊ด๋ฆฌ๋ฅผ ๋จ์ํ๊ฒ ํด์ค
๐ ์ปจํ ์ด๋
: ๊ฒฉ๋ฆฌ๋ ๊ณต๊ฐ์์ ํ๋ก์ธ์ค๊ฐ ๋์ํ๋ ๊ธฐ์
: ์ถ๊ฐ์ ์ธ OS๋ฅผ ์ค์นํ์ฌ ๊ฐ์ํํ๋ ๋ฐฉ๋ฒ์ ์ฑ๋ฅ๋ฌธ์ ๋ก, ํ๋ก์ธ์ค๋ฅผ ๊ฒฉ๋ฆฌ
: ๋ฆฌ๋ ์ค์์๋ ์ด ๋ฐฉ์์ ๋ฆฌ๋ ์ค ์ปจํ ์ด๋, ๋จ์ํ ํ๋ก์ธ์ค๋ฅผ ๊ฒฉ๋ฆฌ์ํค๊ธฐ ๋๋ฌธ์ ๊ฐ๋ณ๊ณ ๋น ๋ฅด๊ฒ ๋์
๐ ์ด๋ฏธ์ง(Image)
: ์ปจํ ์ด๋ ์คํ์ ํ์ํ ํ์ผ๊ณผ ์ค์ ๊ฐ๋ฑ์ ํฌํจํ๊ณ ์๋ ๊ฒ์ผ๋ก ์ํ๊ฐ์ ๊ฐ์ง์ง ์๊ณ ๋ณํ์ง ์์
: ์ปจํ ์ด๋๋ ์ด๋ฏธ์ง๋ฅผ ์คํํ ์ํ๋ผ๊ณ ๋ณผ ์ ์๊ณ ์ถ๊ฐ๋๊ฑฐ๋ ๋ณํ๋ ๊ฐ์ ์ปจํ ์ด๋์ ์ ์ฅ
: ๊ฐ์ ์ด๋ฏธ์ง์์ ์ฌ๋ฌ ๊ฐ์ ์ปจํ ์ด๋๋ฅผ ์์ฑํ ์ ์๊ณ ์ปจํ ์ด๋์ ์ํ๊ฐ ๋ฐ๋๊ฑฐ๋ ์ปจํ ์ด๋๊ฐ ์ญ์ ๋๋๋ผ๋ ์ด๋ฏธ์ง๋ ๋ณํ์ง ์๊ณ ๊ทธ๋๋ก ๋จ์์์
: ์ปจํ ์ด๋๋ฅผ ์คํํ๊ธฐ ์ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ๊ฐ์ง
: ์๋ก์ด ์๋ฒ๊ฐ ์ถ๊ฐ๋๋ฉด ๋ฏธ๋ฆฌ ๋ง๋ค์ด ๋์ ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ฐ๊ณ ์ปจํ ์ด๋๋ฅผ ์์ฑ๋ง ํ๋ฉด ๋จ
(ํ ์๋ฒ์ ์ฌ๋ฌ ๊ฐ์ ์ปจํ ์ด๋๋ฅผ ์คํํ ์ ์๊ณ , ์์ฒ ๋์ ์๋ฒ ๋ฌธ์ ์์)
๐ ๋ ์ด์ด ์ ์ฅ๋ฐฉ์
: ๋์ปค ์ด๋ฏธ์ง๋ ์ปจํ ์ด๋๋ฅผ ์คํํ๊ธฐ ์ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ณดํต ์ฉ๋์ด ์๋ฐฑ MB (๋นํจ์จ)
: ์ ๋์จ ํ์ผ ์์คํ ์ ์ด์ฉํ์ฌ ์ฌ๋ฌ ๊ฐ์ ๋ ์ด์ด๋ฅผ ํ๋์ ํ์ผ์์คํ ์ผ๋ก ์ฌ์ฉ
: ์ด๋ฏธ์ง๋ ์ฌ๋ฌ ๊ฐ์ ์ฝ๊ธฐ ์ ์ฉ(read only ๋ ์ด์ด)๋ก ๊ตฌ์ฑ๋๊ณ ํ์ผ์ด ์ถ๊ฐ๋๊ฑฐ๋ ์์ ๋๋ฉด ์๋ก์ด ๋ ์ด์ด๊ฐ ์์ฑ
ubuntu ์ด๋ฏธ์ง๊ฐ A + B + C์ ์งํฉ์ด๋ผ๋ฉด => ubuntu ์ด๋ฏธ์ง๋ฅผ ๋ฒ ์ด์ค๋ก ๋ง๋ nginx ์ด๋ฏธ์ง๋ A + B + C + nginx
webapp ์ด๋ฏธ์ง๋ฅผ nginx ์ด๋ฏธ์ง ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์๋ค๋ฉด => A + B + C + nginx + source ๋ ์ด์ด
๐ webapp ์์ค๋ฅผ ์์ ํ๋ฉด A, B, C, nginx ๋ ์ด์ด๋ฅผ ์ ์ธํ ์๋ก์ด source(v2) ๋ ์ด์ด๋ง ๋ค์ด๋ฐ์ผ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ๊ต์ฅํ ํจ์จ์ ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ๊ด๋ฆฌ
๐ฅ๏ธ IoT Stack
๐ ํ๊ฒฝ ์ค์
sudo apt update
sudo apt upgrade
curl -fsSL https://raw.githubusercontent.com/SensorsIot/IOTstack/master/install.sh | bash
sudo shutdown -r now
๐ docker ์์ ๋ค์ด๋ก๋ ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ํ
cd IOTstack
./menu.sh
grafana
influxdb
mosquitto
nodered (issue -> youtube ๋ณด๊ณ ๋ฐ๋ผํ์๊ธธ!)
portainer-ce
docker-compose ps
๐ portainer-ce
Docker Web GUI ๊ธฐ๋ฐ Container ๊ด๋ฆฌ ํด
ํ์ฌ ์คํ๋๊ณ ์๋ Docker ๊ด๋ จ๋ ์ปจํ ์ด๋, ์ด๋ฏธ์ง, ๋ณผ๋ฅจ, ๋คํธ์ํฌ ๋ฑ์ web์์ ๊ด๋ฆฌ
// docker portainer ๋ค์ด๊ฐ๊ธฐ
http://you_ip:9000
docker exec -it influxdb influx
๐ Node-RED ๋ค์ด๊ฐ๊ธฐ
// Node-RED ๋ค์ด๊ฐ๊ธฐ
http://you_ip:1880
๐ Grafana ๋ค์ด๊ฐ๊ธฐ
์์ด๋, ๋น๋ฐ๋ฒํธ admin ์ด๋ค!!!
ํ์ฐธ ํค๋งธ๋ค.... ๊ทธ๋ฆฌ๊ณ ๋น๋ฒ ๋ฐ๊พธ๊ธธ!
์ค์๊ฐ ๋ฐ์ดํฐ ๋ฐ์์ ๊ทธ๋ฆฌ๋ ๊ทธ๋ํ์ธ๋ฐ,
๋ฐ์ดํฐ๋ฅผ ๋ค๊ฐ๋ฐ์ ์๋ฃ์ด์ ์ ๋ ๋ค.. ใ ใ
'๐ฉโ๐ป IoT (Embedded) > Protocol' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
MQTT ๋ก local ์์ pub & sub ๊ตฌํํ๊ธฐ (1) | 2023.12.07 |
---|---|
Wireshark ๋ก ์ด๋๋ท ์ดํด๋ณด๊ธฐ (0) | 2023.11.10 |
CISCO Packet Tracer Student ์ฌ์ฉํด๋ณด๊ธฐ (0) | 2023.10.27 |
[IoT Service Platform] IoT (Internet of Things) & matter (0) | 2023.06.18 |