1069 words
5 minutes
[kafka]14. 모니터링
Overview
모니터링 대상이 되는 가장 중요한 지표는 무엇인가?
1. 모니터링 대상 지표
지표 출처에 따른 분류
어떤 지표를 모니터링할 것인가?
1. 경보 vs 디버깅
- 디버깅을 목적으로 하는 지표는 문제의 복잡성 및 원인 파악 때문에 경보를 위한 지표보다 더 많은 시간 범위가 필요
- 디버깅을 목적으로 하는 지표는 문제의 복잡성 및 원인 파악 때문에 경보를 위한 지표보다 더 많은 시간 범위가 필요
2. 자동화 vs 수동
- 자동화를 목적으로 하는 지표을 경우 어차피 컴퓨터가 처리해야 하는 작업이므로 대량의 메트릭을 사용해 세부적인 부분까지 데이터를 수집해도 무방
- 사람이 봐야 하는 지표는 일정 수준을 넘어서면 어떤지표를 보고 어떻게 심각도를 판단해야할지 알 수 없는
alert fatigue
가 발생할 수 있으므로 주의
3. Health Check
간단한 상태검사를 통해 어플리케이션이 살아있는지 여부 확인
보통 두 가지 방법 사용
- 브로커 상태를 확인하는 외부 프로세스 사용
- dfdf
2. Service Level Objectives (SLOs)
Concept
- SLI : Service Level Indicators. 서비스 수준 지표. 보통 전체 이벤트에 대한 성공적인 이벤트의 비율로 측정됨
- SLO : Service Level Objectives. 서비스 수준 목표. 서비스 수준 한계선을 정의하는 지표. SLI에 목표값을 설정한 것. ex) 7일간 웹서버 요청 중 99%가 1초 이내에 응답해야 한다.
- SLA : Service Level Agreement. 서비스 수준 계약. 서비스 제공자와 사용자 간의 계약으로, SLO를 충족해야 한다.
- Burn Rate : SLO를 초과하는 지표의 비율. SLO를 초과하는 비율을 계산하여 얼마나 빨리 SLO를 초과하는지 알 수 있음
일반적인 지표들
- latency : 응답이 얼마나 빨리 반환되는가?
- quality : 응답의 내용이 적절한가?
- security : 요청과 응답이 적절히 보호되는가?
- throughput : 단위시간당 처리량은 얼마인가?
Alert 에 SLO 적용
- SLO는 직접적인 Alert의 기준이 되기 어려움
- burn rate
3. 브로커 모니터링
클러스터 문제 진단
- 단일 브로커에서 발생하는 경우
- 오버로딩된 클러스터에서 발생하는 경우
- 컨트롤러 문제
Troubleshooting : Cluster Monitoring
Concept
- Cruise Control : 카프카 클러스터의 자동화된 리소스 관리 도구. 파티션 리밸런싱 지원
불완전한 복제 파티션
Concept
- UnderReplicatedPartitions : 불완전 복제 파티션. 기본적으로 리더 레플리카를 잡고 있는 파티션 중 팔로워 레플리카가 따라오지 못하고 있는 파티션의 수를 나타냄
불완전 복제 파티션이 단일 브로커에 몰려있을 경우
- 상대적으로 대응하기 쉬움
- 개별 지표값이 튀는 경우만 확인하면 됨
- 기본적으로 각각서버의 가용성, 저장장치, OS 사용률 또한 모니터링 필요
불완전 복제 파티션이 클러스터 전체에 걸쳐 분산되어 있을 경우
4. 컨슈머 지표
fetch manager
브로커별, 토픽별 지표
컨슈머 코디네이터 지표
쿼터 관련 지표
5. 랙 모니터링
6. 종단 모니터링
end-to-end monitoring
특정 지연의 증가 원인이 무엇인가?
- 카프카 클러스터에 메시지를 쓸 수 있는가?
- 카프카 클러스터에서 메시지를 읽을 수 있는가?
Key Takeaway
Key Takeaway
- 하드웨어나 운영체제 수준에서 발생하는 문제를 제외한다면 대부분의 문제는 카프카 클러스터 안에서 요청이 몰려서 발생한다.
- 카프카 모니터링에서 가장 자주 쓰이는 지표 중 하나는 불완전 복제 파티션이다. 이 측정값은 클러스터에 속한 브로커 단위로 집계된다.
Further Reading
Reference
- 카프카 핵심 가이드