下載Kafka和Zookeeper鏡像文件
1,docker pull wurstmeister/kafka
2,docker pull wurstmeister/zookeeper
先運行zk,再運行kafka
1,啟動zk
docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
2,啟動kafka
docker run --name kafka01 \
-p 9092:9092 \
-e KAFKA_BROKER_ID=0 \
-e KAFKA_ZOOKEEPER_CONNECT=192.168.91.66:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.91.66:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
-d wurstmeister/kafka
創建主題
進入到容器中:
docker exec -it kafka01 /bin/bash
創建主題: my_log
/opt/kafka/bin/kafka-topics.sh --create --zookeeper 192.168.91.66:2181 --replication-factor 1 --partitions 1 --topic my_log
在項目代碼我們可以進行AOP日志處理,將異常信息 發送到Kafaka 然后 Logstash訂閱話題,將數據寫入到ES中。
Logstash配置: 通過Logstash去訂閱主題,主題要保持一致與代碼,與創建的主題。
input {
kafka {
bootstrap_servers => "192.168.91.66:9092"
topics => ["goods_mylog"]
}
}
output {
stdout { codec => rubydebug }
elasticsearch {
hosts => ["192.168.91.66:9200","192.168.91.66:9201"]
index => "goods_mylog"
}
}
啟動Logstash: ./bin/logstash -f goods_mylog.conf