개몽가

[시각화/대시보드] Grafana Docker 기반 설치 본문

Infra/DevOps

[시각화/대시보드] Grafana Docker 기반 설치

개몽가 2021. 6. 27. 17:13
grafana 소개

 

Grafana 란 ?
  • 실시간 모니터링을 위한 오픈소스 매트릭 대시보드 툴
  • 시계열 매트릭 데이터 및 서버 리소스의 매트릭 정보나 로그 같은 데이터를 가져오는 쿼리를 쉽게 만들어서 그대로 시각화함
    . Prometheus, MySQL 등 다양한 데이터베이스와 매트릭 수집 시스템을 지원
    . 하나의 대시보드에 여러 매트릭 시스템의 지표들 통합적으로 표시 가능
    . 여러 데이터소스에 대한 대시보드 템플릿 제공
  • 내부 데이터 저장할 필요 없이, 외부 데이터 소스 연동 후 동적으로 데이터를 가져와 시각화
    ex. AWS 클라우드 와치에 직접 쿼리해서 데이터를 가져오기 때문에 대시보드를 조회하는 동안 최신 데이터 확인
그라파나 공식 홈페이지
 

Grafana® Features

Transformations Transformations allow you to rename, summarize, combine, and perform calculations across different queries and data sources. Transform non-time-series data into tables (e.g., JSON files or even simple lookup tables) in seconds without any c

grafana.com

그라파나 공식 홈페이지에 가면 대시보드를 구축했던 사례부터 사용가능한 플러그인들을 볼 수 있다.

 

grafana 설치

 

그라파나 로컬에 바로 설치

1. homebrew 로 grafana 설치

$ brew install grafana


2. 터미널 garafana 실행

$ brew services start grafana


3. 웹 페이지 접속
localhost:3000

4. grafana 종료

$ brew services stop grafana

 

도커를 이용한 그라파나 설치

1. 도커 허브에서 그라파나 이미지 가져와서 실행

도커허브에서 그라파나 검색하면 이미지 있는거 확인할 수 있음

 

 

$ docker run -d --name=grafana -p 3000:3000 grafana/grafana
Unable to find image 'grafana/grafana:latest' locally
latest: Pulling from grafana/grafana 
...(생략)...

run : (새로운 컨테이너를 이미지로부터 만듦) 내 repository에 grafana 라는 이미지 존재여부 확인하고, 격리된 container안에서 grafana 실행

-d : detached mode 백그라운드 모드

-p : publish list 호스트와 컨테이너 포트 연결 (포워딩)

-- name : 컨테이너 이름 설정, 이름으로 조회하거나 삭제할 수 있음

 

2. 도커 이미지 확인

$ docker images
REPOSITORY               TAG       IMAGE ID       CREATED       SIZE
grafana/grafana          latest    368676907400   2 days ago    186MB

 

3. 실행중인 컨테이너 확인 : grafana container

$ docker ps
CONTAINER ID   IMAGE             COMMAND     CREATED         STATUS         PORTS                                       NAMES
8796b6bcff39   grafana/grafana   "/run.sh"   4 minutes ago   Up 4 minutes   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp   grafana

$ docker container ls
CONTAINER ID   IMAGE             COMMAND     CREATED         STATUS         PORTS                                       NAMES
8796b6bcff39   grafana/grafana   "/run.sh"   5 minutes ago   Up 5 minutes   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp   grafana

docker container vs. docker ps : 두 명령어 모두 컨테이너 목록을 보여주는 기능이며, 완전 동일함

 

STATUS : 4,5 분 전에 만들어진 컨테이너가 실행중인 것을 확인할 수 있음

IMAGE : grafana/grafana 이미지로부터 컨테이너 생성

NAMES : run 할 때 부여한 name, 부여안하면 임의의 이름이 자동으로 부여됨

 

컨테이너 목록 필터링해서 보기 

$ docker ps --filter "name=grafana"
CONTAINER ID   IMAGE             COMMAND     CREATED         STATUS         PORTS                                       NAMES
8796b6bcff39   grafana/grafana   "/run.sh"   7 minutes ago   Up 7 minutes   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp   grafana

$ docker container ls --filter "name=grafana"
CONTAINER ID   IMAGE             COMMAND     CREATED         STATUS         PORTS                                       NAMES
8796b6bcff39   grafana/grafana   "/run.sh"   6 minutes ago   Up 6 minutes   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp   grafana

--filter 옵션 : 필터링 조건 추가해 컨테이너 목록을 필터링해서 조회

ex) name 필터 조건을 추가해 컨테이너 이름에 grafana가 포함된 컨테이너 조회

 

4. 웹 페이지 접속
localhost:3000

 

5. grafana 컨테이너 종료

$ docker container stop grafana
grafana

종료 확인

- localhost:3000 접속하면 연결할 수 없음으로 확인 가능함

- 실행중인 컨테이너 확인 명령어로 확인

$ docker ps                                  
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

$ docker container ls   
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

- 종료된 컨테이너 목록 확인 : -a 옵션 추가

$ docker ps -a
CONTAINER ID   IMAGE                    COMMAND                  CREATED          STATUS                      PORTS                               NAMES
8796b6bcff39   grafana/grafana          "/run.sh"                14 minutes ago   Exited (0) 18 seconds ago                                       grafana

$ docker container ls -a 
CONTAINER ID   IMAGE                    COMMAND                  CREATED          STATUS                      PORTS                               NAMES
8796b6bcff39   grafana/grafana          "/run.sh"                14 minutes ago   Exited (0) 32 seconds ago                                       grafana

 

6. 정지된 컨테이너 재시작 : restart, start 모두 사용 가능

$ docker container restart grafana
grafana

$ docker container start grafana
grafana

run vs. start 

run : 새로운 컨테이너를 이미지로부터 만듬

start : 기존에 실행됬던 컨테이너를 실행

 

7. 컨테이너 삭제

컨테이너 정지 시, 정시된 시점의 상태를 유지한 채 디스크에 남아있게 됨 :컨테이너를 실행한 이미지는 삭제되지 않음 (이미지 삭제는 rmi)

$ docker container rm grafana

 

컨테이너 실행하고 종료한 이후에 자동 파기

$ docker run --rm -d --name=grafana -p 3000:3000 grafana/grafana

 

그라파나 설정 파일 확인 및 접근

도커 허브에서 그라파나 이미지 로컬에 가져와서 실행함 : 컨테이너 접속해야 실행파일 볼 수 있음

컨테이너 접속은 실행되어야 접속가능함 : docker ps 명령어로 해당 컨테이너가 실행 중인지 확인해보자
-u 0 옵션 : ini 파일 수정 가능함

$ docker exec -it -u 0 [Container ID] bin/bash

 

 

참고 사이트

https://blog.advenoh.pe.kr/cloud/Docker-%EB%8F%84%EC%BB%A4-%EB%AA%85%EB%A0%B9%EC%96%B4-%EB%AA%A8%EC%9D%8C/

https://blog.voidmainvoid.net/112

https://www.popit.kr/%EA%B0%9C%EB%B0%9C%EC%9E%90%EA%B0%80-%EC%B2%98%EC%9D%8C-docker-%EC%A0%91%ED%95%A0%EB%95%8C-%EC%98%A4%EB%8A%94-%EB%A9%98%EB%B6%95-%EB%AA%87%EA%B0%80%EC%A7%80/