모니터링 시스템에서 Pull과 Push 접근 방식의 차이점
Source: Dev.to
개요
이 게시물은 모니터링 시스템에서 pull 방식과 push 방식의 차이를 요약합니다.
Pull 접근 방식: 모니터링 서버에 대상 호스트를 설정하고 서버가 해당 호스트에서 데이터를 가져옵니다.
Prometheus는 순수 pull 모델의 몇몇 단점을 보완하기 위해 exporter 라는 메커니즘을 사용합니다. exporter는 대상 호스트에서 실행되며, 모니터링 서버가 여기서 데이터를 pull 합니다.Push 접근 방식: 대상 호스트에 에이전트를 설치하고, 에이전트가 데이터를 모니터링 서버로 전송합니다.
비교 표
| 측면 | Pull 접근 방식 | Push 접근 방식 |
|---|---|---|
| 설치 비용 | 각 대상 호스트마다 설정이 필요해 인력이 많이 소요됩니다 | 간단 – 대상 호스트에 에이전트만 설치하면 됩니다 |
| 관리 비용 | 대상 호스트를 모니터링 서버가 추적할 수 있습니다 | 모니터링 서버는 대상 호스트를 추적하지 않습니다 |
| 데이터 수집 제어 | 모니터링 서버가 조정합니다 | 대상 호스트가 조정합니다 |
| 자원 효율성 | 모니터링 서버가 필요할 때마다 데이터를 가져와 조정이 용이합니다 | 빈번한 데이터 푸시가 대상 호스트의 자원을 더 많이 소비할 수 있습니다 |
| 실시간 능력 | 모니터링 서버의 데이터 요청 시점에 따라 달라집니다 | 실시간으로 데이터를 전송할 수 있습니다 |
| 서버 부하 | 모니터링 서버에서 중앙 집중적으로 조정하기 쉬워집니다 | 각 대상 호스트에서 조정해야 하므로, 대상 수가 늘어날수록 관리 비용이 증가합니다 |
| 통신 비용 | 가져올 데이터가 없을 경우 요청 자체가 낭비가 될 수 있습니다 | 효율적 – 서버는 대상 호스트가 푸시한 데이터만 받습니다 |
| 오류 처리 | 대상 호스트의 이상 징후를 파악하기 쉽습니다 | 대상 호스트가 제외됐는지, 이상이 발생했는지 판단하기 어렵습니다 |
표는 일반적인 장단점을 제시한 것이며, 실제 결과는 서비스와 환경에 따라 달라질 수 있습니다.
Pull과 Push 중 선택
모니터링 시스템을 선택할 때는 다음을 고려하세요:
- 요구 사항: 실시간 가시성 vs. 주기적 폴링.
- 시스템 특성: 대상 수, 네트워크 토폴로지, 자원 제약 등.
- 운영 오버헤드: 설치 및 지속적인 관리 노력.
모니터링 목표와 인프라 제약에 가장 잘 맞는 방식을 선택하십시오.