Windows下搭建ES
Windows下搭建一个测试的ES运行环境很简单,只需去官网https://www.elastic.co/cn/downloads下载电脑系统相应版本的压缩包。然后解压,进入bin目录,通过bat文件启动就好了。
然后就可以通过浏览器访问http://localhost:9200/_cluster/health?pretty,如果你能看到你的集群的状态,就表示启动成功了。
linux环境下搭建ES
一、 安装JDK
首先需要在环境上安装JDK,推荐安装1.8以上。下载jdk的tar包,上传到环境。
- 解压:
tar -zxvf jdk-8u144-linux-x64.tar.gz -C 安装目录
- 配置环境变量 :
vi /etc/profile
*注意 如果你root用户不要在~/.bash_profile里配置,因为ES不允许用root用户启动,需要新建个用户来启动。 - 修改jdk的权限:
chmod 777 -r jdk
解压目录 保证所有用户都能访问到此JDK,踩过的坑之一,启动一直报找不到JAVA_HOME,但环境变量都配对了。
二、 安装ES
下载ES-5.6.8的tar包,上传
- 解压:
tar -zxvf elasticsearch-5.6.8.tar.gz -C 安装目录
- 新建用户
groupadd elsearch
#新建组
useradd elsearch -g elsearch
#新建用户
chown -R elsearch:elsearch 安装目录
#ES文件的操作权限修改 - 修改配置文件
测试环境简单修改下
network.host:机子ip,其他默认就行 - 启动
切换到elsearch用户,进入ES的bin目录下,使用./elasticsearch启动,加上-d 为后台启动
三、 启动ES时会出现一些错误
在第一次启动时报出了四个错误
ERROR: [4] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2]: max number of threads [1024] for user [elasticsearch] is too low,increase to at least [2048]
[3]: max virtual memory areasvm.max_map_count [65530] is too low, increase to at least [262144]
[4]: system call filters failed to install; check the logs and fixyour configuration or disable system call filters at your own risk
1.弹性搜索过程的最大文件描述符[4096]太低
2用户[elsearch]的最大线程数[1024]太低,增加到至少[2048]
3.最大虚拟内存区域vm.max_map_count [65530]太低,增加到至少[262144]
4.系统调用筛选器未能安装;请检查日志并修复配置或禁用系统调用筛选器,风险自负
根据网上找的方法一个个解决
第一个问题可以通过修改vi /etc/security/limits.conf
文件,在后面追加
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
第二个问题
vi /etc/security/limits.d/90-nproc.conf
把* soft nproc 1024修改成* soft nproc 2048
第三个问题
使用root用户vi /etc/sysctl.conf
添加下面配置然后执行 sysctl -p
vm.max_map_count=655360
第四个问题
这个问题网上说是因为ES启动时默认会启动一个检测,而当前系统上不能通过这个检测,直接导致启动失败
解决方法为修改ES的配置文件,使其不检测,在Memory添加这两条配置
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
修改完后重新启动ES,然后可以在命令行输入curl Get http://localhost:9200/_cluster/health?pretty
或者浏览器端输入http://localhost:9200/_cluster/health?pretty
,
看到上面这些信息表示集群启动成功。集群状态分为red,yellow,green。一般新建的集群即使是单节点的也会是green。
安装head插件
首先我们要知道head插件是用来干嘛,环境是给我们进行操作(增删查改)用的,平时我们总不能每次都使用rest请求吧,这样也太麻烦了。而Head插件可以实现基本信息的查看,rest请求的模拟,数据的检索等等。
上图就是安装好后在浏览器里打开的样子,因为我是单节点的集群,而默认索引是需要有一个数据备份的,导致我的集群状态为yellow,来看下不同集群状态的含义。
- red表示不是所有的主分片都可用,通常时由于某个索引的主分片为unassigned,只要找出这个索引的分片,手工分配即可
- yellow表示所有主分片可用,但不是所有副本分片都可用
- green最健康的状态表示所有主分片和备份分片都可用
安装步骤
说明:5.6版本不能再用/bin/plugin -install mobz/elasticsearch-head安装了,需要自己动手配置
- 下载head
下载地址head插件
下载然后上传解压即可。 注意 不要解药到elasticsearch的plupin、modules 目录下会导致ES启动报错 安装nodejs
因为head插件本质上还是一个nodejs的工程,因此需要安装node
yum安装:yum install -y nodejs
源码安装:
下载源码:http://nodejs.org/dist/v0.10.26/node-v0.10.26.tar.gz
解压:tar -zvxf node-v0.10.26.tar.gz
编译及安装:make && make install
验证是否安装配置成功:node -v
安装grunt
因为head插件需要使用grunt启动,所以需要安装grunt,grunt是一个很方便的构建工具,可以进行打包压缩、测试、执行等等的工作
进入head的解压目录
安装gruntnpm install -g grunt-cli
会生成一个node_modules文件夹
然后修改vi Gruntfile.js
文件:增加hostname属性,设置为*
修改vi _site/app.js
文件:修改head的连接地址:把localhsot改成本地地址
启动以及错误解决
配置完成后使用grunt server &
后台启动
问题出现了,第一次访问浏览器上是这样的
需要修改elasticsearch的配置文件,增加下面两个配置,然后重启elasticsearch和head,在查看就是我前面的页面了
http.cors.enabled: true
http.cors.allow-origin: "*"