docker部署ElasticSearch相关问题解决

1.内存不足,启动失败

原因是es需求大,jvm一般不足,需要修改配置

sudo sysctl -w vm.max_map_count=262144

 

2.Kibana server is not ready yet

1.关闭防火墙(学习的时候最好把防火墙关掉)

实际环境要配置防火墙规则。不可能真的关闭防火墙

//查看防火墙状态

systemctl status firewalld.service

//暂时关闭防火墙

systemctl stop firewalld

 

3.安装IK中文分词插件

分词插件最好下载到本地,拷贝到容器内直接安装,要不速度太慢

复制命令:docker cp 

只要把插件解压在指定目录即可

/usr/share/elasticsearch/plugins/ik

解压完成,重启容器

docker restart 容器id

因为容器停止,插件就需要重新安装。所以安装完成之后,最好就不要再重启容器

也可以在安装完成之后,制作自己已安装好插件的镜像。

进入容器命令

docker exec -it 容器ID bash (ps:并不需要全名,只需要唯一,哪怕一两个字母也行)

容器内直接安装命令:

elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.5.4/elasticsearch-analysis-ik-6.5.4.zip

在ES启动完成之时:(localhost是你安装机器的IP)

http://localhost:9200/测试ES

当出现如上信息表示ES安装没问题。

具体可以去后台看一下日志输出

命令:docker logs -f 容器id

在确保ES安装没问题的前提下

再访问http://localhost:5601/,如果kibana安装没问题会显示界面。

但kibana这特别容易出问题:

1.首先确认版本是否全部保持一致。

2.其次看查看防火墙相关问题。学习就直接关最好,排除一个明显又很容易被人遗忘的大坑。

3.这两个软件启动都不快,适时地的耐心等待,因为本人就是因为没有耐心等待而被误导。(启动时长真的感人)

4.至于网上让进容器内修改kibana配置文件,路径/usr/share/kibana/config/kibana.yml根本是乱弹琴。实测,跟这个没有关系,希望不要被误导

 

5.docker-compose下.yml配置文件

version: '3.8' services:   elasticsearch:     restart: always     image: daocloud.io/library/elasticsearch:6.5.4     container_name: elasticsearch     ports:       - 9200:9200    # environment:    #   - ES_JAVA_OPTS=-Xms512m -Xmx512m   kibana:      image: daocloud.io/library/kibana:6.5.4     restart: always     container_name: kibana     ports:       - 5601:5601     environment:        - elasticsearch.url= http://localhost:9200     depends_on:       - elasticsearch