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