在用docker-compose编排elk三个服务时,碰到了很多坑,网上很多资料编排的版本都不是最新的版本,我们这里用的 elasticsearch,logstash,kibana全都是elastic官方提供的目前最新版本7.1.1,高版本和低版本的一些配置还是有很大差异的,这里介绍高版本的elk服务如何安装。
1、在elastic官方提供的地址下载elk7.1.1镜像
在如下地址可以查看到官方发布的docker镜像
https://www.docker.elastic.co/#
-
#下载elasticsearch docker pull docker.elastic.co/elasticsearch/elasticsearch:7.1.1 #下载logstash docker pull docker.elastic.co/logstash/logstash:7.1.1 #下载kibana docker pull docker.elastic.co/kibana/kibana:7.1.1或者#下载elasticsearch docker pull elasticsearch:7.1.1 #下载logstash docker pull logstash:7.1.1 #下载kibana docker pull kibana:7.1.1
2、编写docker-compose编排三大服务
在/opt/目录下新建一个elkDocker目录
#进入elkDocker目录
cd /opt/elkDocker
#新建docker-compose.yml文件
vi docker-compose.yml
version: '2.2'
services:elasticsearch:image: docker.elastic.co/elasticsearch/elasticsearch:7.1.1container_name: elasticsearch7.1.1environment:- discovery.type=single-node- "ES_JAVA_OPTS=-Xms512m -Xmx512m"volumes:- esdata:/usr/share/elasticsearch/datahostname: elasticsearchrestart: alwaysports:- 9200:9200- 9300:9300kibana:image: docker.elastic.co/kibana/kibana:7.1.1container_name: kibana7.1.1environment:- elasticsearch.hosts=http://elasticsearch:9200hostname: kibanadepends_on:- elasticsearchrestart: alwaysports:- "5601:5601"logstash:image: docker.elastic.co/logstash/logstash:7.1.1container_name: logstash7.1.1hostname: logstashrestart: alwaysdepends_on:- elasticsearchports:- 9600:9600- 5044:5044
volumes:esdata:driver: local
#:wq保存文件
#在yml文件所在目录执行
docker-compose up -d
#如果都出现done那就创建完成了
#可以执行一下命令查看日志(分别输出elk三个服务的日志)
docker-compose logs
#执行docker ps可以看到三个服务的运行状态(如下图)
3、浏览器访问kibana是否成功
在浏览器输入http://你的服务器IP:5601/
如果看到以下画面说明elk三大服务安装完成了
官网也有相应的docker安装说明,但是没有三个一起关联的安装说明,需要注意以下问题
- 不要下载docker官方的镜像,最好使用 elastic官方仓库里的镜像
- 如果出现启动不成功,先把其他两个注释掉,一个一个服务单独运行试试
- logstash需要监听elasticsearch服务,不然logstash会自动停掉
- logstash和kibana可以不用设置关联 elasticsearch 的环境变量,官网文档说如果是docker镜像有默认设置
- 如果自己修改了服务名称或者端口要记得修改默认的设置
如果启动出现任何问题一定要详细看日志,日志都会给出很多信息,我在安装的时候看的是5.0版本的安装资料用的是7.1.1版本安装,碰到很多坑,也没有看日志。
至此elk7.1.1版本就安装在docker中,有任何问题可以留言。