零、要提前安装好docker、以及配置好docker国内镜像源
配置镜像源(是为了下载速度更加快)参考:
https://blog.csdn.net/u013592116/article/details/103906765
一、安装elasticsearch6.4.0
1、下载elasticsearch6.4.0
# 下载镜像 查看镜像
docker pull elasticsearch:6.4.0
docker images
说明下载成功
2、安装elasticsearch
# 创建自定义的网络(用于连接到连接到同一网络的其他服务(例如Kibana))
docker network create somenetwork
# 运行 elasticsearch
docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:6.4.0
# 查看容器状态
docker ps
# 检测 elasticsearch 是否启动成功
curl 127.0.0.1:9200
二、docker安装kibana
# 下载镜像 查看镜像
docker pull kibana:6.4.0
docker images
注意:
# 运行 Kibana
docker run -d --name kibana --net somenetwork -p 5601:5601 kibana:6.4.0
# 查看容器启动状态
docker ps
访问页面:http://192.168.74.128:5601/,出现如下情况,说明安装成功(ip地址是docker所在的虚拟机即宿主机ip):
三、安装logstash,并挂载文件到指定路径
1、下载logstash
# 下载镜像 查看镜像
docker pull logstash:6.4.0
docker images
2、安装logstash
docker run --name logstash -d -p 5044:5044 -p 9600:9600 logstash:6.4.0
查看是否安装logstash成功:
3、使用docker命令将logstash的/usr/share/logstash/config目录的文件拷贝到宿主机的 /usr/share/logstash/config 目录中,然后关闭并移除logstash容器,命令如下:
docker cp logstash:/usr/share/logstash/config /usr/share/logstash/config
docker stop logstash
docker rm logstash
4、重新启动logstash并指定挂载的文件,这样子以后启动logstash:
参数说明:-d是后台隐藏启动,-v是docker的挂载命令
docker run -it -d -p 5044:5044 --name logstash --net somenetwork -v /usr/share/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml logstash:6.4.0
以后就可以不用进入docker容器的logstash目录中修改logstash.yml,直接可以通过上述命令修改宿主机/usr/share/logstash/config中的logstash.yml 然后运行:
docker restart logstash
就可以实现修改容器中logstash/usr/share/logstash/config/logstash.yml 的目的
四、下载安装elasticsearch-head插件(就算指定了国内镜像,下载速度都可能很慢)
1、下载elasticsearch-head
docker pull mobz/elasticsearch-head:5
说明下载成功了
2、启动elasticsearch-head
docker run -d -p 9100:9100 --name elasticsearch-head mobz/elasticsearch-head:5
说明启动成功了
然后浏览器访问 127.0.0.1:9100
出现这个界面表示 elasticsearch-head 安装成功
但是发现“集群健康值:未连接” 说明没有和elasticsearch 连接成功,需要elasticsearch配置跨域
进入elasticsearch容器然后修改/usr/share/elasticsearch/config/elasticsearch.yml文件,添加如下最后2行:
cluster.name: "docker-cluster"
#允许其他网络访问
network.host: 0.0.0.0
discovery.zen.minimum_master_nodes: 1
#跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
然后重启elasticsearch即可在浏览器访问 9100端口:
docker restart elasticsearch
注释:
docker images #查看docker下载好的镜像
docker ps#查看所有docker正在运行的容器
docker exec -it 87081e2ac639(通过docker ps 查询到的容器id)/bin/sh #进入到正在运行中的指定容器id的容器中
docker stop/start/restart/rm logstash(容器名) #停止/开启/重启/删除 指定容器名的容器