웹 서버, 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