시스템 모니터링을 위한 Grafana, influxdb 2, telegraf 설치(1)
반응형

시스템 모니터링을 위한 Grafanainfluxdb 2telegraf 설치 방법이며 

구동 환경은 편의성을 위해 docker 와 docker-compose를 사용한다.

특히 influxdb 2 를 이용하는 방법으로 설명한다.

 

docker-compose 및 데이터 경로 생성

# root 권한으로 작성한다. EC2 생성 시 /data 경로 필요
 
$ cd /data
$ mkdir -p /data/inftelegra/influxdb2/config
$ mkdir -p /data/inftelegra/influxdb2/data
$ mkdir -p /data/inftelegra/grafana/etc_grafana
$ mkdir -p /data/inftelegra/grafana/var_lib_grafana
$ mkdir -p /data/inftelegra/telegraf/
$ chown -R 472:472 /data/inftelegra/grafana/

/data/inftelegra 로 지정한 이유는 여러 개의 docker-composer를 구분하여 관리하기 위해서이다.

 

docker-compose.yml 파일 생성

# vi /data/inftelegra/docker-compose.yml
# telegraf는 http API 8086 으로 호출
 
version: '3.6'
services:
  influxdb2:
    image: influxdb:2.0.8-alpine
    container_name: influxdb2
    ports:
      - 8086:8086
    volumes:
      - type: bind
        source: /data/inftelegra/influxdb2/data
        target: /var/lib/influxdb2
      - type: bind
        source: /data/inftelegra/influxdb2/config
        target: /etc/influxdb2
    restart: always
  grafana:
    image: grafana/grafana:8.1.2
    container_name: grafana
    ports:
      - 3000:3000
    environment:
      - GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource
    volumes:
      - /data/inftelegra/grafana/var_lib_grafana:/var/lib/grafana
      - /data/inftelegra/grafana/etc_grafana/grafana.ini:/etc/grafana/grafana.ini:ro
    restart: always
  telegraf:
    image: telegraf:1.19.3
    container_name: telegraf
#    ports:
#      - 8092:8092
#      - 8094:8094
#      - 8125:8125
    volumes:
      - /data/inftelegra/telegraf/telegraf.conf:/etc/telegraf/telegraf.conf:ro
    restart: always
 
# 작성한 config 파일에 문제가 없는지 확인
$ docker-compose config

향후 관리를 위해 docker image는 버전을 지정하였다.

 

config 파일 생성

# tag 및 버전은 상황에 맞춰 수정한다.
# docker-compose에 기재된 버전을 따라야 한다.
 
# telgraf 용
docker run --rm telegraf:1.19.3 telegraf config > /data/inftelegra/telegraf/telegraf.conf
 
# grafana 용
docker run --rm --entrypoint /bin/sh grafana/grafana:8.1.2 -c "cat /etc/grafana/grafana.ini" > /data/inftelegra/grafana/etc_grafana/grafana.ini

 

컨테이너 실행

# 실행
$ docker-compose up -d     
 
CONTAINER ID   IMAGE                        COMMAND                  CREATED          STATUS          PORTS                                               NAMES
b1f9815e4121   telegraf                     "/entrypoint.sh tele…"   53 minutes ago   Up 53 minutes   8092/udp, 8125/udp, 8094/tcp                        telegraf
3a12bb621e52   grafana/grafana:latest       "/run.sh"                53 minutes ago   Up 53 minutes   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp           grafana
aec446a6c8c7   influxdb                     "/entrypoint.sh infl…"   53 minutes ago   Up 53 minutes   0.0.0.0:8086->8086/tcp, :::8086->8086/tcp           influxdb
 
# 종료
# docker-compose down          
# 모든 컨테이너가 삭제된다.

 

반응형