[데이터엔지니어링] - Project (5) : 프로메테우스와 Grafana

nothingisme·2023년 12월 2일
1
post-thumbnail
🤩 마지막으로 각자 Airflow 활동을 Prometheus와 Grafana로 Monitoring하는 활동을
진행해보기로 했다

다음 글을 참고하여 진행하였다. 알려준 혜지 자기 라뷰 🫶
대한민국 데이터 엔지니어링의 미래가 정리한 글이 궁금하다면?? 👉🏻 바로 가기


1️⃣ Airflow 설정

Airflow에서 prometheus로 metric 정보를 보내주기 위해 설정해줘야 하는 부분이 있다.

airflow.cfg 파일을 다음과 같이 수정해준다.


2️⃣ Prometheus

Converting statsd metrics to Prometheus metrics

statsd_exporter 설치

go 명령어를 사용하기 위해서 golang-go를 설치해주고 exporter를 설치한다.

$ sudo apt install golang-go
$ go install github.com/prometheus/statsd_exporter@latest

statsd_exporter 실행

Airflow가 실행 중인 같은 machine에서 statsd_exporter를 시작한다.
이때 statsd_exporter가 설치된 경로(go가 설치된 곳에 있다)를 찾아서 해당 위치에서 statsd_exporter 파일을 실행시켜줘야 한다.

  • EC2에서 8125 포트도 열어두는 것을 잊지 말자~!
$ export GOLANG=/home/ubuntu/go/bin
$ $GOLANG/statsd_exporter --statsd.listen-udp localhost:8125 --log.level debug

Prometheus metric 추적

위에 사진의 마지막을 보면, "Accepting Prometheus Requests" addr=:9102라고 나와있는 것을 확인할 수 있다. 9102포트에서 statsd_exporter를 추적해보자.

우선 EC2 인스턴스의 보안(인바운드 규칙)에서 포트 9102를 허용해주는 것을 잊지 말자

그리고 다음 명령어를 실행한다.

$ curl localhost:9102/metrics

이렇게 뜨면 pip install statsd해주자


프로메테우스

프로메테우스 설치

다음 명령어를 통해서 프로메테우스를 설치한다. 버전이 현재 기준이므로, 공식 페이지 에서 원하는 버전에 대한 링크를 복사하면 된다.

$ wget https://github.com/prometheus/prometheus/releases/download/v2.48.0/prometheus-2.48.0.linux-amd64.tar.gz
$ tar xvfz prometheus-*.tar.gz
$ mv prometheus-2.48.6=0.linux-amd64 prometheus
$ cd prometheus
$ export PROMETHEUS_HOME=$(pwd)

Airflow에 대한 metric도 수집하기 위해서 아래와 같이 prometheus.yml 파일의 scrape_configs 부분에서 다음 job을 추가해준다.

scrape_configs:
  - job_name: airflow
    static_configs:
      - targets: ['localhost:9102']

프로메테우스 폴더에서 실행하면 된다.

$ ./prometheus --config.file=prometheus.yml

다음 주소 http://localhost:9090/graph (EC2 환경이라면 localhost 대신에 인스턴스 퍼블릭 IP주소를 넣으면 된다.)에 접속하면 다음과 같이 뜬다.


3️⃣ 그라파나

그라파나 설치

최선 버전 다운로드 링크

$ wget https://dl.grafana.com/oss/release/grafana-10.2.2.linux-amd64.tar.gz
$ tar -zxvf grafana-10.2.2.linux-amd64.tar.gz
$ mv grafana-v10.2.2 grafana
$ cd grafana
$ export GRAFANA_HOME=$(pwd)

grafana 폴더에서 실행시켜준다

$ ./bin/grafana-server

default 계정은 다음과 같이 설정되어있다. 로그인을 하자!

  • username = admin
  • pw = adm

검색창에 Data Sources 를 검색해서 들어가자

Add data source 클릭하자

Prometheus 선택하자

이름과 Connection url을 설정해준다.

Dashboard -> New Dashboard 해주고 다음 깃허브 에 있는 json 파일로 구성해준다. 그리고 airflow에 있는 스케줄러를 돌려주면 이렇게 찍힌다!!

profile
가볍게 재밌던 거 기록해요

1개의 댓글

comment-user-thumbnail
2023년 12월 2일

멋있으십니다

답글 달기