zookeeper·kafka

kafka manager 설정 (sasl 설정 포함)

초이짬 2019. 2. 28. 19:39
728x90


카프카를 설치 하고 테스트를 진행하면서 데이터를 땡겨갈때 이게 현재 유입된건지 과거에 남아 있던건지 헷갈리고 설정 보기도 그렇고 모니터링의 필요성이 생겨서 모니터링 툴을 알아보니 java 베이스라서 기본적으로 jmx 가 된다 물론 java 카테고리에 jmx 관련해서도 썻지만

기본적으로 jmx는 로컬에서 보는것과 remote 가 설정이 다르다 책이나 사이트에선 kafka-server-start.sh 에 export JMX_PORT 를 적으면 된다고 하지만 로컬에서만 접근이 되고 원격지에서는 안된다 설정은 밑에 글에 jmxremote 를 참고하고


여러 참조해보니 jmx 기본에 jconsole 도 되지만 유입량이나 그런건 유추가 어렵다

그중에 야후에서 오픈으로 개발해서 git 에 올려논 카프카 매니저 란게 괸찮은거 같아서

설치해서 사용하기로 하고 git에 https://github.com/yahoo/kafka-manager 여기가서 최신 release로 받고

서버에서 unzip 을 하면 폴더가 나오는데 이게 sbt 로 다시 zip 파일로 빌드를 해야 한다.

sbt 가 뭔고 하니 스칼라 빌드 툴이란다.

 

 

sbt 빌드를 마치고 나면 conf 디렉토리 하위에

 

application.conf 파일이 있고

 

여기에

kafka-manager.zkhosts="[주키퍼주소1]:[포트],[주키퍼주소2]:[포트],[주키퍼주소3]:[포트]";

 

이런식으로 넣고

 

매니저 기동시 설정 파일과 http 포트 지정해서 기동

bin/kafka-manager -Dconfig.file=/path/to/application.conf -Dhttp.port=8080


매니저 툴을 기동전에 kafka를 jmx 포트를 지정해서 기동해야 된다

 

kafka-server-start.sh 파일 상단에

 

export KAFKA_JMX_OPTS='-Dcom.sun.management.jmxremote

                         -Dcom.sun.management.jmxremote.authenticate=false

     -Dcom.sun.management.jmxremote.ssl=false

     -Djava.rmi.server.hostname=[서버ip=>호스트명url]

     -Dcom.sun.management.jmxremote.rmi.port=[jmx사용할포트]'

export JMX_PORT=[jmx사용할포트 위에 지정포트랑 동일]

 

을 추가해서 kafka를 기동해야 된다.

 

매니저가 실행되고 sasl 인증을 사용할 경우

 

security protocol 항목에

sasl_plantext 선택

그밑 sasl mechnism 항목은

plain

그밑에 sasl jaas config

 

org.apache.kafka.common.sercurity.plain.PlainLoginModule required username='[계정명]' password='[비번]'

 

이렇게 기입하면 된다

728x90