본문으로 건너뛰기

KAFKA 모니터링

노트

피쳐 프로젝트

와탭은 사용자가 원하는 소프트웨어의 모니터링 지원 여부를 쉽게 확인하고 간편하게 모니터링을 시작할 수 있도록 새롭게 피쳐 프로젝트(Features)를 도입하였습니다. 피쳐 프로젝트는 기존 모니터링 제품을 사용자가 모니터링하고자 하는 소프트웨어에 맞게 재포장해 최적화된 모니터링 솔루션을 제공합니다. 와탭 피쳐 프로젝트를 통해 서비스의 안정성과 성능을 더욱 효과적으로 관리해 보세요.

카프카는 실시간 데이터 피드를 처리하고 안정적으로 저장하며 전송하는 작업에 최적화된 분산형 스트리밍 플랫폼입니다. 카프카를 통해 데이터 스트림의 이상 현상을 추적할 수 있습니다. 카프카는 분산형 시스템이기 때문에 모니터링을 통해 각 브로커, 토픽, 파티션, 프로듀서 및 컨슈머의 상태를 상세히 확인할 필요가 있습니다.

와탭은 새로운 피쳐 프로젝트 방식으로 KAFKA 모니터링을 제공합니다. 카프카 클러스터의 성능과 상태를 추적하여 문제를 조기에 감지하고 해결할 수 있도록 돕습니다.

  • 지표 모니터링: 카프카 브로커, 토픽, 파티션, 프로듀서, 컨슈머의 다양한 지표를 실시간으로 모니터링합니다.

  • 맞춤형 대시보드: 맞춤형 대시보드를 통해 지표를 효율적으로 조회할 수 있습니다.

  • 알림 설정: 설정한 조건 감지 시 실시간으로 알림을 발송해 사용자가 문제에 신속히 대응할 수 있습니다.

와탭 KAFKA 모니터링을 통해 카프카의 복잡한 운영 환경을 효과적으로 관리해 보세요.

설치하기

와탭 카프카 모니터링 서비스 이용을 위한 기본 설치 방법을 안내합니다.

와탭 모니터링 서비스를 사용하기 위해서는 회원 가입 후 프로젝트를 생성하고 대상 서버에 에이전트를 설치해야 합니다. 회원 가입에 관한 자세한 내용은 다음 문서를 참조하세요.

노트

지원 환경

와탭 카프카 모니터링 에이전트를 설치하기 전에 지원 환경을 확인하세요.

  • Kafka: Apache Kafka 3.x 이상

  • Ubuntu: Ubuntu 12.04 이상

  • OS: Red Hat 6 or equivalent(CentOS, Rocky Linux, Amazon Linux)

  • 운영체제 아키텍처: Amd64/X86_64, Arm64/Aarch64

피쳐 프로젝트 생성하기

에이전트를 설치하기 전에 먼저 피쳐 프로젝트(Features)를 생성하세요.

  1. 와탭 모니터링 서비스로 이동한 다음 로그인하세요.

  2. 프로젝트를 생성하려면 화면 왼쪽 사이드 메뉴에서 전체 프로젝트 > + 프로젝트 버튼을 선택하세요.

  3. 상품 선택 화면에서 프로젝트에 설치할 피쳐 상품을 선택하세요.

  4. 프로젝트 이름, 데이터 서버 지역, 타임 존 항목을 차례로 설정하세요.

    프로젝트 생성

  5. 알림 언어 설정에서 경고 알림 메시지의 언어를 선택하세요.

  6. 모든 설정을 완료한 다음에는 프로젝트 생성하기 버튼을 선택하세요.

카프카 에이전트 설치

피쳐 프로젝트(Features) 생성 후 자동으로 KAFKA 에이전트 설치 화면으로 이동합니다. 다음 안내대로 설치를 진행하세요.

  1. 프로젝트 액세스 키를 확인하세요.

    프로젝트 액세스 키는 와탭 서비스 활성화를 위한 고유 ID 입니다. 프로젝트 액세스 키 발급받기 버튼을 선택하세요.

  2. 설치 스크립트를 생성하세요.

    다음 명령어를 실행해 사용자 환경을 자동으로 인식 후 카프카가 설치된 서버에 설치 스크립트를 생성하세요.

    curl http://repo.whatap.io/telegraf/feature/kafka/install_kafka_monitoring.sh -o install_kafka_monitoring.sh

    다음 명령어를 실행해 카프카 에이전트를 설치하세요.

    chmod +x install_kafka_monitoring.sh
    sudo ./install_kafka_monitoring.sh "x604pf485d1kk-z6q14nuc509pk3-x39moealrfodum" "13.124.11.223/13.209.172.35"
  1. 에이전트 설정 및 재시작 후 모니터링시작하세요.

    카프카에 Jolokia 에이전트 설정을 위해 다음 명령어를 실행 후 재시작하세요.

    #cd {kafka home directory}/bin
    sed -i '/^#!/a export KAFKA_OPTS='\''-javaagent:/usr/whatap/infra/feature/jolokia-agent-jvm-2.0.1-javaagent.jar=port=8778,host=127.0.0.1'\''' kafka-server-start.sh
    ./kafka-server-stop.sh
    ./kafka-server-start.sh

주요 메뉴 알아보기

맞춤형 대시보드

홈 화면 > 피쳐 프로젝트(Features) 선택 > KAFKA > KAFKA 대시보드

와탭 카프카 모니터링은 카프카 클러스터의 성능과 상태 등 전체 현황을 한 눈에 파악할 수 있도록 카프카 브로커, 토픽, 파티션, 프로듀서, 컨슈머의 다양한 지표를 실시간으로 모니터링합니다. 각 지표를 정기적으로 확인하여 클러스터가 최적의 상태를 유지하도록 관리할 수 있습니다.

와탭이 제공하는 카프카 맞춤형 대시보드는 다음의 세 가지 프리셋으로 구성되어있습니다.

  • Kafka Default

    클러스터 기능의 정상 작동 여부를 파악할 수 있는 기본 대시보드입니다. 카프카 클러스터의 전반적인 상태를 실시간으로 모니터링하고, 성능 저하나 장애를 사전에 감지할 수 있도록 돕습니다.

    대시보드 지표 안내
    Kafka Overview
    • Active Controller Count: 현재 활성 상태인 컨트롤러의 수입니다. 컨트롤러는 Kafka 클러스터에서 파티션 리더와 복제를 관리합니다. 보통 하나의 활성 컨트롤러가 존재합니다.

    • Brokers Online: 온라인 상태의 브로커 수입니다. 브로커는 메시지를 저장하고 클라이언트 요청을 처리하는 역할을 합니다.

    • Online Partitions: 온라인 상태의 파티션 수입니다. 각 토픽은 여러 파티션으로 나뉘며, 각 파티션은 여러 브로커에 걸쳐 저장됩니다.

    • Preferred Replica Imbalance: 선호되는 리플리카의 불균형을 나타냅니다. 이 값이 높으면 특정 브로커에 리플리카가 집중되어 있음을 의미합니다.

    • Under Replicated Partitions: 복제되지 않은 파티션 수입니다. 이 값이 0이 아닌 경우 데이터 손실 위험이 있습니다.

    • Leader Count per Broker: 각 브로커별 리더 파티션 수를 나타냅니다. 리더 파티션은 클라이언트 요청을 직접 처리하는 파티션입니다.

    • Unclean Leader Elections: 비정상적인 리더 선출 수입니다. 이 값이 높으면 클러스터 안정성에 문제가 있을 수 있습니다.

    • Under min ISR Partitions: 최소 ISR(동기화된 복제본) 이하의 파티션 수입니다. ISR은 데이터의 내구성을 보장합니다.

    • Offline Partitions Count: 오프라인 상태의 파티션 수입니다. 파티션이 오프라인 상태면 해당 파티션의 데이터에 접근할 수 없습니다.

    • Broker Network Throughput BytesOutPerSec/BytesInPerSec: 브로커의 네트워크 처리량을 나타냅니다. 초당 송신/수신 바이트 수를 그래프로 표시합니다.

    Java Virtual Machine
    • CPU Usage: JVM의 CPU 사용률을 나타냅니다. CPU 사용률이 높으면 성능에 영향을 미칠 수 있습니다.

    • JVM Memory Used: JVM이 사용 중인 메모리 양을 나타냅니다. 주기적으로 메모리가 증가하고 Garbage Collection(GC) 후에 감소하는 패턴을 보입니다.

    • Time Spent in GC: Garbage Collection(GC)에 소비된 시간을 나타냅니다. GC 시간 증가가 성능 저하로 이어질 수 있습니다.

    Linux Disk I/O
    • Linux Disk Read Bytes: 디스크 읽기 바이트 수를 나타냅니다. 높은 디스크 읽기/쓰기 양은 I/O 병목을 초래할 수 있습니다.

    • Linux Disk Write Bytes: 디스크 쓰기 바이트 수를 나타냅니다. 읽기와 마찬가지로 높은 쓰기 양은 성능에 영향을 줄 수 있습니다.

  • Kafka Request

    컨슈머와 프로듀서와 관련된 처리 성능을 확인할 수 있는 대시보드입니다. 카프카 클러스터의 다양한 성능 지표를 실시간으로 모니터링하여 시스템 상태를 파악하고 잠재적인 문제를 조기에 감지할 수 있도록 돕습니다.

    대시보드 지표 안내
    Processing Performance
    • Messages In: 전체 클러스터에서 초당 수신되는 메시지의 수를 나타냅니다.

    • Messages In per Broker: 각 브로커별로 초당 수신되는 메시지의 수를 나타냅니다.

    • Bytes In: 전체 클러스터에서 초당 수신되는 바이트의 수를 나타냅니다.

    • Bytes In per Broker: 각 브로커별로 초당 수신되는 바이트의 수를 나타냅니다.

    • Request Queue Size: 현재 처리되지 않은 요청이 대기 중인 큐의 크기를 나타냅니다. 큐 크기가 커지면 응답 시간이 길어질 수 있습니다.

    • Response Queue Size: 응답을 기다리는 요청이 대기 중인 큐의 크기를 나타냅니다. 큐 크기가 커지면 지연이 발생할 수 있습니다.

    • Network Processor Avg Usage Percent: 네트워크 프로세서의 평균 사용률을 나타냅니다. 네트워크 관련 작업의 부하를 보여줍니다.

    • Request Handler Avg Percent: 요청 처리기의 평균 사용률을 나타냅니다. 요청 처리에 대한 부하를 보여줍니다.

    Requests
    • Produce Request Per Sec: 초당 생성되는 프로듀서 요청 수를 나타냅니다. 높은 값은 많은 데이터가 브로커로 전송되고 있음을 의미합니다.

    • Consume Fetch Request Per Sec: 초당 생성되는 컨슈머 fetch 요청 수를 나타냅니다. 높은 값은 많은 데이터가 컨슈머로 전송되고 있음을 의미합니다.

    • Broker Fetch Request Per Sec: 브로커 간의 fetch 요청 수를 나타냅니다. 데이터 복제를 위한 내부 트래픽을 보여줍니다.

    • All Request Per Sec Across All Brokers: 모든 브로커에서 처리되는 초당 요청 수를 나타냅니다. 클러스터 전체의 요청 부하를 보여줍니다.

    Errors
    • Errors Per Sec: 초당 발생하는 에러 수를 나타냅니다. 에러 수가 많을 경우 시스템의 안정성에 문제가 있을 수 있습니다.
    Offset Commit
    • Offset Commit Request Per Sec: 초당 커밋되는 오프셋 요청 수를 나타냅니다. 오프셋 커밋은 컨슈머 그룹이 메시지를 처리한 위치를 나타냅니다.
    Metadata
    • Metadata Request Per Sec: 초당 메타데이터 요청 수를 나타냅니다. 메타데이터 요청은 브로커와 파티션 정보에 대한 요청을 의미합니다.
    Topic
    • IsrShrinks per Sec: 초당 ISR(동기화된 복제본) 축소 이벤트 수를 나타냅니다. ISR이 축소되면 데이터 내구성에 문제가 발생할 수 있습니다.

    • IsrExpands per Sec: 초당 ISR 확장 이벤트 수를 나타냅니다. ISR이 확장되면 데이터 내구성이 향상될 수 있습니다.

    • Log size per Topic: 각 토픽별 로그 사이즈를 나타냅니다. 토픽 데이터의 크기를 보여줍니다.

    • Log size per Broker: 각 브로커별 로그 사이즈를 나타냅니다. 브로커에 저장된 데이터의 크기를 보여줍니다.

    Consume Lag
    • Lag: 메시지 소비의 지연을 나타냅니다. 컨슈머가 메시지를 읽는 속도가 프로듀서가 메시지를 쓰는 속도보다 느릴 때 발생합니다.
  • Kafka Broker

    브로커 성능 정보를 확인할 수 있는 대시보드입니다. 카프카 클러스터의 성능 상태를 실시간으로 모니터링하고 잠재적인 문제를 조기에 감지할 수 있도록 돕습니다.

    대시보드 지표 안내
    Broker Performance - Produce
    • Producer - RequestQueueTimeMs: 프로듀서 요청이 큐에 대기하는 시간을 밀리초(ms) 단위로 표시합니다. 큐 대기 시간이 길어지면 성능 저하가 발생할 수 있습니다.

    • Producer - LocalTimeMs: 프로듀서 요청이 로컬 브로커에서 처리되는 시간을 밀리초 단위로 표시합니다.

    • Producer - RemoteTimeMs: 프로듀서 요청이 원격 브로커로 전송되고 처리되는 시간을 밀리초 단위로 표시합니다.

    • Producer - ResponseQueueTimeMs: 프로듀서 요청의 응답이 큐에 대기하는 시간을 밀리초 단위로 표시합니다.

    • Producer - ResponseSendTimeMs: 프로듀서 요청의 응답이 클라이언트로 전송되는 시간을 밀리초 단위로 표시합니다.

    Broker Performance - Consume
    • Consumer - RequestQueueTimeMs: 컨슈머 요청이 큐에 대기하는 시간을 밀리초 단위로 표시합니다.

    • Consumer - LocalTimeMs: 컨슈머 요청이 로컬 브로커에서 처리되는 시간을 밀리초 단위로 표시합니다.

    • Consumer - RemoteTimeMs: 컨슈머 요청이 원격 브로커로 전송되고 처리되는 시간을 밀리초 단위로 표시합니다.

    • Consumer - ResponseQueueTimeMs: 컨슈머 요청의 응답이 큐에 대기하는 시간을 밀리초 단위로 표시합니다.

    • Consumer - ResponseSendTimeMs: 컨슈머 요청의 응답이 클라이언트로 전송되는 시간을 밀리초 단위로 표시합니다.

    Broker Performance - Fetch Follower
    • FetchFollower - RequestQueueTimeMs: 팔로워 브로커의 fetch 요청이 큐에 대기하는 시간을 밀리초 단위로 표시합니다.

    • FetchFollower - LocalTimeMs: 팔로워 브로커의 fetch 요청이 로컬 브로커에서 처리되는 시간을 밀리초 단위로 표시합니다.

    • FetchFollower - RemoteTimeMs: 팔로워 브로커의 fetch 요청이 원격 브로커로 전송되고 처리되는 시간을 밀리초 단위로 표시합니다.

    • FetchFollower - ResponseQueueTimeMs: 팔로워 브로커의 fetch 요청의 응답이 큐에 대기하는 시간을 밀리초 단위로 표시합니다.

    • FetchFollower - ResponseSendTimeMs: 팔로워 브로커의 fetch 요청의 응답이 클라이언트로 전송되는 시간을 밀리초 단위로 표시합니다.

    ZooKeeper
    • ZooKeeper Request Latency: ZooKeeper 요청의 지연 시간을 표시합니다. 높은 지연 시간은 ZooKeeper의 성능 저하를 나타낼 수 있습니다.

    • ZooKeeper Connections per sec: 초당 ZooKeeper에 생성되는 연결 수를 표시합니다.

    • ZooKeeper Expired Connections per sec: 초당 만료된 ZooKeeper 연결 수를 표시합니다. 연결 만료는 세션 타임아웃 등으로 발생할 수 있습니다.

    • ZooKeeper auth failures per sec: 초당 ZooKeeper 인증 실패 횟수를 표시합니다. 인증 실패가 많으면 보안 문제나 설정 오류를 의심해볼 수 있습니다.

    • ZooKeeper disconnects per sec: 초당 ZooKeeper 연결이 끊어진 횟수를 표시합니다. 연결이 자주 끊어지면 네트워크 문제나 ZooKeeper 서버의 성능 문제를 의심해볼 수 있습니다.

경고 알림

홈 화면 > 피쳐 프로젝트(Features) 선택 > 경고 알림 > 이벤트 설정

와탭 KAFKA 모니터링은 복합 메트릭스 알림을 기본으로 제공합니다.

노트

복합 메트릭스 이벤트에 대한 자세한 내용은 다음 문서를 확인하세요.