Prometheus

ㄱㄴㄷㄹ·2021년 1월 2일
0

리소스 모니터링

목록 보기
1/4

Prometheus란

웹 서버, DB, Network 장비 등 다양한 시스템의 시계열 데이터 형태(TSDB: Time Series Dabase)로 메트릭 정보를 저장하는 시스템이다.

구조

Prometheus Server는 다양한 Jobs/Exporter이 타겟시스템의 수집한 메트릭 정보를 HTTP Endpoint에 접근(풀링)하여 Storage에 메트릭을 저장하는 구조로 Grafana와 같은 시각화 시스템을 통해 프로메테우스 전용 쿼리(PromQL)를 활용하여 사용자의 스타일에 맞게 대시보드를 커스터마이징 할 수 있다.

또한 Exporter를 통한 풀링 방식에 적합하지 않는 타겟 시스템의 경우 Push gateway를 이용해 타겟 시스템이 Push gateway에 메트릭 정보를 push하면 Prometheus Server가 PushgateWay 접근해 데이터를 수집하는 방안이다.

구축

서비스별 사용 포트

Alertmanager : 9093
Prometheus Server : 9090
Node_exporter : 9100

저장소 추가

sudo tee /etc/yum.repos.d/prometheus.repo <<EOF 
[prometheus]
name=prometheus
baseurl=https://packagecloud.io/prometheus-rpm/release/el/7/x86_64
repo_gpgcheck=1
enabled=1
gpgkey=https://packagecloud.io/prometheus-rpm/release/gpgkey
https://raw.githubusercontent.com/lest/prometheus-rpm/master/RPM-GPG-KEY-prometheus-rpm
gpgcheck=1
metadata_expire=300
EOF

설치

sudo yum -y install prometheus2 node_exporter

설정 파일 내 node_exporter(local) 추가

sudo vim /etc/prometheus/prometheus.yml

global:
scrape_interval:     15s   
evaluation_interval: 15s 

# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

- job_name: 'prometheus'
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
    - targets: ['localhost:9090']

- job_name: 'node_exporter'
    static_configs:
    - targets: ['localhost:9100']

재 시작

sudo systemctl restart prometheus node_exporter
sudo systemctl enable prometheus node_exporter

0개의 댓글