kafka 2.8.2버전 기준이며, keystore, truststore jks파일이 존재함을 가정합니다.
서버단 설정:
vi ${KAFKA_HOME}/config/server.properties
listeners=SSL://:9092
# 디폴트값
listener.security.protocol.map=PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
advertised.listeners=SSL://[각 KAFKA 호스트명]:9093
# 추가
ssl.keystore.location=[keystore.jks 위치]
ssl.keystore.password=[keystore 비밀번호]
ssl.key.password=[key 비밀번호]
ssl.truststore.location=[truststore.jks 위치]
ssl.truststore.password=[truststore 비밀번호]
ssl.client.auth=required
# Kafka 서버 브로커들끼리 통신할 방법
security.inter.broker.protocol=SSL
# 빈 값으로 추가
ssl.endpoint.identification.algorithm=
# 수정 후 kafka 서버 재실행필요
클라이언트단 설정:
# 파일 생성
vi ${KAKFA_HOME}/config/client-ssl-auth.properties
security.protocol=SSL
ssl.truststore.location=[truststore.jks 위치]
ssl.truststore.password=[truststore 비밀번호]
ssl.keystore.location=[keystore.jks 위치]
ssl.keystore.password=[keystore 비밀번호]
ssl.key.password=[key 비밀번호]
# 토픽조회 확인
${KAKFA_HOME}/bin/kafka-topics.sh --list --bootstrap-server\
# 브로커리스트
mast01:9093,mast02:9093,mast03:9093\
--command-config config/client-ssl-auth.properties
# 프로듀서실행
${KAKFA_HOME}/bin/kafka-console-producer.sh\
# 브로커리스트
--bootstrap-server mast01:9093,mast02:9093,mast03:9093\
--topic [TOPIC_NAME]\
--producer.config config/client-ssl-auth.properties
kafka 커스텀 프로듀서단:
# 제 상황에서는 개발한 kafka producer의 설정들을 따로 밖의 파일(config.properties)에 지정하고,
# 실행 시 인자로 넘기는 형식입니다. 파일을 넘기는 형식이 아니라면, produver 소스 내 설정해주어야합니다.
vi config.properties
security.protocol=SSL
ssl.truststore.location=[truststore.jks 위치]
ssl.truststore.password=[truststore 비밀번호]
ssl.keystore.location=[keystore.jks 위치]
ssl.keystore.password=[keystore 비밀번호]
ssl.key.password=[key 비밀번호]
kafka connetor단:
# 커넥터 실행 시 connect-standalone.properties파일을 바라봅니다.
vi config/connect-standalone.properties
bootstrap.servers=[브로커리스트]
security.protocol=SSL
ssl.truststore.location=[truststore.jks 위치]
ssl.truststore.password=[truststore 비밀번호]
ssl.keystore.location=[keystore.jks 위치]
ssl.keystore.password=[keystore 비밀번호]
ssl.key.password=[key 비밀번호]
producer.bootstrap.servers=[브로커리스트]
producer.security.protocol=SSL
producer.ssl.truststore.location=[truststore.jks 위치]
producer.ssl.truststore.password=[truststore 비밀번호]
producer.ssl.keystore.location=[keystore.jks 위치]
producer.ssl.keystore.password=[keystore 비밀번호]
producer.ssl.key.password=[key 비밀번호]
반응형
'BigData > Kafka' 카테고리의 다른 글
kafka) kafka PLAINTEXT, SSL 둘 다 사용하기 (0) | 2023.12.28 |
---|---|
kafka) kafka topic 메시지 보존 기간 설정 (0) | 2023.12.19 |
kafka) Exception in thread "main" joptsimple.UnrecognizedOptionException: after is not a recognized option kafka topic 삭제주기 (0) | 2023.12.19 |
Kafka topic producer consumer 테스트 (0) | 2023.07.25 |
Apache Kafka 설치 (0) | 2023.07.25 |