docker安装Elasticsearch和Elasticsearch-head
一、Elasticsearch是什么?
Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。。。
二、安装步骤
1.docker安装Elasticsearch
docker pull elasticsearch:7.0.0
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -e "discovery.type=single-node" -d --name elasticsearch -p 9200:9200 -p 9300:9300 容器ID
-e ES_JAVA_OPTS="-Xms256m -Xmx256m" //设置初始堆内存和最大内存 也可以调整虚拟机内存
-e "discovery.type=single-node" //单机需加上,如不加上,可能会报错。
如报错:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决方法:
vim /etc/sysctl.conf文件最后添加一行
vm.max_map_count=262144
即可永久修改
2.docker安装Elasticsearch-head
docker pull mobz/elasticsearch-head:5
docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head:5
如遇到head连接es跨域问题,则在容器内conf/elasticsearch.yml下加上
http.cors.enabled: true
http.cors.allow-origin: "*"
ElasticSearch-head 操作时不修改配置,默认会报 406错误码。
解决方法:
修改容器内/usr/src/app/_site/vendor.js
① 6886行 contentType: "application/x-www-form-urlencoded
改成
contentType: “application/json;charset=UTF-8”
②. 7574行 var inspectData = s.contentType === “application/x-www-form-urlencoded” &&
改成
var inspectData = s.contentType === “application/json;charset=UTF-8” &&
总结
在浏览器中输入es-head容器IP:9100,可以看到如下页面:
在es-head地址框中输入es(或者es集群)访问地址,即可监控es(或者es集群)的监控状态,并可以方便地操作es的索引数据。