在用docker-compose编排elk三个服务时,碰到了很多坑,网上很多资料编排的版本都不是最新的版本,我们这里用的 elasticsearch,logstash,kibana全都是elastic官方提供的目前最新版本7.1.1,高版本和低版本的一些配置还是有很大差异的,这里介绍高版本的elk服务如何安装。

1、在elastic官方提供的地址下载elk7.1.1镜像

在如下地址可以查看到官方发布的docker镜像

https://www.docker.elastic.co/#

elasticsearch

logstash

kibana

  •  
    #下载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.1
    container_name: elasticsearch7.1.1
    environment:
      - discovery.type=single-node
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    volumes:
      - esdata:/usr/share/elasticsearch/data
    hostname: elasticsearch
    restart: always
    ports:
      - 9200:9200
      - 9300:9300
  kibana:
    image: docker.elastic.co/kibana/kibana:7.1.1
    container_name: kibana7.1.1
    environment:
      - elasticsearch.hosts=http://elasticsearch:9200
    hostname: kibana
    depends_on:
      - elasticsearch
    restart: always
    ports:
      - "5601:5601"
  logstash:
    image: docker.elastic.co/logstash/logstash:7.1.1
    container_name: logstash7.1.1
    hostname: logstash
    restart: always
    depends_on:
      - elasticsearch
    ports:
      - 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三大服务安装完成了

kibana可视化面板

kibana可视化

官网也有相应的docker安装说明,但是没有三个一起关联的安装说明,需要注意以下问题

  • 不要下载docker官方的镜像,最好使用 elastic官方仓库里的镜像
  • 如果出现启动不成功,先把其他两个注释掉,一个一个服务单独运行试试
  • logstash需要监听elasticsearch服务,不然logstash会自动停掉
  • logstash和kibana可以不用设置关联 elasticsearch 的环境变量,官网文档说如果是docker镜像有默认设置
  • 如果自己修改了服务名称或者端口要记得修改默认的设置

docker默认

docker默认

如果启动出现任何问题一定要详细看日志,日志都会给出很多信息,我在安装的时候看的是5.0版本的安装资料用的是7.1.1版本安装,碰到很多坑,也没有看日志。

至此elk7.1.1版本就安装在docker中,有任何问题可以留言。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐