카프카를 설치 하고 테스트를 진행하면서 데이터를 땡겨갈때 이게 현재 유입된건지 과거에 남아 있던건지 헷갈리고 설정 보기도 그렇고 모니터링의 필요성이 생겨서 모니터링 툴을 알아보니 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='[비번]'
이렇게 기입하면 된다
'zookeeper·kafka' 카테고리의 다른 글
kafka.common.InconsistentBrokerIdException: Configured broker.id [번호] doesn't match stored broker.id [번호] in meta.properties (0) | 2020.06.28 |
---|---|
kafka sasl 인증 사용 (0) | 2019.06.19 |
kafka jmx 설정 jmxremote 설정 (0) | 2019.02.27 |
kafka 원격 접속 안될때 no entry found for connection 1 (0) | 2018.12.07 |