一、拉取相应镜像
elk版本号最好使用统一的版本号,我这里统一使用的是6.5.4版本
//拉取 elasticsearch镜像
docker pull elasticsearch:6.5.4
//拉取logstash镜像
docker pull logstash:6.5.4
//拉取kibana镜像
docker pull kibana:6.5.4
二、构建容器
2.1构建elasticsearch容器
elasticsearch默认的端口号是9200,这里将容器的9200端口,映射到宿主机上,这样我们就可以通过9200端口访问elasticsearch,暴露5601端口是为kibana容器做准备
docker run -d --name es -p 9200:9200 -p 9300:9300 -p 5601:5601 -e"discovery.type=single-node" elasticsearch:6.5.4
//配置elasticsearch容器
#进入容器
docker exec -it es /bin/bash
#编辑文件
vi config/elasticsearch.yml
#加入跨域准备
http.cors.enabled: true
http.cors.allow-origin: "*"
#重启容器
docker restart es
#访问验证
2.1.1安装elasticsearch—head插件(主要也是为了方便查看elasticsearch)
#拉取镜像
docker pull mobz/elasticsearch-head:5
#构建elasticsearch——head容器
docker run -d --name es_head -p 9100:9100 mobz/elasticsearch-head:5
#查看验证
2.2构建kibana容器
#这里kibana容器共用elasticsearch容器的端口
docker run -it -d -e ELASTICSEARCH_URL=http://192.168.80.131:9200 --name kibana --network=container:es kibana:6.5.4
#查看验证(访问5601端口号)
2.3构建logstash容器
#这里我们用dockers-compose 文件构建容器,docker-compose.yml文件配置如下
#解释说明:挂载三个本地目录到容器中
1.logs里面映射的是一个springboot与springcloud项目的日志 与本文章的主题关系不大
2挂载.logstash-conf目录是 为了把本地的配置文件(logstash.conf)映射到容器中
3.挂载logstash_yml目录是为了把logstash.yml文件映射到容器中,以覆盖掉容器中的logstash.yml
中,logstash.yml中主要修改了一个参数,原为elasticsearch:9200
4.command 主要是为了使用logstash.conf文件启动容器
5、数据的传递如下图
5、验证查看
访问kibana地址(ip:5601)
项目中提到的项目地址:https://github.com/chengtaiheng/springboot-springcloud-docker
更多kibana的网上的使用教程,请在网上自行搜索。