Centos7安装ElasticSearch(一些踩坑的地方)

centos7如何安装es

下载

从https://www.elastic.co/cn/products/elasticsearch官网下载es,下载最新版本即可,然后用xftp或者其他方法将压缩包上传到服务器上

安装和配置

创建新用户,因为es为了保证安全性无法在root权限下运行

useradd elstic
#设置密码
passwd 123456
#切换用户
su elstic

我们将压缩包上传到/home/elstic下

解压缩,为了方便我们将目录重命名一下

tar -zxvf elasticsearch-7.10.0.tar.gz
#重命名目录
mv elasticsearch-7.10.0/ elasticsearch

此时目录下的文件如下

image-20201114163928483

修改配置

jvm.options

启动的时候默认堆空间设置的是1g,有点大了,我们设置为512m

image-20201114164134140

修改elasticsearch.yml 文件

image-20201114164239353

里面的data文件夹和log文件夹没有的话,去相应的目录里面创建就好

运行和错误解决

image-20201114155600128

出现上述问题的原因是没有给elstic用户赋予相应的权限

解决方法,切换到root,给elasticsearch目录赋予你创建的新用户的权限

chown -R xxx elasticsearch-7.10.0

image-20201114161834355

第一个问题,切换到root用户,修改内核参数即可

vim /etc/sysctl.conf 
vm.max_map_count=655360
sysctl -p

完成上述操作之后,重启一下xshell窗口

第二个问题

修改一下elasticsearch.yml配置文件中的有关集群节点启动的配置,使用单节点启动,如下

image-20201114163410733

修改之后,启动成功,访问 http://yourip:9200/

image-20201114164421188

Elasticsearch-head查看数据

由于ES官方没有给ES提供可视化管理工具,仅仅是提供了后台的服务,elasticsearch-head是一个为ES开发的一个页面客户端工具,其源码托管于Github,地址为 传送门

head提供了以下安装方式

  • 源码安装,通过npm run start启动(不推荐)
  • 通过docker安装(推荐)
  • 通过chrome插件安装(推荐)
  • 通过ES的plugin方式安装(不推荐)

通过Docker方式安装

#拉取镜像
docker pull mobz/elasticsearch-head:5
#创建容器
docker create --name elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:5
#启动容器
docker start elasticsearch-head

通过浏览器进行访问:

image-20200922151529269

注意: 由于前后端分离开发,所以会存在跨域问题,需要在服务端做CORS的配置,如下:

vim elasticsearch.yml

http.cors.enabled: true http.cors.allow-origin: "*"

通过chrome插件的方式安装不存在该问题

通过Chrome插件安装

打开chrome的应用商店,即可安装 https://chrome.google.com/webstore/detail/elasticsearch-head/ffmkiejjmecolpfloofpjologoblkegm

问题1

发现elasticsearch-head中查看数据时,是一片空白,用F12查看,发现响应出现406错误,需要修改一下容器内部的js文件

解决方法

1.进入 es-head 安装目录;
2.cd _site/
3.编辑 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" &&

因为我是win10的docker,没有vi和vim,就直接将文件cp出来,修改完再cp回去

docker cp elasticsearch-head:/usr/src/app/_site/vendor.js d:/
docker cp d:/vendor.js elasticsearch-head:/usr/src/app/_site
posted @ 2020-11-14 19:53  kxhzzz  阅读(446)  评论(0)    收藏  举报