一、搭建zookeeper:
1,zookeeper镜像采用wurstmeister/zookeeper:latest拉取zookeeper镜像
docker pull wurstmeister/zookeeper
2,启动zookeeper
docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
3,查看zookeeper启动日志
docker logs -f zookeeper
4,查看zookeeper安装路径
docker exec zookeeper pwd
5,查看zookeeper运行状态
docker exec zookeeper bin/zkServer.sh status
6,zookeeper搭建完成
二、搭建kafka:
1,kafka镜像采用wurstmeister/kafka:latest 拉取kafka镜像
docker pull wurstmeister/kafka
2,启动kafka
docker run -d --name kafka
–env KAFKA_ADVERTISED_HOST_NAME=localhost
–env KAFKA_ZOOKEEPER_CONNECT=172.21.0.11:2181
–env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.21.0.11:9092
–env KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
–env KAFKA_HEAP_OPTS="-Xmx256M -Xms128M"
–net=host wurstmeister/kafka
3,查看kafka启动日志
docker logs -f kafka
4,查看kafka版本
docker exec kafka find / -name *kafka_* | head -1 | grep -o ‘\kafka[^\n]*’
5,kafka搭建完成
三、搭建logstash
1,logstash镜像采用logstash:7.9.1拉取logstash镜像
docker pull logstash:7.9.1
2,启动logstash
docker run -d --restart=always --privileged=true
-p 5044:5044 --name logstash
-v /root/elk/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml
-v /data/elk/logstash/conf.d/:/usr/share/logstash/conf.d/
logstash:7.9.1
3,查看启动日志
docker exec -it logstash /bin/bash
4,进入容器
docker exec -it -u root logstash /bin/bash
5,找到配置文件修改
input{
kafka{
bootstrap_servers => “172.21.0.11:9092” #kafka地址
auto_offset_reset => “earliest” #消息读取位置
topics => [“oracle_test”] #kafka中topic名称,记得创建该topic
group_id => “logstash” #默认为“logstash”
codec => “json” #与Shipper端output配置项一致
consumer_threads => 3 #消费的线程数
max_poll_records => “2000”
decorate_events => true #在输出消息的时候回输出自身的信息,包括:消费消息的大小、topic来源以及consumer的group信息。
}
}
output {
kafka {
topic_id => “elk”
bootstrap_servers => “172.21.0.11:9092”
}
elasticsearch {
user => elastic
password => zOhEjICix5EQBw1Jaxlkcw9i
hosts => [“https://aws.found.io:9243”]
index => “logstash-%{+YYYY.MM.dd}”
}
}
6.重启logstash
docker restart logstash
四、搭建elasticsearch
本次elasticsearch采用的是云端官方的服务elasticsearch cloud集群配置是三个节点
节点1:4 GB RAM
节点2:1 GB RAM
节点3:4 GB RAM
1,集群环境健康检查
2,查询全部索引
五、模拟业务环境
1,进入kafka
docker exec -it kafka /bin/bash
2,打开生产者console
./kafka-console-producer.sh --broker-list 172.21.0.11:9092 --topic oracle_test
3,测试数据是从生产库上下载了一会定位数据
4,logstash的out我配置了个两个通道一个是到elasticsearch,一个是到kafka的另一个topic
查询测试topic是否接受到数据
docker exec kafka kafka-console-consumer.sh --bootstrap-server 172.21.0.11:9092 --from-beginning --topic elk
5,查看elasticsearch是否接受到数据
数据都已经上来本次模拟了2万条数据 一会测试下1000千万数据下的查询
六、后续
整体的业务流程是定位数据采集程序采集进入围栏内的车辆定位数据实时传递至kafka集群通过管道进入elasticsearch然后供实时查询分析