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 표시 |
| Active | Active Kafka 개수. 클릭 시 Active 상태만 필터링 |
| Inactive | Inactive Kafka 개수. 클릭 시 Inactive 상태만 필터링 |
(2) Kafka Map
클러스터와 브로커를 트리 구조로 시각화하여 보여줍니다.

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

(3) Kafka List
Kafka 목록을 Grid 형태로 보여줍니다.

| 컬럼 | 설명 |
|---|---|
| Instance Name | Kafka 이름 (클릭 시 Detail Slide 오픈) |
| Alias | 사용자 정의 이름 |
| Status | Kafka 연결 상태 정보 |
| Alert | 마지막 발생된 알람 정보 |
| Instance Type | 인스턴스 타입 (Cluster, Broker 등) |
| Connection Info | Kafka 연결 정보 (IP:Port) |
| Version | Kafka 버전 |
| CPU Usage (%) | CPU 사용률 |
| Memory Usage (%) | 메모리 사용률 |
(4) Filters
Kafka Group 기준으로 필터링하며, 대소문자 구분 없는 검색을 지원합니다.

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

(1) Information 탭

| 항목 | 설명 |
|---|---|
| Message Queue Name | Kafka 이름 |
| Agent Version | 에이전트 버전 |
| Message Queue Group | Kafka 그룹 |
| Message Queue Type | 'KAFKA' 출력 |
| Kafka Version | Broker 인스턴스에서 값 출력 |
| Connection Info | Cluster 연결 정보 |
| 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 Count | ISR(동기화 복제본) 총 수 |
| Cluster Total Out Of Sync Replica Count | 비동기 복제본 총 수 |
(3) Brokers 탭

- Active Controller: 활성화 상태의 Broker 표시
- Total Broker Count: 총 Broker 수
Broker List Grid:
| 컬럼 | 설명 |
|---|---|
| Broker Name | Broker 등록 이름 (클릭 시 Broker Detail Slide 이동) |
| Alias Name | 사용자 지정 이름 |
| Status | Broker 연결 상태 |
| Alert | 마지막 발생 알람 |
| Connection Info | Broker 연결 정보 |
| JMX Port | Broker JMX Port 정보 |
| Controller | Broker 활성화 상태 |
| Partitions | Broker 파티션 수 |
(4) Topics 탭

| 컬럼 | 설명 |
|---|---|
| Topic Name | Topic 이름 (클릭 시 Topic Detail Slide 오픈) |
| Partitions | Topic 파티션 수 |
| Replication Factor | Replication Factor 수 |
| Under-replicated | Under-replicated 수 |
| Custom Config | Custom 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 탭

| 컬럼 | 설명 |
|---|---|
| Consumer | Consumer Group과 Consumer 정보 |
| Topic Name | Consumer Group의 Topic 이름 |
| Partition | Partition 정보 |
| Current-Offset | 현재 Offset 위치 |
| Log-End-Offset | 가장 마지막에 저장된 레코드의 다음 오프셋 |
| Lag | 미처리 메시지 수 |
| Host | Consumer Group의 Host 정보 |
| Client-ID | Client-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 Name | Kafka 이름 |
| Agent Version | 에이전트 버전 |
| Message Queue Group | Kafka 그룹 |
| Message Queue Type | 'KAFKA' 출력 |
| Kafka Cluster Name | Broker가 속한 Cluster 이름 |
| Kafka Version | 설치된 Kafka 버전 |
| Connection Info | Broker 연결 정보 |
| JMX Port | Broker의 JMX 포트 번호 |
| Last Boot Time | Broker가 실행된 시간 |
| Uptime | Broker 누적 실행시간 |
(2) Metric 탭 (수집 지표) - 핵심
Default 최근 5분 데이터를 표시합니다.

Kafka Broker Stat 수집 항목:
| 카테고리 | 지표 | 설명 |
|---|---|---|
| 메시지 | Messages In Rate | Broker로 유입되는 초당 메시지 수 |
| Network Throughput | kafka Net Bytes In Rate | Broker로 유입되는 초당 바이트 수 |
| kafka Net Bytes Out Rate | Broker에서 나가는 초당 바이트 수 | |
| kafka Net Bytes Rejected Rate | 거부한 데이터의 초당 바이트 수 | |
| 로그 | Log Flush Rate | 로그를 디스크에 플러시하는 초당 횟수 |
| Replication | Unclean Leader Elections Rate | 비동기 상태에서 발생하는 리더 선출 횟수 비율 |
| Under Min ISR Partition Count | 최소 ISR 크기에 미치지 못하는 파티션 수 | |
| Under Replicated Partitions | 완전히 복제되지 않은 파티션 수 | |
| OS 리소스 | CPU Usage (%) | Broker의 CPU 사용량 |
| Memory Usage (%) | Broker의 Memory 사용량 | |
| Producer | Request Produce Time 99 Percentile | Producer 요청이 처리 큐에서 대기하는 99th 백분위 시간 |
| Total Time Produce Mean | Producer 메시지 전송 처리 평균 시간 | |
| Producer Request Purgatory Size | Produce 요청 관련 지연 작업(Purgatory) 수 | |
| Consumer | Request Fetch Consumer Time 99 Percentile | Consumer Fetch 요청의 99th 백분위 대기 시간 |
| Total Time Fetch Consumer Mean | Consumer 메시지 가져오기 평균 시간 | |
| Request Fetch Request Purgatory Size | Fetch 요청 관련 지연 작업 수 | |
| Fetch Follower | Request Fetch Follower Time 99 Percentile | Follower 복제 요청의 99th 백분위 대기 시간 |
| Total Time Fetch Follower Mean | Follower 복제 평균 시간 | |
| 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_EMPTY | Empty 상태의 Consumer Group 수집 여부 (기본값: true) | v3.0.18+ |
TRACE_CONSUMER_GROUP_WHEN_NO_TOPIC | Topic 없는 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건까지 출력됩니다.
관련 문서:
- Kafka 모니터링 메인
- Kafka Card
- Kafka Map
- Kafka List
- Kafka Filters
- Cluster Detail Slide
- Cluster Detail - Information
- Cluster Detail - Metric
- Cluster Detail - Brokers
- Cluster Detail - Topic
- Cluster Detail - Consumer Groups
- Cluster Detail - Alert
- Broker Detail Slide
- Broker Detail - Information
- Broker Detail - Metric
- Broker Detail - Topic
- Broker Detail - Consumer Groups
- Broker Detail - Alert
- Setting - Message Queue
- Add Message Queue Device
- Kafka 데이터 수집 옵션
- Kafka 특정 레벨 로그 수집 옵션
- Kafka Agent 설치 가이드
- Kafka Agent 지원 환경