본문으로 건너뛰기

Kafka 모니터링

exemONE의 Kafka 모니터링은 Message Queue > Kafka 메뉴에서 제공되며, Kafka Cluster 및 Broker의 상태와 성능을 통합 모니터링합니다.

지원 환경: Java 17 이상, Linux 환경에서 Kafka Agent를 On-premise(프로세스) 또는 Docker 컨테이너 방식으로 설치하여 사용합니다.


2. 주요 기능 (화면 구성)

(1) Kafka Card

Kafka 상태별 인스턴스 수를 카드 형태로 표시합니다.

항목설명
Total전체 Kafka 개수. 클릭 시 Map/List에서 전체 Kafka 표시
ActiveActive Kafka 개수. 클릭 시 Active 상태만 필터링
InactiveInactive Kafka 개수. 클릭 시 Inactive 상태만 필터링

(2) Kafka Map

클러스터와 브로커를 트리 구조로 시각화하여 보여줍니다.

  • 1 Depth: 카프카 클러스터 오버뷰
  • Edge: 클러스터-노드 간 관계 표현
  • 2 Depth: 카프카 브로커 노드
  • 마지막 발생 알람 레벨에 따라 색상 변경: Warning(노란색), Critical(빨간색)
  • Sort by severity 토글로 심각도 순 정렬 가능
  • 클러스터/브로커 클릭 시 해당 Detail Slide 오픈

(3) Kafka List

Kafka 목록을 Grid 형태로 보여줍니다.

컬럼설명
Instance NameKafka 이름 (클릭 시 Detail Slide 오픈)
Alias사용자 정의 이름
StatusKafka 연결 상태 정보
Alert마지막 발생된 알람 정보
Instance Type인스턴스 타입 (Cluster, Broker 등)
Connection InfoKafka 연결 정보 (IP:Port)
VersionKafka 버전
CPU Usage (%)CPU 사용률
Memory Usage (%)메모리 사용률

(4) Filters

Kafka Group 기준으로 필터링하며, 대소문자 구분 없는 검색을 지원합니다.


3. 클러스터(Cluster) 모니터링

Instance Type=Cluster인 인스턴스 클릭 시 Cluster Detail Slide가 열리며, 6개 탭으로 구성됩니다.

(1) Information 탭

항목설명
Message Queue NameKafka 이름
Agent Version에이전트 버전
Message Queue GroupKafka 그룹
Message Queue Type'KAFKA' 출력
Kafka VersionBroker 인스턴스에서 값 출력
Connection InfoCluster 연결 정보
User Tags사용자 생성 태그 이름/값

(2) Metric 탭 (수집 지표)

Default 최근 30분 데이터를 표시합니다.

Kafka Cluster Stat 수집 항목:

지표설명
Active Controller Count활성 컨트롤러 수
Broker Count클러스터 내 브로커 수
Topic Count토픽 수
Partition Count파티션 수
Online Partition Count온라인 파티션 수
Cluster Total In Sync Replica CountISR(동기화 복제본) 총 수
Cluster Total Out Of Sync Replica Count비동기 복제본 총 수

(3) Brokers 탭

  • Active Controller: 활성화 상태의 Broker 표시
  • Total Broker Count: 총 Broker 수

Broker List Grid:

컬럼설명
Broker NameBroker 등록 이름 (클릭 시 Broker Detail Slide 이동)
Alias Name사용자 지정 이름
StatusBroker 연결 상태
Alert마지막 발생 알람
Connection InfoBroker 연결 정보
JMX PortBroker JMX Port 정보
ControllerBroker 활성화 상태
PartitionsBroker 파티션 수

(4) Topics 탭

컬럼설명
Topic NameTopic 이름 (클릭 시 Topic Detail Slide 오픈)
PartitionsTopic 파티션 수
Replication FactorReplication Factor 수
Under-replicatedUnder-replicated 수
Custom ConfigCustom Config 정보

Topic Detail Slide에서는 Information(Partition Count, Replica Factor, Config, Leader, Replicas, ISR, Offset 등), Metric(Cluster/Broker 기준 Topic 지표), Message(Partition 지정, Key 필터링, 정규식 검색으로 최대 1,000건 메시지 조회) 탭을 제공합니다.

(5) Consumer Groups 탭

컬럼설명
ConsumerConsumer Group과 Consumer 정보
Topic NameConsumer Group의 Topic 이름
PartitionPartition 정보
Current-Offset현재 Offset 위치
Log-End-Offset가장 마지막에 저장된 레코드의 다음 오프셋
Lag미처리 메시지 수
HostConsumer Group의 Host 정보
Client-IDClient-ID 정보

(6) Alert 탭

Rule Alert 이력을 List View 또는 Bar View로 조회하며, "Show only Triggered Alert"로 현재 발생 중인 알람만 필터링할 수 있습니다.


4. 브로커(Broker) 모니터링

Instance Type=Broker인 인스턴스 클릭 시 Broker Detail Slide가 열리며, 5개 탭으로 구성됩니다.

(1) Information 탭

항목설명
Message Queue NameKafka 이름
Agent Version에이전트 버전
Message Queue GroupKafka 그룹
Message Queue Type'KAFKA' 출력
Kafka Cluster NameBroker가 속한 Cluster 이름
Kafka Version설치된 Kafka 버전
Connection InfoBroker 연결 정보
JMX PortBroker의 JMX 포트 번호
Last Boot TimeBroker가 실행된 시간
UptimeBroker 누적 실행시간

(2) Metric 탭 (수집 지표) - 핵심

Default 최근 5분 데이터를 표시합니다.

Kafka Broker Stat 수집 항목:

카테고리지표설명
메시지Messages In RateBroker로 유입되는 초당 메시지 수
Network Throughputkafka Net Bytes In RateBroker로 유입되는 초당 바이트 수
kafka Net Bytes Out RateBroker에서 나가는 초당 바이트 수
kafka Net Bytes Rejected Rate거부한 데이터의 초당 바이트 수
로그Log Flush Rate로그를 디스크에 플러시하는 초당 횟수
ReplicationUnclean Leader Elections Rate비동기 상태에서 발생하는 리더 선출 횟수 비율
Under Min ISR Partition Count최소 ISR 크기에 미치지 못하는 파티션 수
Under Replicated Partitions완전히 복제되지 않은 파티션 수
OS 리소스CPU Usage (%)Broker의 CPU 사용량
Memory Usage (%)Broker의 Memory 사용량
ProducerRequest Produce Time 99 PercentileProducer 요청이 처리 큐에서 대기하는 99th 백분위 시간
Total Time Produce MeanProducer 메시지 전송 처리 평균 시간
Producer Request Purgatory SizeProduce 요청 관련 지연 작업(Purgatory) 수
ConsumerRequest Fetch Consumer Time 99 PercentileConsumer Fetch 요청의 99th 백분위 대기 시간
Total Time Fetch Consumer MeanConsumer 메시지 가져오기 평균 시간
Request Fetch Request Purgatory SizeFetch 요청 관련 지연 작업 수
Fetch FollowerRequest Fetch Follower Time 99 PercentileFollower 복제 요청의 99th 백분위 대기 시간
Total Time Fetch Follower MeanFollower 복제 평균 시간
Follower Expires Per Sec초당 만료된 Fetch 요청 수

(3~5) Topics / Consumer Groups / Alert 탭

Cluster Detail Slide와 동일한 구조로, 해당 Broker에 해당하는 데이터를 개별로 보여줍니다.


5. 데이터 수집 옵션

${exemon-kafka-agent-home}/cfg/kafka.conf 파일에서 설정합니다.

옵션설명버전
TARGET_TOPIC_REGEX정규식으로 수집 대상 Topic 필터링 (미설정 시 전체 수집)v3.0.5+
TRACE_INTERNAL_TOPIC내부 Topic 수집 여부 (기본값: false)v3.0.5+
TARGET_CONSUMER_GROUP_REGEX정규식으로 수집 대상 Consumer Group 필터링 (미설정 시 전체 수집)v3.0.18+
TRACE_CONSUMER_GROUP_WHEN_EMPTYEmpty 상태의 Consumer Group 수집 여부 (기본값: true)v3.0.18+
TRACE_CONSUMER_GROUP_WHEN_NO_TOPICTopic 없는 Consumer Group 수집 여부 (기본값: false)v3.0.18+
LOG_LEVEL_SPECIFIC_ONLY특정 레벨 로그만 수집 (기본값: 미설정 시 하위 레벨까지 수집)v3.0.18+

6. 설정 방법 (Setting)

Setting > Platform > Infrastructure > Message Queue 메뉴에서 관리합니다.

  • Message Queue Group: 그룹 추가/편집/삭제 (Message Queue Type은 현재 Kafka만 지원)
  • Message Queue List: 인스턴스 목록 관리
  • Add Message Queue Device: Instance Type 선택 (Cluster 또는 Cluster(Zookeeper)), Connection Info/ID/Password 설정, Broker List 조회, Connection Test 기능


주의사항

  • Kafka Agent 설치에는 Java 17 이상, Linux 환경이 필요합니다.
  • 수집 옵션 변경 후에는 반드시 kafka-agent를 재시작해야 적용됩니다.
  • Topic Message 조회 시 최대 1,000건까지 출력됩니다.

관련 문서: