아두이노 센서 데이터 대시보드 구현 (4/7) – Influxdb + Telegraf + Grafana 도커 컴포즈

Sep 12, 2024 | 0 comments

아두이노 온습도 센서에서 수집된 데이터로 대시보드를 구성하는 과정을 살펴보겠습니다
총 7개의 포스트로 이루어지며 아래 글목록을 보시면 확인이 가능합니다.

개요

IOT 프로젝트 구현 사례들을 검색하다가 오픈 소스 이면서 도커 컨테이너에 올려서 사용할 수 있는 서비스만 고르다 보니 Influxdb + Telegraf + Grafana 의 구성으로 진행하게 되었습니다.
네이버에서 국내 사례를 검색해 봐도 이미 다양한 사례들이 있습니다.

IOT 프로젝트도 처음 해보는 상황이고 시계열 데이터베이스도 실제로 사용해 본적은 없습니다.
그래서 구성해보고 마음에 들지 않는 경우 쉽게 다른 서비스로 전환을 편하게 하기 위해 도커 컴포즈로 컨테이너 그룹을 생성합니다.

서비스 구성 및 참조 사이트

Influxdb vs Grafana 대시보드 비교

아래 이미지를 보면 Influxdb 와 Grafana 대시보드를 비교해 볼 수 있습니다.
Influxdb 대시보드가 나쁘다기 보다는 좀 더 전문적인 대시보드도 경험해 보는 게 좋을 것 같습니다.

Influxdb dashboard
Grafana dashboard

컨테이너 그룹 디렉토리 생성

먼저 세가지 서비스를 구성할 디렉토리 구조를 만들어 보겠습니다.
도커 폴더로 이동한 다음 컨테이너 그룹 폴더(MqttUI) 를 생성하고 그 하위에 각 서비스별 디렉토리를 생성합니다.

# 도커 폴더 이동
cd /volume1/docker

# 디렉토리 만들기
mkdir MqttUI
cd MqttUI

mkdir influxdb
mkdir influxdb/config
mkdir influxdb/data
mkdir grafana
mkdir grafana/etc_grafana
mkdir grafana/var_lib_grafana
mkdir telegraf

설정 파일 생성

Telegraf config 샘플 파일

# telgraf config 파일 생성
docker run --rm telegraf:1.31.3 telegraf config > /volume1/docker/MqttUI/telegraf/telegraf.conf

Grafana 설정 파일

# grafana 설정 파일 생성
docker run --rm --entrypoint /bin/sh grafana/grafana:11.1.3 -c "cat /etc/grafana/grafana.ini" > /volume1/docker/MqttUI/grafana/etc_grafana/grafana.ini

Grafana 폴더 권한 수정

# grafana 폴더 권한 수정
sudo chown -R 472:472 grafana

컨테이너 그룹 실행

컨테이너 그룹 폴더에 docker-compose.yaml 파일을 아래와 같이 작성해서 저장합니다.
2024년 8월 14일 기준 3가지 서비스의 최신 도커 이미지를 사용합니다.

# 2024-08-14 기준 최신버전
# grafana:11.1.3
# influxdb:2.7.9
# telegraf:1.31.3

version: '3.6'
services:
  influxdb:
    image: influxdb:2.7.9-alpine
    container_name: influxdb
    ports:
      - 48086:8086
    volumes:
      - type: bind
        source: /volume1/docker/MqttUI/influxdb/data
        target: /var/lib/influxdb2
      - type: bind
        source: /volume1/docker/MqttUI/influxdb/config
        target: /etc/influxdb2
    restart: always
  telegraf:
    image: telegraf:1.31.3
    container_name: telegraf
    volumes:
      - /volume1/docker/MqttUI/telegraf/telegraf.conf:/etc/telegraf/telegraf.conf
    restart: always
  grafana:
    image: grafana/grafana:11.1.3
    container_name: grafana
    user: '472:472'
    ports:
      - 43000:3000
    environment:
      - GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource
    volumes:
      - /volume1/docker/MqttUI/grafana/var_lib_grafana:/var/lib/grafana
      - /volume1/docker/MqttUI/grafana/etc_grafana/grafana.ini:/etc/grafana/grafana.ini
    restart: always

다음 스크립트를 실행해서 컨테이너 그룹을 실행합니다.

# 컨테이너 그룹 실행
docker-compose up -d

컨테이너 그룹을 위한 기본 구성은 완료되었습니다.
각 서비스별 컨테이너 구성에 대한 상세 정보는 이후 포스트를 참조하시면 됩니다.

Learn more on this topic

Related Blog Posts

Join in the conversation

Leave a Comment

0 Comments

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

무료 온라인 전광판

전광판

텍스트를 입력하고 텍스트 효과 및 배경효과 를 변경해서 전체화면으로 표시할 수 있는 전광판 용도로 사용하실 수 있습니다. 각종 스포츠 및 공연 관람시 응원 용도로 사용이 가능합니다.

Carousel

여러개의 슬라이드를 추가하여 프레젠테이션 및 이미지 슬라이드 용도로 사용하실 수 있습니다. 브라우저가 포함된 IT 기기로 큰 모니터에 연결하여 매장 내 공지사항 및 메뉴소개를 이미지로 표시할 수 있습니다.

Pin It on Pinterest

Shares
Share This

Share This

Share this post with your friends!

Shares