kafka 모니터링
Kafka 모니터링은 kafka가 데이터 유실 없이 안정적으로 처리하는지 확인하는 것이라고 할 수 있다. 1. 얼마나 많이, 얼마나 빨리 처리하는가에 대한 처리 성능, 2. 데이터 복제는 잘 되는지, broker 장애는 없는지에 대한 서비스 가용성, 3. CPU/Mem이 충분한가, 특정 client가 자원을 독점하는가에 대한 클러스터 확장성을 확인해야 한다.
producer는 얼마나 데이터를 빠르고 안정적이게 전달하는지가 중요하다. broker는 broker로 들어오는 양과 나가는 양이 밸런스가 맞으면서 들어오는 만큼 잘 내보내고 있는지와 latency 지표를 중점적으로 봐야한다. consumer는 producer가 보낸 데이터를 지연 없이 얼마나 잘 빨리 가지고 오는가를 살펴봐야 한다. 아래 표와 같이 kafka 운영에 영향이 높은 지표를 선정하여 모니터링을 하면 된다.
kafka 모니터링 툴
Prometheus + Grafana 기반은 클라우드 환경에서 많이 사용하며 모니터링에 필요한 지표들을 임시로 저장해놓고 단기간의 데이터를 조회하는 것에 특화되어 있다. ELK는 데이터 저장에 특화되어 있어 로그를 저장하고 오랜기간 로그를 관리하면서 검색을 하는 것에 특화되어 있다.
사용자가직접Apache Kafka Broker에접속하여,metric 검색및조회
별도의서버에모니터링용오픈소스SW를설치하고,Apache Kafka의지표를조회하여시각화
Logstash로jmxmetric을수집하고,elasticsearch로저장한후,kibana를활용하여시각화