관리 메뉴

피터의 개발이야기

[kafka] kafka 모니터링 방법 공부 (docker 컨테이너 생성, M1 칩 no specific platform 오류를 colima로 해결) 본문

DevOps/kafka

[kafka] kafka 모니터링 방법 공부 (docker 컨테이너 생성, M1 칩 no specific platform 오류를 colima로 해결)

기록하는 백앤드개발자 2024. 3. 17. 11:03
반응형

ㅁ 들어가며

[kafka] kafka 모니터링 docker 환경 세팅을 하면서 트러블 슈팅한 부분을 정리하였다.

 

ㅁ 작업 환경

ㅇ 맥북 미니 M1으로 platform은 linux/amd64/v8이다.

 

 

ㅁ kafka single 실행 시 에러 발생

# kafka single 실행 시 에러 발생
$ docker-compose -f zk-kafka-single-node-stack.yml up -d
WARN[0000] The "KAFKA_HEAP_OPTS" variable is not set. Defaulting to a blank string.
[+] Running 2/7
 ⠼ Network kafka-platform                                                                                                                                      Created  0.4s
 ⠼ Container prometheus                                                                                                                                        Starting 0.4s
 ✔ Container zookeeper1                                                                                                                                        Started  0.4s
 ⠼ Container grafana                                                                                                                                           Created  0.3s
 ⠼ Container kafka101                                                                                                                                          Created  0.3s
 ⠸ Container jmx-kafka101                                                                                                                                      Created  0.3s
 ! jmx-kafka101 The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested          0.0s
Error response from daemon: driver failed programming external connectivity on endpoint prometheus (62b1d68541a8b41a9adaec435da3eabf3847a81cd195a4281c7c4e813a313d3f): Bind for 0.0.0.0:9090 failed: port is already allocated

 

ㅇ 집의 거실에서 영화 시청 및 SFTP 파일 관리... docker, minikube 등 테스트를 하는 맥미니m1는  실리콘칩이다.

ㅇ 예전에 비슷한 경험으로 [Docker] 맥북M1에 도커 컨테이너 colima설치

를 참조하여 colima를 생성하고,  docker context를 변경해 보았다.

 

ㅁ colima 생성 및 docker context 변경

# context 확인
$ docker context ls
NAME                TYPE                DESCRIPTION                               DOCKER ENDPOINT                                      KUBERNETES ENDPOINT   ORCHESTRATOR
default *           moby                Current DOCKER_HOST based configuration   unix:///var/run/docker.sock
desktop-linux       moby                Docker Desktop                            unix:///Users/peterseo/.docker/run/docker.sock

# colima 기동 확인
$ colima status
FATA[0000] colima is not running

# colima 기동
$ colima start --arch arm64 --vm-type=vz --vz-rosetta --cpu 1 --memory 2 --disk 10 --profile kafka
INFO[0000] starting colima
INFO[0000] runtime: docker
INFO[0002] starting ...                                  context=vm
INFO[0013] provisioning ...                              context=docker
INFO[0013] starting ...                                  context=docker
INFO[0014] done

# context 변경
$ docker context use colima

# context 확인
$ docker context ls
NAME                TYPE                DESCRIPTION                               DOCKER ENDPOINT                                      KUBERNETES ENDPOINT   ORCHESTRATOR
colima *            moby                colima                                    unix:///Users/peterseo/.colima/default/docker.sock
default             moby                Current DOCKER_HOST based configuration   unix:///var/run/docker.sock
desktop-linux       moby                Docker Desktop                            unix:///Users/peterseo/.docker/run/docker.sock

ㅇ rosetta를 이용하여 linux/amd64 아키텍처로 container runtimer를 실행하였다.

ㅇ docker cli가 colima와 통신하기 위해 context를 변경한다.

ㅇ 참고로 기존 docker-desktop에 가동되는 컨테이너도와 신규 컨테이너 모두 함께 작동 중이다.

 

ㅁ kafka Full Stack (single node Kafka Cluster) 실행

$ docker-compose -f zk-kafka-single-node-full-stack.yml up -d
[+] Running 10/10
 ✔ Container zookeeper1                                             Started                                                                                                                 0.0s
 ✔ Container prometheus                                             Started                                                                                                                 0.0s
 ✔ Container zoonavigator                                           Started                                                                                                                 0.0s
 ✔ Container grafana                                                Started                                                                                                                 0.0s
 ✔ Container kafka101                                               Started                                                                                                                 0.0s
 ✔ Container kafka-monitoring-stack-docker-compose-ksqldb-server-1  Started                                                                                                                 0.0s
 ✔ Container jmx-kafka101                                           Started                                                                                                                 0.0s
 ✔ Container kafka-schema-registry                                  Started                                                                                                                 0.0s
 ✔ Container akhq                                                   Started                                                                                                                 0.0s
 ✔ Container kafka-monitoring-stack-docker-compose-kafka-connect-1  Started

 

ㅁ docker 컨테이너 확인

$ docker ps

 

ㅁ Grafana 접속 확인

ㅇ 외부에서 접속 중이라 iptime에 포트포워드 설정을 한 상태이다.

ㅇ user : admin
ㅇ password : kafka

 

ㅁ ZooNavigator 접속

ㅁ 리소스 정리

$ docker-compose -f zk-kafka-single-node-full-stack.yml down

 

ㅁ 함께 보면 좋은 사이트

 Kafka Monitoring Stack for Docker Compose (Prometheus / Grafana)

 

반응형
Comments