취미가 좋다

Prometheus & Grafana 정리 본문

Data Engineer

Prometheus & Grafana 정리

benlee73 2021. 7. 27. 18:01

Prometheus

프로메테우스는 대상 시스템으로부터 각종 모니터링 지표를 수집하여 저장하고 검색할 수 있는 시스템이다.

프로메테우스 특징

  • 그라파나를 통한 시각화 지원
  • 많은 시스템을 모니터링할 수 있는 다양한 플러그인을 가지고 있다.
  • 쿠버네티스의 메인 모니터링 시스템으로 많이 사용된다.
  • 프로메테우스가 주기적으로 exporter(모니터링 대상 시스템)로부터 pulling 방식으로 메트릭을 읽어서 수집한다.

 

Grafana

그라파나는 프로메테우스를 비롯한 여러 데이터들을 시각화해주는 모니터링 툴이다.

Kibana(키바나)와의 차이

  • 키바나는 주로 로그 메시지 분석에 사용된다.
  • 그라파나는 시스템 관점(cpu, 메모리, 디스크)의 메트릭 지표를 시각화하는데 특화되어 있다.
  • 키바나는 elasticsearch에 묶여 있지만, 그라파나는 다양한 데이터베이스를 선택할 수 있다.
  • 그라파나는 알람기능을 무료로 사용할 수 있다. 

 


프로메테우스 & 그라파나 튜토리얼

프로메테우스와 키바나를 실행시켜 보자.

추가적인 내용은 링크를 참고하자.

 

나의 경우 triton inference server 를 실행시켜, triton에서 제공하는 프로메테우스 메트릭을 이용하였다.

그래서 그 이후 과정부터 작성한다.

 

1. prometheus.yml 파일 작성

프로메테우스 서버를 실행시킬 때, yaml 파일이 필요하다.

 

아래의 예시처럼 작성한다.

- 로컬의 앱에서 메트릭을 :9000에 쌓는다면 targets 에 host.docker.internal:9000 라고 작성하면 된다.

global:
  scrape_interval:     5s # By default, scrape targets every 15 seconds.
scrape_configs:
  - job_name: 'my-prometheus'
    static_configs:
      - targets: ['{프로메테우스 메트릭을 제공하고 있는 주소}']

 

2. 도커 네트워크 설정

프로메테우스와 그라파나를 각각 도커 컨테이너로 띄울 것이다.

두 컨테이너는 각각의 네트워크 환경을 가지게 되고 같은 도커 네트워크로 묶어주면서 서로 연결될 수 있게 한다.

$ docker network create mynetwork

컨테이너를 띄울 때 --network=mynetwork 옵션을 주면 된다.

 

3. 프로메테우스 서버 띄우기

아래의 명령어를 통해 도커허브에 있는 프로메테우스 이미지를 가져온 후, 프로메테우스 컨테이너를 띄워서 서버를 실행시킬 수 있다.

docker run --network=mynetwork -p 9090:9090 \
	-v ~/prometheus.yml:/etc/prometheus/prometheus.yml \
        --name prometheus \
	-d prom/prometheus \
        --config.file=/etc/prometheus/prometheus.yml

docker ps 명령어를 통해 프로메테우스 컨테이너가 실행중인지 확인할 수 있다.

 

http://localhost:9090/ 에 접속하여 아래의 화면이 뜨면 정상적으로 진행되고 있는 것이다.

 

4. 그라파나 실행

아래의 명령어를 실행하여 그라파나 이미지를 가져와서 띄운다.

docker run --network=mynetwork -d --name=grafana -p 3000:3000 grafana/grafana

위와 마찬가지로 docker ps 를 통해 컨테이너가 잘 띄워졌는지 확인한다.

 

http://localhost:3000/ 에 접속하면 로그인 화면이 뜰 수 있다.

기본적인 아이디와 비밀번호는 admin / admin 이다.

 

로그인 후에 아래의 화면이 뜨면 잘 실행된 것이다.

 

5. 프로메테우스와 그라파나 연결

왼쪽에 있는 Configuration - Data sources 에 들어간다.

 

프로메테우스를 선택하고 프로메테우스 주소를 입력한다. (필요에 따라 다른 정보도 입력한다.)

 

프로메테우스 주소로는 http://<프로메테우스_컨테이너_이름>:9090 를 입력한다.

 

여기서는 http://prometheus:9090 를 입력하면 된다.

 

 

6. 대시보드 생성

왼쪽에 있는 Create - Dashboard 에 들어간다.

 

프로메테우스에서 가져온 메트릭 중 원하는 것들을 골라서, 원하는 형태와 방식으로 구성하면 된다.

 

7. 메트릭 적재

로컬에서 메트릭을 적재하는 어플리케이션을 실행하면 대시보드로 확인할 수 있다.


유튜브 영상을 참고하였습니다.

Comments