您的位置:首页 > 运维架构 > Docker

docker-compose 安装 ES集群及ELK等相关软件

2019-07-27 21:09 1211 查看

本文介绍通过 docker-compose 构建 ES 集群及ELK等相关软件。

  • 制作包含
    analysis-ik
    analysis-pinyin
    等插件的ES镜像,Dockerfile如下
# Docker image of elasticsearch with ik and pinyin
# VERSION 7.2.0
# Author: zhengcj01

FROM elasticsearch:7.2.0

#author
MAINTAINER zhengcj01 <565407548@qq.com>

ENV ES_BASE_PATH /opt
ENV ES_TMP_PATH $ES_BASE_PATH/es

ENV ES_PLUGINS_PATH /usr/share/elasticsearch/plugins
ENV ES_PLUGINS_IK_PATH $ES_PLUGINS_PATH/ik
ENV ES_PLUGINS_PINYIN_PATH $ES_PLUGINS_PATH/pinyin

RUN cd $ES_BASE_PATH && \
yum -y install wget && \
yum -y install unzip && \
mkdir -p $ES_PLUGINS_PATH && \
mkdir -p $ES_TMP_PATH && \
cd $ES_TMP_PATH && \
#下载ik源码包
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.2.0/elasticsearch-analysis-ik-7.2.0.zip && \
#构建成功后,将文件移动到插件目录
mkdir -p $ES_PLUGINS_IK_PATH && \
mv elasticsearch-analysis-ik-7.2.0.zip $ES_PLUGINS_IK_PATH && \
cd $ES_PLUGINS_IK_PATH && \
unzip *.zip && \
rm -rf *.zip && \
cd $ES_TMP_PATH && \
#下载ik源码包
wget https://github.com/medcl/elasticsearch-analysis-pinyin/releases/download/v7.2.0/elasticsearch-analysis-pinyin-7.2.0.zip && \
#构建成功后,将文件移动到插件目录
mkdir -p $ES_PLUGINS_PINYIN_PATH && \
mv elasticsearch-analysis-pinyin-7.2.0.zip $ES_PLUGINS_PINYIN_PATH && \
cd $ES_PLUGINS_PINYIN_PATH && \
#解压
unzip *.zip && \
rm -rf *.zip && \
#删除ik的源码目录
rm -rf $ES_TMP_PATH
  • 制作镜像并上传到 dockerhub
cd /path/of/Dockerfile
docker build -t elasticsearch-with-ik-pinyin:7.2.0 .
# 要提前登录
docker push zhengcj01/elasticsearch-with-ik-pinyin:7.2.0
  • docker-compose.yml
version: '2.2'
services:
cerebro:
image: lmenezes/cerebro:0.8.3
container_name: cerebro
ports:
- "9000:9000"
command:
- -Dhosts.0.host=http://elasticsearch:9200
networks:
- es7_net

kibana:
image: kibana:7.2.0
container_name: kibana7
environment:
- I18N_LOCALE=zh-CN
- XPACK_GRAPH_ENABLED=true
- TIMELION_ENABLED=true
- XPACK_MONITORING_COLLECTION_ENABLED="true"
ports:
- "5601:5601"
networks:
- es7_net

logstash:
image: logstash:7.2.0
container_name: logstash7
volumes:
- ./logstash/test:/usr/share/logstash/test
networks:
- es7_net

elasticsearch:
image: zhengcj01/elasticsearch-with-ik-pinyin:7.2.0
container_name: es7_01
environment:
- cluster.name=docker_es_cluster
- node.name=es7_01
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- discovery.seed_hosts=es7_01
- cluster.initial_master_nodes=es7_01,es7_02
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./es1/data:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- es7_net

elasticsearch2:
image: zhengcj01/elasticsearch-with-ik-pinyin:7.2.0
container_name: es7_02
environment:
- cluster.name=docker_es_cluster
- node.name=es7_02
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- discovery.seed_hosts=es7_01
- cluster.initial_master_nodes=es7_01,es7_02
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./es2/data:/usr/share/elasticsearch/data
networks:
- es7_net

volumes:
es7_01_data:
driver: local
es7_02_data:
driver: local

networks:
es7_net:
driver: bridge
  • 启动
cd /path/of/docker-compose.yml
docker-compose up
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: