모니터링(Monitoring)Study2023. 2. 8. 20:18
Table of Contents
728x90
Monitoring
어떤 대상의 상태나 상황을 지속적으로 감시, 관찰하여 예기치 못한 상황과 오류를 대비하고 극복하기 위함
IT 서비스 분야에서는 기본적으로 미리 계획되어 한정된 비용과 리소스를 가지고 서비스를 제공하므로 사용자 경험을 중요시하는 IT 서비스에서는 그 서비스가 어떤 환경에서 운영되든 모니터링의 중요성이 높다.
특히, 확장성과 유연성을 가진 클라우드 플랫폼에서는 지속적인 모니터링을 통해 수집된 데이터를 기반으로 시스템 규모의 확장과 축소를 빠르게 결정해야 하기 때문에 더욱 중요하다.
모니터링의 한 가지 목표는 시간 측면에서 측정되는 주요 metric을 최소화하여 고가용성을 달성하는 것이다.
그렇다면, 모니터링을 통해 수집하는 것은 무엇인가 ?
- Metric
- Log
Metric
- 타임스탬프와 보통 한두가지 숫자값을 포함하는 이벤트를 의미한다.
- CPU Utilization, 시간당 데이터 처리량, 분당 네트워크 속도 등이 될 수 있다.
- 주기적으로 발생한다.
- ex) 시스템 리소스 모니터링에 정기적으로 수집되는 데이터들
Metric 도구
- CloudWatch (AWS 서비스)
- Prometheus
모니터링 시스템 방식
- Push : 데이터를 가진 곳에서 필요한 곳으로 보내준다.
- Pull : 데이터가 필요한 곳에서 가진 곳에 접속해 데이터를 긁어간다.
Push 방식
- Metric은 중앙에서 정의되고 할당된 agent에 push된다.
- 수집된 데이터는 agent가 중앙 서버로 보낸다.
- Nagios, Zabbix 등이 있다.
Pull 방식
- agent 자체에 metric 정보가 포함되어 있다.
- agent는 metric을 수집하며 중앙 시스템으로 데이터 전송을 위한 정보가 보통 agent에 포함되어 있다.
- 수집된 데이터는 중앙 서버가 agent에서 긁어간다.
- Prometheus, Datadog, collected 등이 있다.
Push VS Pull
Push 방식은 중앙 집중형이기에 중앙 모니터링 시스템이 데이터 수집 항목, 수집할 서버를 모두 관리하고 있다.
반면 Pull 방식은 분산형으로 중앙 시스템은 agent가 보내주는 데이터를 긁어갈 수만 있으며, 어떤 데이터를 수집할지 중앙에서 변경할 수 없다.
- 수집 대상이 Auto-scaling 등으로 가변적일 경우, Push 방식이 Pull 방식보다 유리하다.
만약 새로운 수집 Host가 추가될 경우, Push 방식에서는 Host가 Data-Backend로 수집 데이터를 보내주기에, 전송된 데이터를 받기만 하면 된다.
하지만 Pull 방식에선 Data-Backend가 수집 Host로 접속하여 데이터를 긁어가야 하기에, 중앙 서버에서 pull해갈 Host/Service의 목록들을 관리하여야 한다.
- 수집 대상의 유연성 측면에서는 Pull 방식이 Push 방식보다 유리하다.
- Pull 방식에서 중앙 서버는 데이터를 수동적으로 긁어가기만 하기에, Pull system에서 Data-Backend는 언제든지 새로운 데이터(unplanned metrics)들을 수용할 수 있으며 모든 metric을 요청할 수 있도록 구현되어있다.
- 하지만 Push 방식에선 metric을 중앙에서 정의하고 agent로 push하는 구조이며, 새로운 metric 수용을 위해서는 중앙 서버에서 해당 변경 사항을 반영해줘야 한다.
- 보안 측면에서는 Pull이 Push보다 유리하다
Pull 방식은 모니터링 시스템이 애플리케이션에 메트릭을 요청하고, 애플리케이션은 메트릭을 제공하는 방식이기 때문에, 애플리케이션 측에서는 데이터의 수집을 허용할 IP 주소나 데이터 수집기의 인증서를 검증하는 등의 추가적인 보안 설정이 가능하다.
반면, Push 방식은 애플리케이션이 모니터링 시스템에 메트릭을 전송하는 방식이기 때문에, 모니터링 시스템 측에서 데이터를 전송하는 서버의 IP 주소나 인증서 등을 검증할 수 없습니다. 이로 인해, Push 방식에서는 서버측에서 추가적인 보안 설정이 불가능하고, 보안상 취약점이 존재할 수 있습니다.
따라서, 보안상의 이유로 Pull 방식을 사용하는 것이 권장됩니다.
- HA 측면에서 Pull이 Push 방식보다 유리하다.
Data-Backend에서 장애가 발생하더라도, Pull 방식에선 수집 Host에 영향이 없으나 Push 방식에선 데이터 전송 재시도 등 Host에 영향이 생긴다.
728x90
'Study' 카테고리의 다른 글
SDDC(Software Defined Data Center)란 ? (0) | 2023.05.15 |
---|---|
데이터센터 관련 용어 (0) | 2023.05.08 |
ARN이란 ? (0) | 2022.10.18 |
SSH Proxy/Tunneling 개념 및 종류 (0) | 2022.04.05 |
[Red Hat] Openshift 란 ? (0) | 2022.03.29 |
@TTOII :: 뭉게뭉게 클라우드
영차영차 성장 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!