1、安装kafka、zookeeper(启动kafka需要先启动zookeeper)
kafka下载
- wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.8.1/kafka_2.12-2.8.1.tgz --no-check-certificate
- tar -zxvf ./kafka_2.12-2.8.1.tgz -C /目路/(解压到指定目录)
- cd kafka_2.12-2.8.1
- vim config/server.properties
#配置zookeeper管理kafka的路径
zookeeper.connect=localhost:2181
#配置kafka的监听端口
listeners=PLAINTEXT://:9092
#把kafka的地址端口注册给zookeeper,如果是远程访问要改成外网IP
advertised.listeners=PLAINTEXT://203.195.205.63:9092
zookeeper下载apache-zookeeper-3.8.0-bin.tar.gz
链接: https://pan.baidu.com/s/1j4dtrMfBsDQo09qMcLmxHg 提取码: pjr5
下载后解压进入bin目录下执行./zkServer.sh start
kafka启停bin目录下
- ./kafka-server-start.sh -daemon ../config/server.properties
- ./kafka-server-stop.sh
创建topic/生产/消费 bin目录下
- ./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic topicName
- ./kafka-console-producer.sh --broker-list localhost:9092 --topic topicName
- ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testTopic --from-beginning
能正常收发消息kafka就算是告一段落了
2、安装logstash
链接: https://pan.baidu.com/s/1Vbdl-WvakJNY61J3XPkddA 提取码: 6pmv
官网和网盘(6.8)都可以,注意版本,配合es版本进行选下,我的es是6.8的,所以logstash也是选择了6.8的版本,否则会出现同步数据失败的情况
tar zxvf logstash-6.8.3.tar.gz
解压后找个目录vim k_kafka.conf
input {
kafka {
type => "json"
bootstrap_servers => "127.0.0.1:9092"
topics => ["kafka_topic"]
client_id => "kafka_client_id"
codec => "json"
auto_offset_reset => "latest"
group_id => "kafka_group_id"
decorate_events => "true"
consumer_threads => 3
}
}
filter {
#删除无用的字段
mutate {
remove_field => "type"
remove_field => "tags"
}
}
output {
elasticsearch {
hosts => ["ip:port"]
user => "test_user"
password=> "test_user"
index => "es_index"
document_id => "%{id}"#es的_id可以根据业务写入kafka中json里的id参数识别
}
stdout{} #打印控制台日志的
}
filter、out都可以写多个,可以根据kafka中读到数据的某个参数进行识别判断,方便业务处理
总结:至此整个业务数据就可以通过kafka、logstash同步到es了,希望给您能带来帮助,换您一个关注!