요약
일반적으로 사용하는 프로메테우스와 프로메테우스 Docker Image 의 메트릭이 저장되는 기본 경로가 다르다.
- 프로메테우스의 기본 메트릭 저장 경로는 /prometheus/data 이다.
- docker image에는 --storage.tsdb.path 옵션이 붙어 /prometheu 로 경로가 변경된다.
prometheus documenter에 나온 정보대로 기본 경로 /prometheus 로 지정하고 싶다면, 따로 --storage.tsdb.path=/prometheus 옵션을 부여해야 하니, 구성에 주의해야 한다.
현재 docker compose를 구성하여 프로메테우스를 구성 중 docker compose up -d 명령으로 컨테이너 실행을 진행하면 계속해서 컨테이너 마운트 포인트 관련한 에러가 발생하는 상황이다.
Docker Image로 빌드한 프로메테우스의 메트릭(chunks)이 파일로 저장되는 기본 경로는 /prometheus 인데, 해당 컨테이너 로그를 확인해보니 docker compose 실행 시 /prometheus/data 경로로 생성되는 것이였다.
즉, 메트릭 저장 경로가 계속 변경된다!
(물론 그냥 /prometheus/data 경로로 마운트해서 사용해도 되긴 한데.... 이유가 너무 궁금해서 찾아봐야겠다.)
https://prometheus.io/docs/prometheus/latest/installation/
* prometheus docker 실행 시 공식 가이드 문서. 해당 문서에는 /prometheus 가 기본 경로라고 나타나있다.
타임테이블
- docker-compose storage(tsdb) path 옵션 해제, prometheus.yml storage(tsdb) conf 해제 후 시도
- docker-compose volumes 옵션 해제 후 시도
- docker-compose logginh 옵션 해제 후 시도
- 동일 이미지(v2.52.0) 로 docker run으로 시도
- 이미지 변경하여 compose, docker run 비교 시도 (latest, v2.50.0, v2.52.0) 총 6개 컨테이너 실행
- docker run과 compose 옵션 동일하게 시도
- docker inspect 비교
- 원인 찾음
원인
원인은 docker compose로 prometheus 컨테이너 실행 시 storage.tsdb 커맨드 지정을 하지 않아서 그렇다.
prometheus documenter 에서 확인하면, 기본 경로가 /prometheus 로 지정되어 있으나,
storage.tsdb 옵션을 따로 지정하지 않고 실행하면 /prometheus/data 로 붙게된다.
(이미지 실행 시에는 storage.tsdb 경로가 /prometheus 로 지정되는 옵션이 자동으로 붙는다.)
# docker run 실행 시
"Args": [
"--config.file=/etc/prometheus/prometheus.yml",
"--storage.tsdb.path=/prometheus",
"--web.console.libraries=/usr/share/prometheus/console_libraries",
]
# docker compose 실행 시
"Args": [
"--config.file=/etc/prometheus/prometheus.yml"
]
즉, docker compose 실행 시에 --storage.tsdb.path=/prometheus 옵션을 넣으면 문제 없이 동작한다.
그러나, 경로가 달라지는건 storage.tsdb 뿐...동일하게 compose에 명시하지 않은 -web.console 들은 따로 문제가 없어 원인 파악이 조금 걸렸다..
결론으로는, prometheus를 docker compose로 실행할때, storage.tsdb 옵션을 지정하지 않으면 기본적으로 /prometheus/data 로 생성된다.
'DevOps > Monitoring_모니터링' 카테고리의 다른 글
[Prometheus/Grafana] 윈도우 OS 시간 모니터링 및 차이 발생 시 알람 발생(+meth 쿼리 결과 비교 및 label_replace 함수 라벨 변환) (1) | 2024.10.28 |
---|---|
[Prometheus] 프로메테우스 config reload (0) | 2024.08.05 |
[Prometheus] 프로메테우스 데이터 마이그레이션 (docker volume 옵션) (0) | 2024.07.08 |
[Prometheus] 프로메테우스 기본 구성 (docker compose 생성) (0) | 2024.06.17 |
[Grafana] Grafana Image Renderer (1) | 2023.11.20 |