Elasticsearch服务器搭建

欢迎查看Eetal的第六篇博客–Centos7搭建Elasticsearch服务器

部署环境

centos7 64位
elasticsearch 6.3.0
之前一开始用的32位,后来报错
elasticsearch6.3版本依赖的X-pack插件不支持32位
所以用的64位linux

安装JDK

elasticsearch和solr都是基于lucene开发的搜索引擎
lucene是用java开发的
所以java环境是必须的
而且elasticsearch6.3.0版本依赖的java版本应该是1.8+的
下载对应linux版本的jdk
http://www.oracle.com/technetwork/java/javase/downloads/index.html
window发送文件到linux可以使用xshell,securityCRT等SSH连接工具
解压文件,-C指定解压目录

1
$ tar zxf jdk-xxx.tar.gz -C /usr

配置java环境变量

1
$ vi /etc/profile

在末尾添加

1
2
3
4
5
6
JAVA_HOME=/usr/jdk1.8.0_171
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH

生效环境配置

1
$ source /etc/profile

输入

1
$ java

可以看到相关命令提示就是安装成功了

安装elasticsearch

下载elasticsearch
https://www.elastic.co/downloads/elasticsearch
解压文件

1
$ tar zxf elasticsearch-xxx.tar.gz -C /usr

运行elasticsearch

这一步坑比较多
进入解压后的文件夹的bin目录
运行elasticsearch

1
$ ./elasticsearch

咔~报错一大堆
首先,出于安全考虑,elasticsearch设置了不能以root用户运行
ok,创建一个新用户elasticsearch并配置密码

1
2
$ useradd elasticsearch
$ passwd elasticsearch

并指定这个用户加入一个es用户角色群组

1
2
$ groupadd es
$ usermod -a -G es elasticsearch

切换到新创建的elasticsearch用户

1
$ su elasticsearch

在运行一遍~

1
$ ./elasticsearch

咔~报错更多了
提示access denied
权限不够(~~)
没办法,很大一部分文件权限都是root才有
所以我们应该给es群组授权
切换到root

1
$ su root

指定解压的elasticsearch的文件夹的拥有者及群组

1
$ chown -R elasticsearch:es elasticsearch-6.3.0/

切回elasticsearch用户并运行

1
2
$ su elasticsearch
$ ./elasticsearch

咔~
这一步因系统而异了,因为涉及到linux的一些默认配置
比如单个文件最大大小
最多线程数量这些
如果报错

1
2
3
4
5
bootstrap checks failed

max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
max number of threads [1024] for user [elasticsearch] likely too low, increase to at least [4096]
max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]

切换到root用户
修改linux默认配置

1
2
$ su root
$ vi /etc/security/limits.conf

在末尾添加

1
2
3
4
5
6
7
@es soft nofile 65536

@es hard nofile 131072

@es soft nproc 4096

@es hard nproc 4096

第一个参数可以是用户名也可以是一个 @群组名
分别代表对一个用户授权或者对一个群组授权
接下来

1
$ vi /etc/sysctl.conf

在末尾添加

1
vm.max_map_count=655360

生效配置

1
$ sysctl -p

至此,elasticsearch可以正常运行

测试elasticsearch服务

运行elasticsearch服务后,我们打开浏览器
访问http://es服务器ip:9200
还是访问不了
1.linux防火墙
先开启linux防火墙
ctrl+c取消运行elasticsearch服务后

1
2
3
$ su root
$ firewall-cmd --zone=public --add-port=9200/tcp --permanent
$ firewall-cmd --reload

–permanent参数代表永久开放,没有该参数则重启机器后端口不开放
此时运行elasticsearch
还是访问不了
2.修改elasticsearch.yml中的配置
出于安全起见
elasticsearch默认只允许本机localhost访问
修改elasticsearch的配置文件,允许别的ip访问

1
$ vi config/elasticsearch.yml

在末尾增加

1
network.host: 0.0.0.0

0.0.0.0代表所有ip都可以访问
文件中还可以设置自定义日志、数据目录,此处不再啰嗦
至此,重启elasticsearch

1
$ ./elasticsearch

打开浏览器访问
http://es服务器ip:9200
可以看到返回的elasticsearch相关信息
完成部署

更多精彩内容

请移步

个人主页: yangyitao.top