Embedded/RaspberryPI

[MQTT] CM4 RaspberryPi에 InfluxDB 설치와 설정하기

변화의 물결1 2023. 12. 22. 21:36

 

안녕하세요.

 

  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 프로그램이 있어서 사용해서 접속했습니다.

https://github.com/CymaticLabs/InfluxDBStudio/releases/download/v0.2.0-beta.1/InfluxDBStudio-0.2.0.zip

 

- 압축 풀고 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/

 

 

 

반응형