본문 바로가기
서버구축 (WEB,DB)

Kafka 로그 모니터링 및 Manager(CMAK) 활용한 클러스터 관리

by 날으는물고기 2023. 12. 21.

Kafka 로그 모니터링 및 Manager(CMAK) 활용한 클러스터 관리

Kafka Dashboard - Datadog

Kafka 등록 정보 확인 및 로그 모니터링을 웹 기반으로 수행하는 방법에는 여러 가지 도구와 접근 방법이 있습니다. 이를 위해 아래에서 몇 가지 일반적인 접근 방법을 설명하겠습니다.

  1. Kafka 기본 명령어 및 등록 정보 확인
    Kafka 명령어를 사용하여 클러스터 및 토픽에 대한 기본 정보를 확인할 수 있습니다.
    # Kafka 클러스터 목록 확인
    kafka-topics.sh --zookeeper <ZOOKEEPER_SERVERS> --list
    
    # 특정 토픽에 대한 정보 확인
    kafka-topics.sh --zookeeper <ZOOKEEPER_SERVERS> --describe --topic <TOPIC_NAME>
  2. Kafka Manager 사용
    Kafka Manager는 웹 기반의 Kafka 클러스터 관리 도구입니다. 이를 사용하여 토픽의 상태, 파티션 및 브로커에 대한 정보를 쉽게 확인할 수 있습니다. Kafka Manager를 설치하고 설정한 후 웹 브라우저를 통해 접속하여 사용할 수 있습니다.
  3. Confluent Control Center
    Confluent Control Center는 Confluent에서 제공하는 상용 제품으로, Kafka 클러스터의 모니터링 및 관리를 위한 기능을 제공합니다. Confluent Platform을 설치하고 설정한 후에는 웹 브라우저를 통해 Control Center에 접속하여 클러스터의 상태를 확인할 수 있습니다.
  4. ELK 스택 (Elasticsearch, Logstash, Kibana) 활용
    ELK 스택을 사용하여 Kafka의 로그를 수집하고 시각화할 수 있습니다. Logstash를 사용하여 Kafka 로그를 수집한 후, Elasticsearch에 저장하고 Kibana를 사용하여 시각적으로 모니터링할 수 있습니다. 이를 통해 특정 이벤트 및 경고를 실시간으로 확인할 수 있습니다.
  5. Prometheus 및 Grafana 활용
    Prometheus와 Grafana를 사용하여 Kafka 메트릭을 수집하고 시각화할 수 있습니다. Prometheus는 Kafka 클러스터에서 메트릭을 수집하고 저장하며, Grafana를 사용하여 이러한 메트릭을 시각화합니다.
  6. Custom Web Application
    Kafka 클러스터 및 로그 정보를 직접 모니터링하기 위해 웹 애플리케이션을 개발할 수도 있습니다. 이를 위해 Kafka 클러스터와 상호 작용하는데 필요한 정보를 수집하고 이를 웹 페이지에 표시할 수 있습니다. 주로 Java, Python, 또는 Node.js와 같은 언어 및 웹 프레임워크를 사용하여 개발할 수 있습니다.

이러한 도구 및 방법 중 하나를 선택하여 Kafka 클러스터를 효과적으로 모니터링하고 웹 기반으로 확인할 수 있습니다. 선택한 도구는 사용 환경 및 선호도에 따라 다를 수 있습니다.

 

Kafka Manager를 구성하는 과정은 상대적으로 간단하지만, 몇 가지 단계를 따라야 합니다.

아래는 Kafka Manager를 구성하는 기본적인 단계입니다.

 

1. 환경 준비

  • Java: Kafka Manager는 Java로 작성되었으므로 Java가 설치되어 있어야 합니다.
  • SBT (Simple Build Tool): Kafka Manager를 빌드하려면 SBT가 필요합니다.

 

2. Kafka Manager 다운로드
Kafka Manager를 다운로드하고 빌드합니다.

# Kafka Manager 소스코드를 클론합니다.
git clone https://github.com/yahoo/kafka-manager.git

# Kafka Manager 디렉토리로 이동합니다.
cd kafka-manager

# SBT를 사용하여 빌드합니다.
sbt clean dist

빌드가 완료되면 target/universal/kafka-manager-x.x.x.zip 파일이 생성됩니다.

 

3. 압축 해제 및 디렉토리 이동
다운로드한 파일을 압축 해제하고 적절한 디렉토리로 이동합니다.

unzip target/universal/kafka-manager-x.x.x.zip
mv kafka-manager-x.x.x <원하는_디렉토리>

 

4. 설정 파일 수정
Kafka Manager의 설정 파일을 수정합니다.

cd <원하는_디렉토리>/conf
cp application.conf application.conf.orig
nano application.conf

application.conf 파일에서 다음과 같은 항목을 수정합니다.

  • kafka-manager.zkhosts: ZooKeeper 호스트 및 포트를 지정합니다.
  • basicAuthentication.usernamebasicAuthentication.password: 원하는 경우 기본 인증을 설정합니다.

 

5. Kafka Manager 실행
Kafka Manager를 실행합니다.

cd <원하는_디렉토리>
./bin/kafka-manager

기본적으로 localhost:9000에서 Kafka Manager가 실행됩니다.

 

6. 웹 브라우저에서 접속
웹 브라우저를 열고 http://localhost:9000에 접속하여 Kafka Manager에 로그인합니다.

  • 기본 로그인 정보
    • Username: admin
    • Password: admin

 

7. 클러스터 추가
Kafka Manager 대시보드에서 "Add Cluster"를 클릭하고 필요한 정보를 입력하여 Kafka 클러스터를 추가합니다.

  • Cluster Name: 클러스터의 이름
  • Cluster Zookeeper Hosts: ZooKeeper 호스트 및 포트 (쉼표로 구분)

 

이제 Kafka Manager를 통해 클러스터의 토픽, 브로커, 파티션 등의 상태를 모니터링할 수 있습니다. 이러한 단계를 따르면 Kafka Manager를 구성하여 Kafka 클러스터를 쉽게 관리할 수 있습니다.

kafka-manager - velog

Docker를 사용하여 Kafka Manager를 구성하는 것은 비교적 간단합니다. 아래는 Kafka Manager를 Docker 컨테이너로 실행하는 단계입니다.

 

1. Docker 이미지 다운로드
Kafka Manager를 실행하는 데 사용할 Docker 이미지를 다운로드합니다.

docker pull hlebalbau/kafka-manager

 

2. Docker 컨테이너 실행
다음 명령어를 사용하여 Kafka Manager Docker 컨테이너를 실행합니다.

docker run -it -p 9000:9000 -e ZK_HOSTS="<ZOOKEEPER_SERVERS>" hlebalbau/kafka-manager

여기서 <ZOOKEEPER_SERVERS>는 Kafka 클러스터의 ZooKeeper 호스트와 포트를 나타내며, 쉼표로 구분될 수 있습니다. 예를 들면 zk1:2181,zk2:2181,zk3:2181.-p 9000:9000는 로컬 머신의 포트 9000을 Docker 컨테이너의 포트 9000에 매핑합니다. 따라서 Kafka Manager에는 브라우저를 통해 http://localhost:9000으로 액세스할 수 있게 됩니다.

 

3. 웹 브라우저에서 접속
웹 브라우저를 열고 http://localhost:9000에 접속하여 Kafka Manager에 로그인합니다.

 

4. 클러스터 추가
Kafka Manager 대시보드에서 "Add Cluster"를 클릭하고 필요한 정보를 입력하여 Kafka 클러스터를 추가합니다.

  • Cluster Name: 클러스터의 이름
  • Cluster Zookeeper Hosts: ZooKeeper 호스트 및 포트 (쉼표로 구분)

 

Docker를 사용하면 Kafka Manager를 더욱 간편하게 실행하고 관리할 수 있습니다. 위의 단계를 따르면 Docker 컨테이너에서 Kafka Manager를 실행할 수 있습니다.

728x90

댓글