3분컷 쿠버네티스 카프카 모니터링(Kafdrop) 배포

2022. 10. 13. 16:37·CloudNative/App Definition & Developement

카프카의 메시지를 확인하고 싶은데, 매번 컨슈머로 볼수는 없기도 하고 모니터링 방법도 궁금하여 구글링을 해보았다.

 

Top 5 Kafka Monitoring Tools with Importance & Working 이라는 사이트가 보였고, -광고가 너무 많이 떠서 링크는 생략한다.- 그중 Apache 2.0 오픈소스 모니터링 툴인 Kafdrop을 쿠버네티스 개발 클러스터에 배포해 보았다.

 

kafdrop의 기능을 설명하자면  kafka Cluster Overview, Broker정보, Topic을 확인할 수 있는 간단한 UI를 제공한다.

  • requirement: JDK 11+, Kafka 0.11.0+

 

https://github.com/obsidiandynamics/kafdrop

 

GitHub - obsidiandynamics/kafdrop: Kafka Web UI

Kafka Web UI. Contribute to obsidiandynamics/kafdrop development by creating an account on GitHub.

github.com

git에 들어가면 jar, docker, k8s(helm) 로 구동하는 방법이 나와있는데

AWS EKS를 사용중이기 때문에 helm으로 우선 설치해보려 하였으나 

helm 설치가 매끄럽지 않아 그냥 도커 이미지로 deployment, service, virtual service(istio ingress 사용중이므로) 를 만들어서 띄웠다. 

작성한 yaml은 아래와 같다.

 

---
apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: kafdrop
  name: kafdrop
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: kafdrop
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: kafdrop
    spec:
      containers:
      - image: obsidiandynamics/kafdrop:3.30.0 # 태그는 22.10.13 기준 stable 
        name: kafdrop
        ports:
        - containerPort: 9000
        resources: {}
        env:
# KAFKA_BROKERCONNECT만 있으면 되는데 
# secret에서 kafka broker1,2의 주소를 관리하고 있는 경우 아래처럼 각각 불러온뒤 합쳐주자
#        - name: KAFKA_BROKER1
#          valueFrom:
#            secretKeyRef:
#              name: app-secret
#              key: KAFKA_BROKER1
#        - name: KAFKA_BROKER2
#          valueFrom:
#            secretKeyRef:
#              name: app-secret
#              key: KAFKA_BROKER2
#        - name: KAFKA_BROKERCONNECT
#          value: "$(KAFKA_BROKER1),$(KAFKA_BROKER2)"
        - name: KAFKA_BROKERCONNECT
          value: "b-1.xxxx.xxx:9092,b-2.xxxx.xxx:9092"
        - name: JVM_OPTS
          value: "-Xms32M -Xmx64M"
        - name: SERVER_SERVLET_CONTEXTPATH
          value: "/kafdrop"

status: {}

---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: kafdrop
  name: kafdrop
  namespace: default
spec:
  ports:
  - port: 9000
    protocol: TCP
    targetPort: 9000
  selector:
    app: kafdrop
  sessionAffinity: None
  type: ClusterIP
status:
  loadBalancer: {}
  
---
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: kafdrop
  namespace: default
spec:
  gateways:
  - default/app-gateway
  hosts:
  - '*'
  http:
  - match:
    - uri:
        prefix: /kafdrop
    route:
    - destination:
        host: kafdrop.default.svc.cluster.local
        port:
          number: 9000
      headers:
        response:
          add:
            X-Frame-Options: ALLOW-FROM SAMEORIGIN
          remove:
          - X-Frame-Options

https://도메인/kafdrop 주소로 정상적으로 메인화면이 뜨고 Topic리스트에서 특정 Topic 선택후 view messages 로 들어간 다음 다시 view message 로 조회하면 토픽에 딸린 메시지들을 볼 수 있었다.

 

* 보안상 이유로 캡처 이미지는 없다. 화면이 궁금하면 다음 블로그를 참조하길 바란다. 

https://choiseokwon.tistory.com/274

 

Kafdrop: Kafka 웹 UI

Kafdrop obsidiandynamics/kafdrop Kafka Web UI github.com 1. 소개 kafdrop은 Kafka 토픽, 브로커, 컨슈머 그룹 등 Kafka을 웹 UI로 볼 수 있게 해주는 java 프로그램이다. 2. 사용법 JDK 11+ , Kafka 0.11.0+..

choiseokwon.tistory.com

 

* 아쉬운 점

로그인이 없다. topic 삭제 버튼도 있는데 로그인이 없다.

관리자만 볼것 같은 화면이라 IP 대역으로 접근 차단을 해야겠다. 

728x90

'CloudNative > App Definition & Developement' 카테고리의 다른 글

tekton - OCP pipeline 3 steps  (0) 2024.03.27
strimzi on docker desktop k8s  (1) 2024.03.04
gitlab 502 error, gitlab-shell self-check failed  (0) 2024.02.21
rabbitmq 로컬구성과 DLQ 설정  (1) 2024.01.17
윈도우 PC에 redis + redis insight 구성 (docker)  (2) 2024.01.08
'CloudNative/App Definition & Developement' 카테고리의 다른 글
  • strimzi on docker desktop k8s
  • gitlab 502 error, gitlab-shell self-check failed
  • rabbitmq 로컬구성과 DLQ 설정
  • 윈도우 PC에 redis + redis insight 구성 (docker)
yunapapa
yunapapa
working on the cloud
    250x250
  • yunapapa
    supermoon
    yunapapa
  • 전체
    오늘
    어제
    • 분류 전체보기 (94)
      • 개발 (20)
        • java (17)
        • web (2)
        • MSX (1)
        • Go (0)
      • CloudNative (50)
        • App Definition & Developeme.. (17)
        • Orchestration & Management (4)
        • Runtime (3)
        • Provisioning (7)
        • Observability & Analysis (14)
        • event review (5)
      • AWS (7)
      • 환경관련 (17)
      • 취미생활 (0)
        • 맛집 (0)
        • 게임 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • CNCF Past Events
    • Kubernetes Korea Group
  • 공지사항

  • 인기 글

  • 태그

    Java
    Pinpoint
    티스토리챌린지
    오블완
    kubernetes
    OpenShift
    helm
    gitlab
    AWS
    dop-c02
    istio
    devops
    k8s
    springboot
    APM
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
yunapapa
3분컷 쿠버네티스 카프카 모니터링(Kafdrop) 배포
상단으로

티스토리툴바