모니터링 시스템에서 Push 와 Pull 구성의 차이

🔠 특정 시스템, 장치, 환경 등을 실시간으로 감시하고 제어하는 시스템입니다. 일반적으로 데이터의 시각화를 제공합니다.

💡 모니터링이란?

메트릭은 시스템의 데이터를 나타내지만 모니터링은 이러한 값을 수집, 집계 및 분석하여 구성 요소의 특성 및 동작에 대한 인식을 개선하는 프로세스입니다. 

모니터링 시스템은 일반적으로 데이터의 시각화를 제공합니다. 
측정항목은 개별 값이나 표로 표시하고 이해할 수 있지만 정보가 시각적으로 의미 있는 방식으로 구성될 때 사람이 추세를 훨씬 더 잘 인식하고 구성요소가 어떻게 서로 맞춰지는지 이해합니다. 모니터링 시스템은 일반적으로 구성 가능한 그래프 및 대시보드로 측정하는 구성 요소를 나타냅니다. 이를 통해 디스플레이를 보면서 시스템 내에서 복잡한 변수 또는 변경 사항의 상호 작용을 이해할 수 있습니다.

여기까지 모니터링 시스템이 감시하는 대상(시스템)의 정보를 즉, 데이터를 이용해서 관리자의 입맛대로 보기좋게 나열하는것까지는 알게 되었다. 그런데 메트릭 데이터를 모니터링 시스템으로 데이터를 전달할때 가져오느냐(pull) 받느냐(push)에 따라 장단점이 있다.

Push 구성 (target이 능동적으로 데이터를 전달)

메트릭은 모니터링 시스템 중앙에서 정의되며 할당된 host 및 agent로 push 되는 구성
능동적으로 데이터를 획득하지 않지만 모니터링 대상은 지표를 능동적으로 푸시합니다. 

🧾example : 학교에서 선생님이 학생들에게 문제지(agent)를 나눠주고 학생(target)들은 문제지(agent)를 받고 정답(metric data)을 적은 선생님이 정답(metric data)이 적힌 문제지(agent)를 능동적이지 않고 시간이 다되면 push 하는 방식으로 이해하면 좋을것 같습니다.

모니터링 도구

  • JMX : “Java Management Extensions”의 약자로, 자바 애플리케이션의 관리와 모니터링을 위한 기술입니다.
  • CloudWatch : AWS 모니터링 서비스
  • Prometheus : Prometheus는 오픈소스 기반의 시계열 데이터베이스이자 모니터링 시스템입니다.

Pull 구성 (모니터링 시스템이 능동적으로 데이터를 수집)

push 구성과 반대로 대상이 agent를 통해 모니터링 시스템으로 metric data가 전달되는 구성
Metric을 능동적으로 획득하는 모니터링 시스템으로, 모니터링이 필요한 객체는 원격으로 접근할 수 있는 기능이 필요합니다.

🧾example : Push구성의 예를 들었던것처럼 학교에서 선생님과 학생들이 어느 한지역에 함부로 버려진 쓰레기를 주워가는 봉사활동을 한다고 하면 선생님은 모니터링 시스템이고 학생은 agent로써 쓰레기는 메트릭데이터라고 생각하면 학생(agent)이 쓰레기라고 생각하는것(metric data)만 수거하여 선생님(모니터링시스템)이 가지고 계시는 봉투에 쓰레기를 가져다 주는(pull)방식으로 이해하면 좋을것 같습니다.

모니터링 도구

  • Datadog : 클라우드 기반의 모니터링 및 분석 플랫폼
  • Prometheus : 이미 앞서 언급한 대로 Prometheus는 pull-based 모니터링 도구로도 사용됩니다. Prometheus 서버는 정기적으로 타깃 시스템에 요청하여 메트릭 데이터를 가져옵니다. HTTP API를 통해 각 타깃 엔드포인트로부터 데이터를 가져와 저장합니다.
  • Zabbix : 오픈소스 기반의 네트워크 및 애플리케이션 모니터링 도구입니다.
  • Nagios : 시스템 및 네트워크 모니터링 도구로서 널리 사용되는 오픈소스 소프트웨어입니다.

Leave a Comment