自己看网上的资料写了一个日志搜集项目要保存收集数据到elasticsearch,所以就用docker搭建了一个。
搭建环境的时候还是推荐创建一个network,让两个容器都在一个局域网内部访问。
ES办公网站的文档很详细,自己找找就能得到docker的部署方法。
https://www.elastic.co/guide/index.html
- 安装elasticsearch
https://www.elastic.co/guide/en/elastic-stack/current/index.html
https://www.elastic.co/guide/en/elasticsearch/reference/7.15/docker.html
在文档页面找到docker方式安装的连接,就可以得到详细的方法。
docker network create elastic
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.15.0
#挂载宿主机目录
mkdir -p /docker/es/config
mkdir -p /docker/es/data
chmod -R 777 /docker/es/data
echo "http.host: 0.0.0.0" >> /docker/es/config/elasticsearch.yml
docker run -p 9200:9200 -p 9300:9300 \
--name es --net elastic \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /docker/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /docker/es/data:/usr/share/elasticsearch/data \
-v /docker/es/plugins:/usr/share/elasticsearch/plugins \
-d docker.elastic.co/elasticsearch/elasticsearch:7.15.0
其中elasticsearch.yml是挂载的配置文件,data是挂载的数据,plugins是es挂载的插件,如ik。 数据挂载需要权限,需要设置data文件的权限为可读可写,需要下边的指令。
chmod -R 777 [路径]
-e "discovery.type=single-node" 设置为单节点
特别注意: -e ES_JAVA_OPTS="-Xms256m -Xmx256m" \ 测试环境下,设置ES的初始内存和最大内存,否则导致过大启动不了ES
访问测试链接:http://192.168.1.7:9200/
- 安装kibana
https://www.elastic.co/guide/en/kibana/7.15/install.html
docker pull docker.elastic.co/kibana/kibana:7.15.0
docker run --name kib01 --net elastic -p 5601:5601 -e "ELASTICSEARCH_HOSTS=http://es:9200" -d docker.elastic.co/kibana/kibana:7.15.0
访问测试连接:
- 中文分词器ik安装
进入容器 docker exec -it es /bin/bash
执行安装命令:(注意:ik跟es的版本要一致)
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.15.0/elasticsearch-analysis-ik-7.15.0.zip
查看 plugins 目录可以看到IK分词器已经安装成功
退出容器并重启容器 docker restart es