Kafka 클러스터 구축 및 보안 인증

22356 단어 kafka

Kafka 클러스터 구축 및 보안 인증

  • 환경
  • zookeeper 집단 배치 및 안전 인증
  • 카프카 집단 배치 및 안전 인증

  • 환경


    시스템 버전: Centos7.4 kafka 버전: kafka_2.11-2.4.0 zookeeper 버전: zookeeper-3.5.7 JDK 버전: jdk1.8
    서버: 192.168.1.101 192.168.1.1.102 192.168.1.103
    배포 디렉터리/webapps/kafka/webapps/zookeeper

    zookeeper 집단 배치 및 보안 인증


    zookeeper 집단, 바로 프로필에 서로 가입하는 1.프로파일 수정
    #192.168.1.101 
    vi /webapps/zookeeper/conf/zoo.cfg
    
    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/webapps/zookeeper_data/
    clientPort=12181
    server.1=0.0.0.0:12888:13888
    server.2=192.168.1.102:12888:13888
    server.3=192.168.1.103:12888:13888
    ##SASL ----
    authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
    requireClientAuthScheme=sasl
    jaasLoginRenew=3600000
    ##------
    
    #192.168.1.102 
    vi /webapps/zookeeper/conf/zoo.cfg
    
    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/webapps/zookeeper_data/
    clientPort=12181
    server.1=192.168.1.101:12888:13888
    server.2=0.0.0.0:12888:13888
    server.3=192.168.1.103:12888:13888
    authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
    requireClientAuthScheme=sasl
    jaasLoginRenew=3600000
    
    #192.168.1.103 
    vi /webapps/zookeeper/conf/zoo.cfg
    
    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/webapps/zookeeper_data/
    clientPort=12181
    server.1=192.168.1.101:12888:13888
    server.2=192.168.1.102:12888:13888
    server.3=0.0.0.0:12888:13888
    authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
    requireClientAuthScheme=sasl
    jaasLoginRenew=3600000
    

    2. 매일 서버에 유일한 myid 이전 프로필의 디렉터리 dataDir=/webapps/zookeeper_ 추가data/
    #192.168.1.101 
    cd /webapps/zookeeper_data
    cat "1" > myid
    
    #192.168.1.102 
    cd /webapps/zookeeper_data
    cat "2" > myid
    
    #192.168.1.103 
    cd /webapps/zookeeper_data
    cat "3" > myid
    

    3. 보안 인증 정보 파일 zk_ 추가server_jaas.conf
    3대의 서버가 모두 같습니다.conf 파일은 임의의 위치에 놓을 수 있습니다
    vi /webapps/zookeeper/conf/zk_server_jaas.conf
    
    Server {
    org.apache.kafka.common.security.plain.PlainLoginModule required 
        username="admin" 
        password="admin" 
        user_kafka="kafka";
    };
    

    4. kafka 관련jar 패키지를 zookeeper로 가져오고 kafka/lib에서 관련jar 패키지를 zookeeper/lib로 복사하기
    kafka-clients-1.1.1.jar
    lz4-java-1.4.1.jar
    slf4j-api-1.7.25.jar
    slf4j-log4j12-1.7.25.jar
    snappy-java-1.1.7.1.jar
    

    5. bin/zkEnv를 수정합니다.sh, zk 시작 시 zk_ 읽기server_jaas.conf
    vi /webapps/zookeeper/bin/zkEnv.sh
    
    # 
    export SERVER_JVMFLAGS=" -Djava.security.auth.login.config=/webapps/zookeeper/conf/zk_server_jaas.conf"
    

    6. bin/zkServer를 시작합니다.sh start
    기타 명령 중지: bin/zkServer.sh stop 재부팅: bin/zkServer.sh restart 상태:bin/zkServer.sh status

    kafka 집단 배치 및 안전 인증


    1. 프로필 수정
    #192.168.1.101 
    vi /webapps/kafka/config/server.properties
    
    # 
    broker.id=1
    
    listeners=SASL_PLAINTEXT://0.0.0.0:9092
    
    # 
    advertised.listeners=SASL_PLAINTEXT://192.168.1.101:9092
    security.inter.broker.protocol=SASL_PLAINTEXT  
    sasl.enabled.mechanisms=PLAIN  
    sasl.mechanism.inter.broker.protocol=PLAIN  
    authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
    allow.everyone.if.no.acl.found=true
    
    # topic, true
    auto.create.topics.enable=false
    
    #log 
    log.dirs=/webapps/kafka/logs
    
    # 
    num.partitions=3
    
    #topic offset 
    offsets.topic.replication.factor=3
    transaction.state.log.replication.factor=1
    transaction.state.log.min.isr=1
    # , topics
    default.replication.factor=3
    
    #zookeeper 
    zookeeper.connect=192.168.1.101:12181,192.168.1.102:12181,192.168.1.103:12181
    
    
    #192.168.1.102 
    vi /webapps/kafka/config/server.properties
    
    # 
    broker.id=2
    
    listeners=SASL_PLAINTEXT://0.0.0.0:9092
    
    # 
    advertised.listeners=SASL_PLAINTEXT://192.168.1.102:9092
    security.inter.broker.protocol=SASL_PLAINTEXT  
    sasl.enabled.mechanisms=PLAIN  
    sasl.mechanism.inter.broker.protocol=PLAIN  
    authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
    allow.everyone.if.no.acl.found=true
    
    # topic, true
    auto.create.topics.enable=false
    
    #log 
    log.dirs=/webapps/kafka/logs
    
    # 
    num.partitions=3
    
    #topic offset 
    offsets.topic.replication.factor=3
    transaction.state.log.replication.factor=1
    transaction.state.log.min.isr=1
    # , topics
    default.replication.factor=3
    
    #zookeeper 
    zookeeper.connect=192.168.1.101:12181,192.168.1.102:12181,192.168.1.103:12181
    
    
    #192.168.1.103 
    vi /webapps/kafka/config/server.properties
    
    # 
    broker.id=3
    
    listeners=SASL_PLAINTEXT://0.0.0.0:9092
    
    # ----
    advertised.listeners=SASL_PLAINTEXT://192.168.1.103:9092
    security.inter.broker.protocol=SASL_PLAINTEXT  
    sasl.enabled.mechanisms=PLAIN  
    sasl.mechanism.inter.broker.protocol=PLAIN  
    authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
    allow.everyone.if.no.acl.found=true
    #----
    
    # topic, true
    auto.create.topics.enable=false
    
    #log 
    log.dirs=/webapps/kafka/logs
    
    # 
    num.partitions=3
    
    #topic offset 
    offsets.topic.replication.factor=3
    transaction.state.log.replication.factor=1
    transaction.state.log.min.isr=1
    # , topics
    default.replication.factor=3
    
    #zookeeper 
    zookeeper.connect=192.168.1.101:12181,192.168.1.102:12181,192.168.1.103:12181
    
    

    3. 보안 인증 정보 파일 추가 kafka_server_jaas.ff 3대의 서버가 같은 Kafka 서버 블록 중,kafka가 설정한 인증 정보 클라이언트 블록 중,zookeeper의 인증 정보,kafka 연결 zookeeper에 사용
    vi /webapps/kafka/config/kafka_server_jaas.conf
    
    KafkaServer {
    	org.apache.kafka.common.security.plain.PlainLoginModule required
    	username="admin"
    	password="admin"
    	user_kafka="kafka";
    };
    
    Client {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    	username="kafka"
    	password="kafka";
    };
    

    4. kafka 시작 환경 변수 설정
    vi /webapps/kafka/bin/kafka-run-class.sh
    
    
    # 
    export KAFKA_HEAP_OPTS="-Xmx2G -Xms2G -Djava.security.auth.login.config=/webapps/kafka/config/kafka_server_jaas.conf"
    

    5. bin/kafka-server-start를 시작합니다.sh -daemon config/server.properties

    좋은 웹페이지 즐겨찾기