[Monitoring] 1. Metric 데이터 수집하기

steve·2024년 7월 25일
0

DevOps

목록 보기
5/8

개요

  1. Prometheus를 활용하여 시스템 메트릭을 수집한다.
  2. Node Exporter를 활용하여 서버의 하드웨어 및 OS 메트릭을 수집한다.
  3. cAdvisor를 활용하여 컨테이너 메트릭을 수집한다.

Prometheus

설치

  1. Docker Compose 파일 설정
services:
  prometheus:
    image: prom/prometheus:v2.18.1
    container_name: do-prometheus
    network_mode: host
    restart: unless-stopped
    volumes:
      - ./conf/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
      - './data/prometheus:/data/prometheus'
    user: root
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'
      - '--storage.tsdb.path=/data/prometheus'
    depends_on:
    - cadvisor
  1. prometheus.yml 설정
global:
  scrape_interval: 15s
  evaluation_interval: 10s
scrape_configs:
  - job_name: 'prometheus'
    scrape_interval: 5s
    static_configs:
      - targets: ['localhost:9090']
  - job_name: 'node_exporter'
    static_configs:
      - targets: ['localhost:9100']
  - job_name: 'cadvisor'
    static_configs:
      - targets: ['localhost:9200']

서버 실행

docker-compose up -d prometheus
  • Metric 지표

Prometheus는 다양한 메트릭 지표를 수집할 수 있다.
예시 query:

  • Host CPU (%)
    100 * (1 - avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[1m])))

  • Host Memory (%)
    100 * (1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes))

  • Host Storage (%)
    100 * (1 - (node_filesystem_free_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"}))

  • CPU 사용량 query 조회 결과

    • 접속 URL : localhost:9090

Node Exporter

설치

Node Exporter는 Prometheus의 exporter로, 서버의 하드웨어 및 OS 메트릭을 수집한다.

  1. Docker Compose 파일 설정
services:
  node-exporter:
    image: prom/node-exporter:v1.8.1
    container_name: do-node-exporter
    command:
      - '--path.rootfs=/host'
    network_mode: host
    pid: host
    restart: unless-stopped
    volumes:
      - '/:/host:ro,rslave'

서버 실행

docker-compose up -d node-exporter
  • metric 조회 결과
    * 접속 URL : localhost:9100
    • 서버의 다양한 자원 리소스를 모니터링할 수 있음

cAdvisor

설치

cAdvisor는 컨테이너 메트릭을 수집하는 도구
1. Docker Compose 파일 설정

services:
  cadvisor:
    image: gcr.io/cadvisor/cadvisor:v0.49.1
    container_name: do-cadvisor
    restart: unless-stopped
    ports:
    - 9200:8080 
    volumes:
    - /:/rootfs:ro
    - /var/run:/var/run:rw
    - /sys:/sys:ro
    - /var/lib/docker/:/var/lib/docker:ro
  1. 서버 실행
docker-compose up -d cadvisor
  • metric 조회 결과
    * 접속 URL : localhost:9200

위와 같이 수집한 서버의 metric정보, Docker container의 metric정보를 활용하여 서버 및 컨테이너의 리소스 사용량을 모니터링하고, 필요한 경우 알림을 설정할 수 있다.

다음 편에 이어서 이렇게 수집한 데이터를 Grafana 대시보드를 통해 UI로 모니터링 할 수 있도록 한다.

0개의 댓글