Thingsboard
ThingsBoard - Open-source IoT Platform
ThingsBoard is an open-source IoT platform for device management, data collection, processing and visualization for your IoT projects
thingsboard.io
센서데이터를 수집 시각화 IOT 플래폼이다.
도커로 설치 후 설정이 쉬워서 실제 센서데이터를 연계하고 테스트 해보았다.
기본 제공되는 대시보드의 컴포넌트(차트, 테이블, 파이 등) 간단하게 표현가능하나
실제 사용자가 원하는 데이터를 보기 위해서는 커스터 마이징이 필요하다.
DB는 카산드라 또는 Postgres를 지원하는데 내부 DB설계가 어떻게 되었는지 궁금해서
Postgres로 어플리케이션을 실행해서 DB에 접근해서 DB를 살펴 보기도 하였다.
센서당 UUID로 구분하여 실시간 데이터가 쌓이는 구조였다.
게이트 웨이도 따로 지원해서 해당 게이트 웨이는 라즈베리파이에 설치하여 구동도 해보았다.
DOCKER 버전도 제공된다.
[가격]
커뮤니티 에디션은 무료이다.
커뮤니티 에디션을 설치해 보자.
[설치 옵션]
오라클 클라우드 ubuntu에 도커로 설치
[살치옵션]
다양한 프로토콜 수집이 보이는데 기본 In Memory 버전 Postgresql로 설치해서 DB도 확인해볼 예정이다.
[설치 스크립트]
$ cd~
$ cd docker
$ mkdir thingsboard
$ cd thingsboard
$ nano docker-compose.yml
[docker-compose.yml] volumes는 관리를 위해 따로 수정해 주었다.
version: '3.0'
services:
mytb:
restart: always
image: "thingsboard/tb-postgres"
ports:
- "8080:9090"
- "1883:1883"
- "7070:7070"
- "5683-5688:5683-5688/udp"
environment:
TB_QUEUE_TYPE: in-memory
volumes:
# - ~/.mytb-data:/data
# - ~/.mytb-logs:/var/log/thingsboard
- ./data:/data
- ./log:/var/log/thingsboard
[옵션 설명]
- 8080:9090 - 로컬 포트 8080을 노출된 내부 HTTP 포트 9090에 연결
- 1883:1883 - 로컬 포트 1883을 노출된 내부 MQTT 포트 1883에 연결
- 7070:7070 - 로컬 포트 7070을 노출된 내부 Edge RPC 포트 7070에 연결
- 5683-5688:5683-5688/udp - 로컬 UDP 포트 5683-5688을 노출된 내부 COAP 및 LwM2M 포트에 연결
- ~/.mytb-data:/data - 호스트의 디렉터리를 ~/.mytb-dataThingsBoard DataBase 데이터 디렉터리에 마운트합니다.
- ~/.mytb-logs:/var/log/thingsboard - 호스트의 디렉터리를 ~/.mytb-logsThingsBoard 로그 디렉터리에 마운트합니다.
- mytb - 이 머신의 친근한 로컬 이름
- restart: always - 시스템 재부팅 시 자동으로 ThingsBoard를 시작하고 장애 시 다시 시작합니다.
- image: thingsboard/tb-postgres - 도커 이미지는 thingsboard/tb-cassandra또는 일 수도 있습니다.thingsboard/tb
[폴더권한]
홈페이지 기본 가이드
mkdir -p ~/.mytb-edge-data && sudo chown -R 799:799 ~/.mytb-edge-data
mkdir -p ~/.mytb-edge-logs && sudo chown -R 799:799 ~/.mytb-edge-logs
내가적용한 부분
sudo mkdir -p data && sudo chown -R 799:799 data
sudo mkdir -p log && sudo chown -R 799:799 log
[실행]
홈페이지 가이드
docker compose up -d
docker compose logs -f mytb
내가 실행한 명령어 위와 같은 명령어
sudo docker-compose up -d
[중지]
sudo docker-compose down
[접속]
http://아이피:8080
[기본계정]
시스템 관리자 : sysadmin@thingsboard.org / sysadmin
입주관리자 : tenant@thingsboard.org / 입주자
고객 사용자 : customer@thingsboard.org / 고객
[시스템 관리자 메인]
[tenant]
[규칙사슬] 데이터 수집하여 어떤 동작을 할지를 정의 할 수 있다.
[대시보드] 수집데이터를 시각화 할 수 있다.
[장치] 수집 데이터의 토큰 발행 및 정의를 할 수 있다. 수집프로토콜은 다양하므로 홈페이지에서 확인이 필요하다.
[사용설명] 홈페이지를 참고하여 샘플을 구동해 볼 수있다. 설명은 생략
ThingsBoard Community Edition
ThingsBoard documentation - learn about the platform and get your IoT projects running on ThingsBoard
thingsboard.io
[postgresql 접속] ThingsBoard가 사용중인 Postgresql 접속
# postgresql 외부접속 허용
docker thingsboard bash 접속
$ sudo docker ps
---------------------------------------------------------------------------------------------------
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fa9a3e48aa50 thingsboard/tb-cassandra "start-tb.sh" 54 minutes ago Up 54 minutes
0.0.0.0:1883->1883/tcp, :::1883->1883/tcp, 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp, 0.0.0.0:5683->5683/udp, :::5683->5683/udp, 0.0.0.0:8080->9090/tcp, :::8080->9090/tcp thingsboard_mytb_1
---------------------------------------------------------------------------------------------------
$ sudo docker exec -it fa9a3e48aa50 bash
$ thingsboard@fa9a3e48aa50:/$ psql
postgresql thingsboard 유저 암호 생성
thingsboard=# ALTER USER thingsboard WITH PASSWORD 'postgresql';
thingsboards docker-compose.yml postgres 5432포트 맵핑
ports:
- "8080:9090"
- "1883:1883"
- "5683:5683/udp"
- "5432:5432"
# postgresql.conf 설정 파일을 엽니다. 현재 제 docker은 root 권이므로 root 계정으로 수정
~/docker/thingsboard/mytb-data/db# nano postgresql.conf
# 설정 파일에서 아래와 같이 변경
# listen_addresses = 'localhost' -> 주석으로 되어있음
listen_addresses = '*'
# 설정 파일을 엽니다.
~/docker/thingsboard/mytb-data/db# nano pg_hba.conf
# 설정 정보 마지막 라인에 아래내용 추가
host all all 0.0.0.0/0 md5
#thingsboard 재시작
$ sudo docker-compose down
$ sudo docker-compose up -d
[postgresql 접속] DBeaver로 테스트함
데이터 수집을 설정해보면 실제 데이터가 쌓이는 구조를 확인 할 수 있다.
'Server > Application' 카테고리의 다른 글
esp8266 duckdns 설정 (0) | 2023.04.01 |
---|---|
SPROC - 서버 모니터링 구성 참고 (0) | 2023.04.01 |
Visual Studio Code Server (0) | 2023.03.29 |
IMMICH - Google Photo 대체 프로젝트 (0) | 2023.03.29 |
모니터링 솔루션 checkmk (0) | 2023.03.29 |