설치 및 설정 IP 카프카 액세스 한을 통해 외부 네트워크가

1, kafka 安装

JDK를 설치

tar xvf jdk1.8.0_231.tar.gz  -C /usr/local && cd   /usr/local
ln -sv jdk1.8.0_231 jdk 

vim /etc/profile.d/java.sh
    JAVA_HOME=/usr/local/jdk
    PATH=$JAVA_HOME/bin:$PATH

사육사 설치 (또는 카프카 자신의)

vim /usr/local/kafka/zookeeper/conf/zoo.cfg   
   tickTime=2000
   initLimit=10
   syncLimit=5
   dataDir=/data/zookeeper
   clientPort=2181
   maxClientCnxns=0

   # 集群版的zookeeper添加如下配置
   # server.1=ip1:2888:3888
   # server.2=ip2:2888:3888
   # server.3=ip3:28888:3888

카프카의 다운로드 및 설치 kakfa

wget https://archive.apache.org/dist/kafka/0.10.2.1/kafka_2.11-0.10.2.1.tgz

tar xvf kafka_2.11-0.10.2.1.tgz -C /usr/local && cd   /usr/local
ln -sv kafka_2.11-0.10.2.1.tgz kafka

메모리를 시작 카프카 수정

vim /usr/local/kafka/bin/kafka-server-start.sh
  export KAFKA_HEAP_OPTS="-Xmx2G -Xms2G"

카프카 시작 및 정지

/usr/local/kafka/bin/zookeeper-server-start.sh -deamon /usr/local/kafka/conf/zookeeper.properties

/usr/local/kafka/bin/kafka-server-start.sh -deamon /usr/local/kafka/conf/server.properties

/usr/local/kafka/bin/kafka-server-stop.sh /usr/local/kafka/conf/server.properties
/usr/local/kafka/bin/zookeeper-server-stop.sh /usr/local/kafka/conf/zookeeper.properties

카프카는 시작 - 정지 모드에 별도로 설치

/usr/local/zookeeper/bin/zkServer.sh stop|stop

2 카프카 외부 네트워크 액세스를 배치 (외부 네트워크 액세스를 제공하기 위해 필요한 경우)

전제 조건

네트워크 환경에서 내부 네트워크의 IP 주소로 도메인 이름 결의를 필요로하는 것은 설정할 수 있습니다 / etc / hosts 파일

매개 변수 설정

host.name = kafka.test.com (도메인 이름 확인에 해당 네트워크의 IP에 대한 해결책이 필요)
높은 버전은 추천하지 않습니다. 청취자 속성만을 사용하도록 구성되지 않은 경우 0.10.2.1 낮은 버전 청취자 속성에 의해 대체되어, 사용할 수있다. 이 호스트 이름 브로커를 나타냅니다

advertised.listeners = PLAINTEXT : //kafka.test.com : 9092 (높은 버전 대체 host.name, 세트 advertised.listeners하지 세트 host.name)와
없는 경우 사육사 등록 클라이언트 수신기에 제공 구성 청취자를 사용.

advertised.host.name (참조를 위해 제공 할 필요가 없습니다 만)
추천되고 있지 않습니다. advertised.listeners 또는 청취자 속성이 구성되지 않은 경우에만 사용할 수 있습니다. 공식 웹 사이트는 advertised.listeners 추천

(참조를 위해 제공 할 필요가 없습니다 만) 리스너
의 URL과 같은 청취 할 수있는 프로토콜의 필요성 : PLAINTEXT : //이 myhost : 9092, SSL : // : 9091 CLIENT를 : //0.0.0.0 : 9092, 복제 : // localhost를 : 9093 . 구성이 지정되지 않으면, java.net.InetAddress.getCanonicalHostName () 함수의 리턴 값

/ etc / hosts 파일에 수정 브로커

[인트라넷 IP] kafka.test.com

외부 네트워크 액세스 서버 수정에 / etc / hosts 파일

[외부 네트워크의 IP] kafka.test.com

3 카프카 소비자 디버깅

생산자

/usr/local/kafka/bin/kafka-console-producer.sh --broker-list IP:9092 --topic TOPIC

소비자

/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server IP:9092 --topic TOPIC--from-beginning --max-messages 1
/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server 外网IP:9092 --topic TOPIC --from-beginning --max-messages 1

4 logstash 디버깅

output {
  stdout { codec => rubydebug { metadata => true }  }
}

5 logstash는 kakfa 로그 문제 해결을 소비하지

A, topics_pattern 와일드 카드 문제. "*", "."이어야합니다

      topics_pattern=>"prefix-.*" 

B, 필터 일치 규칙은, 주제 카프카, 다른 filebeat의 logstash 다른 버전을 일치 및 메타 데이터가 동일한 주제하지 않을 수 있습니다 대응에 관심을 지불 할 수있을 것과주의 필요

      if [type] =~ "prefix-*" {
          grok { match =>["[type]","^prefix-(?<index_name>)"] }
       }

      if [kafka][topic] =~ "prefix-*" {
        grok { match => [ "[kafka][topic]", "^prefix-(?<index_name>.*$)" ]}
      }

       if [@metadata][topic] =~ "prefix-*" {
          grok { match =>["[@metadata][topic]","^prefix-(?<index_name>)"] }
       }

      if [@metadata][kafka][topic] =~ "prefix-*" {
        grok { match => [ "[@metadata][kafka][topic]", "^prefix-(?<index_name>.*$)" ]}
      }

엑스트라 넷 kakfa 소비 참조 : https://www.maiyewang.com/archives/17993

추천

출처blog.51cto.com/395469372/2464399