Monitoring/Prometheus-Grafana
[Prometheus - Grafana] - 2 프로메테우스의 데이터 수집방식
돌문어우엉
2025. 4. 19. 13:28
데이터 수집방식
모니터링 시스템에선 다양한 데이터 수집방식이 있으며, 프로메테우스의 데이터 수집방식이 어떤 이점을 갖는지 알아봅니다.
1) 파일을 사용한 수집
어플리케이션에서는 로그를 파일로만 남깁니다. 어플리케이션과는 별도로 파일로부터 수집해서 전송하는 프로세스를 만들어서 전송하는 방식입니다.
장점
- 어플리케이션과 로그 수집기가 관심사의 분리(SoC)가 된다. 아키텍처 상으로 역할과 동작이 구분되므로 유연성이 높아진다.
- 컨테이너 환경을 이용해서 어플리케이션과 수집기의 리소스를 분리하면, 수집기 때문에 어플리케이션에 부하를 주지 않는다.
단점
- 어플리케이션, 로그 수집기를 별도로 관리해야 한다.
- 어플리케이션은 정상인데, 로그 수집기의 이상으로 어플리케이션의 이상으로 판단될 수도 있다.
2) Network를 이용한 Push 방식
어플리케이션에서 직접 로그 수집기로 TCP, HTTP 등의 프로토콜을 이용해서 전송하는 방법입니다.
장점
- 로그 전송의 성공, 실패 여부를 어플리케이션에서 판단할 수 있다.
단점
- 어플리케이션의 로직과 로그 전송을 같은 process 에서 수행하므로 서로 영향을 미칠 수 있다.
- 로그 전송 때문에 어플리케이션의 부하나 bottleneck 이 있을 수 있다.
- 문제를 디버깅하기 복잡해진다.
3) Netwrok를 이용한 polling 방식
어플리케이션은 시스템의 정보, 로그 정보 등에대해서 scrap 할 수 있는 채널(network port, path)만 열어두고, 수집기에서 주기적으로 Polling으로 scrap 하는 방식입니다. Log 보다는 Meti
c(통계 정보, 상태정보에 대한 snapshot) 수집에 더 적합합니다.
장점
- 어플리케이션과 메트릭에 수집에 대한 관심사의 분리(SoC)가 이루어진다
- 어플리케이션에서 개발자가 수집에 대한 관리를 할 필요가 없다.
- 분산 환경, 컨테이너 환경, 자동화된 인프라 환경에서 사용성이 편하고, 확장성이 높다.
단점
- Polling 주기나 scrap 시점에 따라 값이 바뀌므로 특정 순간의 정확한 정보를 보는데는 적합하지 않다.
프로메테우스의 수집방식
프로메테우스는 Pulling방식을 사용하여 메트릭 데이터를 수집합니다.
IT 시스템이 복잡해지고, 분산된 환경, 리소스 매니저를 사용하는 환경이 겹치면서 polling 방식의 활용도가 높아졌습니다. 또한 polling 을 이용해서 데이터를 수집하기 쉬운 오픈소스인 prometheus (format 과 storage)의 대두가 이 방식을 가속화 시켰습니다.
최근에는 실제 내용의 검색이 필요한 데이터는 File을 이용한 수집으로 , Metric 정보는 polling을 이용한 scrap방식으로 구성합니다.