全网最简单快速搭建ES集群

Elasticsearch集群部署

系统类型:Centos7.6

节点IP:172.16.244.25、172.16.244.26、172.16.244.27

软件版本:jdk-8u121-linux-x64.tar.gz、elasticsearch-6.5.4.tar.gz

示例节点:172.16.244.25 ABC

1、安装配置jdk8

ES运行依赖jdk8

tar zxvf /usr/local/package/jdk-8u121-linux-x64.tar.gz -C /usr/local/
echo '
JAVA_HOME=/usr/local/jdk1.8.0_121
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH
' >>/etc/profile
source /etc/profile
2、安装配置ES

(1)创建运行ES的普通用户

useradd elsearch       (useradd ela)
echo "******" | passwd --stdin "elsearch"
(2)安装配置ES
tar zxvf /usr/local/package/elasticsearch-6.5.4.tar.gz -C /usr/local/ 
echo '
cluster.name: bjbpe01-elk
node.name: elk01
node.master: true
node.data: true
path.data: /data/elasticsearch/data
path.logs: /data/elasticsearch/logs
bootstrap.memory_lock: true
bootstrap.system_call_filter: false
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["172.16.244.26", "172.16.244.27"]
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping_timeout: 150s
discovery.zen.fd.ping_retries: 10
client.transport.ping_timeout: 60s
http.cors.enabled: true
http.cors.allow-origin: "*"
' >>/usr/local/elasticsearch-6.5.4/config/elasticsearch.yml
配置项含义:
cluster.name        集群名称,各节点配成相同的集群名称。
node.name       节点名称,各节点配置不同。
node.master     指示某个节点是否符合成为主节点的条件。
node.data       指示节点是否为数据节点。数据节点包含并管理索引的一部分。
path.data       数据存储目录。
path.logs       日志存储目录。
bootstrap.memory_lock       内存锁定,是否禁用交换。
bootstrap.system_call_filter    系统调用过滤器。
network.host    绑定节点IP。
http.port       rest api端口。
discovery.zen.ping.unicast.hosts    提供其他 Elasticsearch 服务节点的单点广播发现功能。
discovery.zen.minimum_master_nodes  集群中可工作的具有Master节点资格的最小数量,官方的推荐值是(N/2)+1,其中N是具有master资格的节点的数量。
discovery.zen.ping_timeout      节点在发现过程中的等待时间。
discovery.zen.fd.ping_retries        节点发现重试次数。
http.cors.enabled               是否允许跨源 REST 请求,用于允许head插件访问ES。
http.cors.allow-origin              允许的源地址。

(3)设置JVM堆大小

sed -i 's/-Xms1g/-Xms2g/' /usr/local/elasticsearch-6.5.4/config/jvm.options
sed -i 's/-Xmx1g/-Xmx2g/' /usr/local/elasticsearch-6.5.4/config/jvm.options

注意:

确保堆内存最小值(Xms)与最大值(Xmx)的大小相同,防止程序在运行时改变堆内存大小。如果系统内存足够大,将堆内存最大和最小值设置为31G,因为有一个32G性能瓶颈问题。堆内存大小不要超过系统内存的50%

(4)创建ES数据及日志存储目录
mkdir -p /data/elasticsearch/data     
mkdir -p /data/elasticsearch/logs     
(5)修改安装目录及存储目录权限
chown -R elsearch:elsearch /data/elasticsearch
chown -R elsearch:elsearch /usr/local/elasticsearch-6.5.4

3、系统优化

(1)增加最大文件打开数
永久生效方法:
echo”* - nofile 65536” >> /etc/security/limits.conf
(2)增加最大进程数
echo “* soft nproc 31717” >> /etc/security/limits.conf
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
更多的参数调整可以直接用这个

启动如果报下列错误

memory locking requested for elasticsearch process but memory is not locked
elasticsearch.yml文件
bootstrap.memory_lock : false
/etc/sysctl.conf文件
vm.swappiness=0

错误:
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

意思是elasticsearch用户拥有的客串建文件描述的权限太低,知道需要65536个

解决:

切换到root用户下面,

vim   /etc/security/limits.conf

在最后添加
* hard nofile 65536
* hard nofile 65536
重新启动elasticsearch,还是无效?
必须重新登录启动elasticsearch的账户才可以,例如我的账户名是elasticsearch,退出重新登录。
另外*也可以换为启动elasticsearch的账户也可以,* 代表所有,其实比较不合适

启动还会遇到另外一个问题,就是
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
意思是:elasticsearch用户拥有的内存权限太小了,至少需要262114。这个比较简单,也不需要重启,直接执行
sysctl -w vm.max_map_count=262144
就可以了

4、启动ES

su - elsearch -c "cd /usr/local/elasticsearch-6.5.4 && nohup bin/elasticsearch &"

测试:浏览器访问http://172.16.244.25:9200
在这里插入图片描述

5.安装配置head监控插件

(1)安装node

wget https://npm.taobao.org/mirrors/node/latest-v4.x/node-v4.4.7-linux-x64.tar.gz
tar -zxf node-v4.4.7-linux-x64.tar.gz –C /usr/local
echo ‘
NODE_HOME=/usr/local/node-v4.4.7-linux-x64
PATH=$NODE_HOME/bin:$PATH
export NODE_HOME PATH
‘ >>/etc/profile
source /etc/profile
node --version   #检查node版本号

(2)下载head插件

wget https://github.com/mobz/elasticsearch-head/archive/master.zip
unzip –d /usr/local elasticsearch-head-master.zip

(3)安装grunt

cd /usr/local/elasticsearch-head-master
yum -y install npm
npm install -g grunt-cli
grunt –-version  #检查grunt版本号

(4)修改head源码
vi /usr/local/elasticsearch-head-master/Gruntfile.js (95左右)
在这里插入图片描述
添加hostname,注意在上一行末尾添加逗号,hostname 不需要添加逗号
vi /usr/local/elasticsearch-head-master/_site/app.js (4360左右)
在这里插入图片描述
原本是http://localhost:9200 ,如果head和ES不在同一个节点,注意修改成ES的IP地址
(5)下载head必要的文件

wget https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-linux-x86_64.tar.bz2
yum -y install bzip2
tar -jxf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /tmp/

(6)运行head

方法一:yum -y install fontconfig 
cd /tmp/phantomjs-2.1.1-linux-x86_64/bin
mv phantomjs /usr/bin/
方法二:cd /usr/local/elasticsearch-head-master/
npm install
nohup grunt server &

(7)测试
访问http://172.16.244.25:9100
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章