본문 바로가기
Engineering/Tools

prometheus에서 docker container metric 수집 방법 (cadvisor / daemon.json 설정)

by 알탱2 2023. 5. 2.
반응형

prometheus를 통해 Host System의 metric을 수집하는 방법으로 Node-Exporter를 잠시 알아본 적이 있었다.

해당 글은 https://jinane.tistory.com/92 참고.

 

담당 제품이 기존에 docker container 형태로 배포가 되다보니 Host System 뿐 아니라 docker container의 metric 수집 방법은 뭐가 있을지 간단히 찾아 보았고, 아래 2가지 방법에 대해 찾을 수 있었다.

우선 설치 방법을 알아보고 각각 metric 출력까지는 확인 하였으나, 상세 metric 내용 자체를 다 살펴보고 비교해보진 못하였다. 그 부분은 실제 모니터링 적용을 하게되면 그때 좀 더 자세히 비교해보려고 한다.

일단 아래 2가지 방법에 대해 각각 설치 과정을 기록해 보았다.

 

 

(1) cAdvisor 설치

: Node-Exporter 처럼 prometheus 와의 조합으로 Docker, Kubernetes 등의 다양한 container 기반의 서비스 모니터링에 가장 많이 사용하는 오픈소스 프로그램이다. 자세한건 구글에 많이 검색되어 있으니 찾아보자.

 

1) docker-compose.yml 작성

version: '3.2'
services:
  cadvisor:
    image: gcr.io/cadvisor/cadvisor:latest
    container_name: cadvisor
    ports:
    - 8080:8080
    volumes:
    - /:/rootfs:ro
    - /var/run:/var/run:rw
    - /sys:/sys:ro
    - /var/lib/docker/:/var/lib/docker:ro
    depends_on:
    - redis
  redis:
    image: redis:latest
    container_name: redis
    ports:
    - 6379:6379

2) docker container 생성&실행

docker-compose up -d

3) metric 조회 API 호출 

curl 127.0.0.1:8080/metrics

 

 

 

(2) docker daemon 설정 파일(daemon.json)에 metric api 설정 추가

: Docker daemon에서도 기본 metric을 조회할 수 있도록 API 제공 기능이 포함되어 있고, 해당 API 접속을 위한 설정만 추가하는 방법이다.

 

1) docker daemon.json에 아래와 같이 설정 추가

: 다른 설정이 이미 있는 경우, json 문법에 맞게 내용을 추가한다.

cat /etc/docker/daemon.json

{
  "metrics-addr" : "0.0.0.0:9323",
  "experimental" : true
}

2) docker daemon 재시작

systemctl restart docker.service

3) metric 조회 API 호출

curl 127.0.0.1:9323/metrics

 

반응형

댓글