ES部署

Elasticsearch集群部署

初始基础环境

cos7系统关闭防火墙:

systemctl stop firewalld

systemctl disable firewalld

禁用SElinux

setenforce 0

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

系统参数调整

/etc/security/limits.conf配置文件中追加以下两行

*       soft    nofile  65536

*       hard    nofile  65536

在/etc/sysctl.conf配置文件中追加以下两行

vm.swappiness=1

vm.max_map_count=262144

使用命令sysctl -p加载配置

配置/etc/hosts文件,将项目所有主机的IP地址与hostname信息添加进去,如:

92.168.0.1 serve001

192.168.0.2 server002

使用命令配置主机名,如:

hostnamectl set-hostname serve001

时间同步

systemctl stop chronyd

systemctl disable chronyd

关闭时间服务,然后重新安装配置 ntpd

或者使用同步时间命令定时同步其他主机时间,或者手动调整时间

安装JDK

rpm -qa|grep openjdk

rpm -e --nodeps java-1.8.0-openjdk-* java-1.8.0-openjdk-headless-*

rpm -ivh jdk-8u162-linux-x64.rpm

基础环境完成,开始部署ES

unzip elasticsearch-5.6.4.zip -d /server/ES

groupadd elsearch

useradd elsearch -g elsearch

chown -R elsearch:elsearch /server/elasticsearch-5.6.4

mkdir -p /data/fes/data1

chown -R elsearch:elsearch /iflytek/data/fk-es/data1

修改ES配置文件/server/elasticsearch-5.6.4/config/elasticsearch.yml,注意:

1、集群内所有节点cluster.name需要相同,且必须为fk-es;

2、集群内所有节点node.name不能相同,可以使用变量获取主机名作为nodename;

3、ES实例角色为master时,配置node.master为true,ES实例角色为data时,配置node.data为true,既是master又是data角色时,两者都配置为true;

4、path.data配置ES的本地存储路径,需要根据实际规划的ES数据盘来配置,当存在多个数据盘时,每个数据盘配置一行,在单台服务器启动多个ES实例时,不同实例分别配置各自的存储路径;

5、http.port和transport.tcp.port两个参数,在单台服务器只启动一个ES实例的时候,可以使用默认的9200和9300端口,当单台服务器上启动多个ES实例时,各实例不能相同,如:第二个实例可以使用9201和9301端口;

6、单台服务器启动多个实例的情况下,拷贝一个ES部署包,根据实际情况修改elasticsearch.yml中的配置项,如:node.name、path.data、http.port和transport.tcp.port等;

7、将集群内所有节点信息配置到discovery.zen.ping.unicast.hosts参数中;

8、各配置项的key和value之间需要有一个空格字符。

cluster.name: ces

cluster.routing.allocation.same_shard.host: true

node.name: ${HOSTNAME}   --单机配置名称时需要不同

node.master: true

node.data: true

path.data: /serve/data/fk-es/data1

network.host: 0.0.0.0

http.port: 9200  --单机配置时需要不同尾数如9201

transport.tcp.port: 9300   --单机配置时需要不同尾数如9301

discovery.zen.ping.unicast.hosts: ["IP1:9300","IP2:9300","IP3:9300"]  --单机配置时同一个服务名,不同端口如IP1:9300","IP1:9301

discovery.zen.minimum_master_nodes: 2

http.cors.enabled: true

http.cors.allow-origin: "*"

http.cors.allow-credentials: true

根据实际情况,编辑以下文件,调整jvm内存(机器内存充足情况下,可配置30G内存):

/server/elasticsearch-5.6.4/config/jvm.options


检查/修改执行权限:

chmod +x /server/elasticsearch-5.6.4/bin/*

使用elsearch用户启动ES:

su - elsearch

/server/elasticsearch-5.6.4/bin/elasticsearch -d

elasticsearch-head部署

安装head插件——————两种方法,第一张https://www.cnblogs.com/hts-technology/p/8477258.html本地安装插件直接使用

第二种如下

   1.  下载head插件,将下载好的插件配置上传到linux中,注意不要放在es目录下,与es目录同级即可。解压

unzip elasticsearch-head-master

    2.  head 插件是node.js实现的,因此需要安装nodejs

curl -sL https://rpm.nodesource.com/setup_8.x | bash -

yum install -y nodejs

    安装完成,验证是否安装成功:

[elastic@localhost es]$ node -v

v8.11.1

[elastic@localhost es]$ npm -v

5.6.0

    3.  进入elasticsearch-head-master目录,安装grunt

npm install grunt --save-dev

npm install   

    4. 修改配置文件,cd 进入elasticsearch-head-master 文件夹下,执行命令vim Gruntfile.js文件:增加hostname属性,设置为*;如图:


    5. 修改head插件的连接地址,vim _site/app.js 文件:修改head的连接地址:,如图所示:在js文件的最下面,我是找了蛮久,ip地址改为你的es所在服务器的ip


6. 修改配置,elasticsearch.yml,添加

http.cors.enabled: true

http.cors.allow-origin: "*"

    这个配置主要是允许插件访问。

7. 在elasticsearch-head-master 下执行,npm run start 命令,启动。


    这是就可以在浏览器中访问es了,注意端口是9100.成功结果了

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。