monitoring data collection methods
monitoring types
infrastructure(performance, resource) monitoring
목적 및 용도
- 서버, 네트워크, 데이터베이스 등의 인프라 자원의 상태 및 성능 모니터링
- 서버 과부화 감지 및 자원 최적화 수행, 클라우드 인스턴스 상태를 추적 및 자동 확장(auto-scaling) 트리거
- 모니터링 대상: cpu 사용률, 메모리 사용량, 디스크 i/o, 네트워크 트래픽 등
도구: prometheus, grafana, zabbix, datadog
application monitoring
목적 및 용도
- 애플리케이션의 성능 및 오류 상태 모니터링
- api 응답 속도 및 오류율 추적, 성능 병목 구간 파악
- 모니터링 대상: 응답 시간, 트랜잭션 속도, 오류율, 메서드 호출 시간 등
도구: new relic, spring boot actuator + prometheus
logging/error monitoring, tracing
목적 및 용도
- 로그 데이터를 분석 및 시각화하여 문제 원인 분석 및 추적
- 예외 및 오류 발생 원인 분석, 비정상적인 활동(보안 침입 등) 탐지
- 모니터링 대상: 애플리케이션 로그, 서버 로그, 보안 로그
도구: elk stack, loki + grafana
distributed tracing
목적 및 용도
- 마이크로서비스 아키텍처에서 서비스 간 호출 관계 및 성능 추적
- 마이크로서비스 간 호출 병목 파악, 트랜잭션 흐름 추적 및 성능 개선
- 모니터링 대상: 서비스 호출 흐름, 트랜잭션 경로, 응답 시간
도구: jaeger, zipkin, spring cloud sleuth
security monitoring
목적 및 용도
- 보안 위협 탐지 및 대응
- 비정상 로그인 시도 탐지 및 알림, 실시간 보안 위협 분석 및 대응
- 모니터링 대상: 로그인 시도, 비정상적인 트래픽, 접근 제어 로그
도구: splunk, elk stack, wazuh
monitoring data collection methods
push monitoring
에이전트(애플리케이션 서버 등)가 데이터를 주기적으로 모니터링 서버로 전송하는 방식으로 서버의 부담을 줄이고 확장성을 늘릴 수 있다
다만 에이전트에서 오류가 발생하는 경우 데이터가 누락될 가능성이 있다
도구: prometheus pushgateway, logstash
pull monitoring
모니터링 서버가 주기적으로 대상(애플리케이션 서버 등)에서 데이터를 가져오는 방식으로 중앙 집중 관리가 가능하고 대상 서버의 상태를 확인하기에 용이하다
대상 서버 수가 많으면 모니터링 서버의 성능이 저하될 수 있다
도구: prometheus, nagios