docker-compose部署ELK

24 阅读1分钟

目录结构如下

1.请按照如下结构新建好目录和文件

/elk
├── docker-compose.yml
├── es/
  ├── data/
  ├── plugins/
  └── config/
    └── elasticsearch.yml
└── kibana/
  └── config/
    └── kibana.yml

2.为docker授权目录的读写权限

chmod 777 -R ./*

docker-compose.yml

注意:执行之前先创建docker网络 docker network create dev_net

services:
  es:
    image: elasticsearch:7.1.0
    container_name: es
    restart: always
    environment:
      - discovery.type=single-node #以单一节点模式启动
      - ES_JAVA_OPTS=-Xms2g -Xmx2g #设置使用jvm内存大小
    volumes:
      - /etc/localtime:/etc/localtime:ro # 同步宿主机时间到容器
      - ./es/plugins:/usr/share/elasticsearch/plugins
      - ./es/data:/usr/share/elasticsearch/data
      - ./es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
    ports:
      - 9200:9200
      - 9300:9300
    networks:
      dev_net:
        aliases:
          - es

  kibana:
    image: kibana:7.1.0
    container_name: kibana
    restart: always
    ports:
      - 5601:5601
    depends_on:
      - es
    volumes:
      - /etc/localtime:/etc/localtime:ro # 同步宿主机时间到容器
      - ./kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml
    environment:
      - ELASTICSEARCH_HOSTS=http://es:9200 #设置访问elasticsearch的地址
    networks:
      dev_net:
        aliases:
          - kibana

networks: # 定义网络
  dev_net: # 网络名称
    external: true # 查找已经存在的网卡,而不是创建

elasticsearch.yml

cluster.name: "docker-cluster"
node.name: "docker-node"
network.host: 0.0.0.0

kibana.yml

#
# ** THIS IS AN AUTO-GENERATED FILE **
#

# Default Kibana configuration for docker target
server.name: kibana
server.host: "0"
xpack.monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN"