目录结构如下
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"