网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
重启网络服务:systemctl restart network
查看IP设置执行命令: ip addr
在虚拟机上ping物理机IP,执行命令:ping 192.168.3.138
在物理机上ping虚拟机IP,执行命令:ping 192.168.48.120
在虚拟机上ping百度,执行命令:ping <www.baidu.com> ,说明虚拟机可以连上外网
5:安装SecureCRT
- 5.1:在物理机上安装secureCRT或类似软件,方便登录操作虚拟机linux系统
- 5.2:提供安装介质,见后面资源提供
- 5.3:打开主页,创建系统连接
- 5.4: 设置192.168.48.120连接界面
6:安装docker以及镜像
- 6.1:执行docker安装命令:yum install docker
安装过程提示输入y,一直安装结束 - 6.2:启动docker命令:systemctl start docker, 然后执行docker命令检查是否安装成功
- 6.3:设置docker镜像源
进入目录:/etc/docker,修改文件daemon.json添加如下内容(一定要复制完整):
“registry-mirrors”:[“[https://docker.mirrors.ustc.edu.cn”,“https://cr.console.aliyun.com/”,“http://hub-mirror.c.163.com”]( )]
注:两处中间横线要复制出来,别漏了
然后重启docker,执行命令:systemctl restart docker - 6.4: 安装elk需要相关的docker镜像
docker pull elasticsearch:7.7.1
docker pull kibana:7.7.1
docker pull logstash:7.7.1
docker pull docker.io/zookeeper:3.7.1
docker pull wurstmeister/kafka:latest
查看已经下载镜像执行命令:docker images
下载镜像要有些耐性,有些镜像下载可能有点慢,有些时候可能会超时要多执行几次
下面安装步骤一定要安装顺序执行,因为容器内IP会安装启动顺序生成172.17.0.2、172.17.0.3 …
7:安装elastricsearch
- 7.1:运行elastricsearch, 执行启动命令
docker run --name elasticsearch -d -e ES_JAVA_OPTS=“-Xms512m -Xmx512m” -e “discovery.type=single-node” -p 9200:9200 -p 9300:9300 elasticsearch:7.7.1 - 7.2:查看启动elastricsearch的docker容器,执行命令: docker ps
确保状态是up状态表示容器运行正常 - 7.3:浏览器运行: http://192.168.48.120:9200 (多等几秒钟,多刷新几次浏览器) 界面上显示如下信息表示elastricsearch启动运行成功
- 7.4:执行命令:docker inspect elasticsearch获取容器里IP地址172.17.0.2
8:安装kibana
- 8.1:新建本地配置目录和配置文件:/home/elk/kibana/kibana.yml
Default Kibana configuration for docker target
server.name: kibana
server.host: “0”
elasticsearch.hosts: [ “http://172.17.0.2:9200” ]
monitoring.ui.container.elasticsearch.enabled: true
172.17.0.2 也可以使用虚拟机192.168.48.120替换
- 8.2:执行启动命令:
docker run -d --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name kibana -p 5601:5601 -v /home/elk/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml --privileged=true kibana:7.7.1 - 8.3:查看状态UP成功,执行命令:docker images
- 8.4:浏览器运行: http://192.168.48.120:5601 (一定多刷几次,多等几分钟)
9: 安装zookeeper
- 9.1:执行启动命令:
docker run -d --name zookeeper -p 2181:2181 --privileged=true zookeeper:3.7.1 - 9.2:查看容器状态,执行命令docker ps
- .9.3:验证zookeeper是否可能,需要进入容器内部:
进入容器内部,执行命令:docker exec -it zookeeper bash
进入目录bin ,执行如下命令:./zkServer.sh status
看到如下信息,说明zookeeper安装成功
10:安装kafka
- 10.1:执行启动脚本:
docker run -d --name kafka -p 9092:9092 --env KAFKA_ADVERTISED_HOST_NAME=192.168.48.120 --env KAFKA_ADVERTISED_PORT=9092 --env KAFKA_ZOOKEEPER_CONNECT=172.17.0.4:2181 wurstmeister/kafka:latest
注:KAFKA_ADVERTISED_HOST_NAME填写地址是虚拟机主机地址192.168.48.120,后面业务应用直接发送这个地址 - 10.2:查看容器启动是否成功,执行命令:docker ps
- 10.3:进入容器内部验证是否能正常发送消息:
进入容器执行命令:docker exec -it kafka bash
进入kafka目录:/opt/kafka/bin
创建topic : ./kafka-topics.sh --create --zookeeper 172.17.0.4:2181 --replication-factor 1 --partitions 8 --topic elktopic
注:这里创建topic连接zk的Ip是172.17.0.4,可以执行命令查看zookeeper的容器IP
查看topic : kafka-topics.sh --list --bootstrap-server 127.0.0.1:9092
终端1模拟消息生产:./kafka-console-producer.sh --bootstrap-server localhost:9092 --topic elktopic
终端2模拟消息消费: ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic elktopic
11:安装logstash
- 11.1:新建本地配置目录/home/elk/logstash;新增配置文件:logstash.yml和logstash.conf
- 11.2:logstash.yml文件信息增加如下:
http.host: “0.0.0.0”
xpack.monitoring.elasticsearch.hosts: [ “http://172.17.0.2:9200” ]
注:172.17.0.2是elasticesearch,可以执行命令查看elasticsearch的容器IP - 11.3:logstash.conf文件信息如下:
input {
kafka {
bootstrap_servers => “172.17.0.5:9092”
group_id => “logstash” #分组id
topics => [“elktopic”]
codec => “plain”
consumer_threads => 8 #消费者线程数,与分区数量保持一致
auto_offset_reset => latest #自动将偏移重置为最新偏移
decorate_events => “true” #将元数据添加到事件中
}
}
output {
elasticsearch {
hosts => [“[http://172.17.0.2:9200”]( )] #es
index => “logs_%{[@metadata][kafka][topic]}_%{+YYYY.MM.dd}” #动态创建索引
}
}
注:172.17.0.2是elasticesearch,可以执行命令查看elasticsearch的容器IP;
172.17.0.5是kafka,可以执行命令查看kafka的容器IP - 11.4:执行logstash启动命令:
docker run -d --name logstash \
-p 5044:5044 -p 9600:9600 \
-v /home/elk/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml \
-v /home/elk/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf \
–privileged=true logstash:7.7.1 - 11.5:查看容器启动成功,执行命令:docker ps
- 11.6:后续稍等5分钟,刷新日志执行命令:docker logs logstash
12:模拟演示1
- 12.1:模拟演示从kafka发送模拟消息在kibana界面展示
- 12.2:登录kafka容器内部执行模拟发送消息命令,具体参考上面步骤10
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!