안녕하세요.
MQTT 데이터를 흘려보내는 것이 아니라 시계열 데이터를 보려면 DB가 필요할 것입니다. 그중에 InfluxDB를 이용해서 데이터를 저장하는 것을 해보려고 합니다. 그전에 설치를 먼저 실행해 보겠습니다.
1. influxDB 다운로드
- 개발자가 Raspberry Pi의 다양한 운영 체제용 패키지를 특별히 제공했기 때문에 공식 저장소를 사용할 수 있습니다. 그래서 공식 저장소 키를 가져와서 로컬 키리스트에 추가합니다.
이전 명령어 apt-key를 사용할 수 없다고 나옵니다.
wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add -
wget -nc https://repos.influxdata.com/influxdb.key
cat influxdb.key | gpg --dearmor > influxdb.gpg
sudo install -o root -g root -m 644 influxdb.gpg /usr/share/keyrings/
- OS 버전 확인하기
lsb_release -a
- Repository에 패키지 리스트를 추가합니다.
echo "deb https://repos.influxdata.com/debian bookworm stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
- 실제 가능한 패키지 리스트를 다운로드합니다.
2. influxdb 설치하기
sudo apt install influxdb
- systemctl 서비스를 이용해서 시작 시 influxDB가 활성화되게 설정합니다.
sudo systemctl unmask influxdb
sudo systemctl enable influxdb
- 수동으로도 실행을 시킬 수 있습니다.
sudo systemctl start influxdb
3. influxDB 설정하기 준비 (작동 안 함 - 확인만 하기)
- influxDB는 기본설정은 누구나 접근을 할 수 있기 때문에 관리자를 생성하고 비밀번호를 설정하겠습니다.
- 설치하고 처음 접근할 때는 계정이 없기 때문에 바로 접속할 수 있습니다. 그러나 influx 클라이언트 파일이 설치되지 않았습니다.
- 웹으로 접근해보려고 했지만 페이지가 없다고 나타나서 더 이상 진행하지 못했습니다.
- 만약 문제없이 작동된다면 아래와 4번의 InfluxDBStudio 프로그램 실행하지 않고 CLI로 진행하면 됩니다.
- influxd 데몬 서비스를 확인해 보면 버전과 정상 동작하는 것을 확인할 수 있었습니다. 그래서 다른 방법으로 작업해 보았습니다.
4. InfluxDBStudio 이용하여 접속하기
- 감사하게도 influxDB에 접근할 수 있는 OpenSource 프로그램이 있어서 사용해서 접속했습니다.
- 압축 풀고 influxDBStudio.exe를 실행합니다.
- 간단하게 Name과 Address에 influxDB를 설치한 RaspberryPi 주소를 입력합니다.
hostname -I를 입력하면 IP주소를 알 수 있습니다.
- Connect를 눌러 InfluxDB에 연결합니다.
- DB에 접속한 것을 확인할 수 있고, 내부 테이블을 확인할 수 있습니다.
5. 접속할 수 있는 사용자를 추가
- _internal DB 항목에서 오른쪽 버튼을 눌러 “New Query”를 실행합니다.
- 입력창에 USER와 PASSWORD에 내용을 입력하여 실행합니다.
(최상위 항목에서 “SHOW USER” 메뉴로 생성할 수도 있습니다.)
CREATE USER admin WITH PASSWORD 'adminpassword' WITH ALL PRIVILEGES
6. 접속 관련 환경설정
- Terminal 창에서 influxDB 환경설정파일을 편집합니다.
sudo vim /etc/influxdb/influxdb.conf
auth-enabled = true
pprof-enabled = true
pprof-auth-enabled = true
ping-auth-enabled = true
- 그리고 DB를 재시작합니다.
sudo systemctl restart influxdb
- 암호 없이 입력한 계정은 접속할 수 없다고 나타납니다.
- 위에서 설정한 사용자로 다시 입력하면 정상적으로 접속할 수 있습니다.
7. DB 생성
- 간단하게 GUI로 Database 하나를 생성해 보겠습니다. 최상위 항목에서 오른쪽 버튼을 눌러 “Create Database”를 클릭합니다.
- IoT 센서 혹은 데이터 용도에 맞게 이름을 입력하여 생성합니다.
- sensors를 위한 DB가 생성된 것을 확인할 수 있으며 차후에 Table들 생성하여 값을 입력할 수 있습니다.
8. 마 무 리
- 인터넷에 나온 내용을 따라 했지만, RaspberryPi OS 버전도 바뀌고 기타 명령도 변경되다 보니 완벽하게 되지는 않았습니다. 그렇지만 차선책으로 InfluxDB를 설치하고 Databse까지 생성되는 것을 확인하였습니다.
- InfluxDBStudio의 입력 다이얼로그 창크기가 제대로 나타나지 않는 버그가 있었습니다. 그래서 창을 닫으려면 Ctrl + F4로 창을 닫아야 했습니다. 그래도 Query를 보내고 결과를 보는 것을 문제없이 작동했습니다.
- 내용을 빠르게 테스트해 보고 올린다고 실수한 부분이 있을 수 있으니 확인이 필요할 수 있습니다. 다음에는 InfluxDB v2를 RaspberryPi에 설치해 보고 MQTT를 테스트해보려고 합니다.
감사합니다.
<참고 사이트>
1. SuperHouse #41: Datalogging with MQTT, Node-RED, InfluxDB, and Grafana
https://www.youtube.com/watch?v=ffg3_1AgtyA
2. apt-get update gpg key 에러 해결하기(solved)
https://stupidly-honest.tistory.com/26
3. InfluxDBStudio
https://github.com/CymaticLabs/InfluxDBStudio
4. Installing InfluxDB to the Raspberry Pi
https://pimylifeup.com/raspberry-pi-influxdb/
'Embedded > RaspberryPI' 카테고리의 다른 글
[MQTT] CM4 RaspberryPi에 Node-RED에 편집 권한 부여하기 (0) | 2023.12.29 |
---|---|
[MQTT] CM4 RaspberryPi에 Node-RED 설치하기 (0) | 2023.12.26 |
[MQTT]CM4 RaspberryPi에 Mosquitto 간편하게 설치하고 사용자 추가하기 (2) | 2023.12.21 |
Waveshare IO Board + Raspberry PI CM4에 MQTT broker mosquitto2.0.9 컴파일과 도커(docker) 이미지 생성하기 (2) | 2023.12.18 |
Waveshare IO Board + Raspberry PI CM4에 OS 설치하기 (2) | 2023.11.27 |