##############es集群################html
1 ES基础能够参考java
https://blog.csdn.net/yezonggang/article/details/80064394node
https://blog.csdn.net/column/details/deep-elasticsearch.htmllinux
2 关闭防火墙github
systemctl stop firewalldweb
systemctl disable firewalldsql
setenforce 0npm
sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/configbootstrap
3 设置yum源
这里添加阿里源
cd /etc/yum.repos.d/
wget https://mirrors.aliyun.com/repo/Centos-7.repo
wget https://mirrors.aliyun.com/repo/epel-7.repo
4 修改系统参数
vi /etc/security/limits.conf
* soft nofile 65535
* hard nofile 655350
* soft nproc 65535
* hard nproc 655350
* soft memlock unlimited
* hard memlock unlimited
上面的* 也能够换成指定用户
5 设置es用户内存权限大小
sysctl -w vm.max_map_count=262144
echo 'vm.max_map_count=262144' >> /etc/sysctl.conf
sysctl -p /etc/sysctl.conf
##echo 'vm.swappiness=0'>> /etc/sysctl.conf 禁用减小用swap
注:为何要尽量避免使用swap? # cat /proc/sys/vm/swappiness,值默认值是60, swappiness=0的时候表示最大限度使用物理内存,而后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,而且把内存上的数据及时的搬运到swap空间里面。如今服务器的内存动不动就是上百G,或者云主机架构,机器io太慢会极大的影响机器性能,因此咱们能够把这个参数值设置的低一些,让操做系统尽量的使用物理内存,下降系统对swap的使用,从而提升系统的性能。另:在大内存服务器中咱们须要设置这个值为0,尤为是在Mysql服务器上
——————————————上面的环境配置三节点都要操做————————————————-
6 配置java环境 (三个节点都操做)
使用yum安装
yum install java-1.8.0-openjdk*
openjdk version "1.8.0_181"
也能够用tar包安装
下载1.8版本
tar zxf jdk-8u181-linux-x64.tar.gz -C /usr/local/jdk/
添加环境变量
vim /etc/profile
#JAVA Environment
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_181
export JRE_HOME=/usr/local/jdk/jdk1.8.0_181/jre
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JRE_HOME/lib
7 安装elasticsearch (三个节点都操做)
建立安装目录
mkdir -p /opt/els
cd /opt/els/
下载elasticsearch-5.6.4.tar.gz到els目录
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.4.tar.gz
tar zxf elasticsearch-5.6.4.tar.gz
cd elasticsearch-5.6.4/
ls
bin config data es.log lib logs modules plugins script
8 修改配置 (三个节点都操做)
建立数据和日志目录
mkdir -p /opt/els/esdata
mkdir -p /opt/els/eslog
修改es配置文件elasticsearch.yml
cd /opt/els/elasticsearch-5.6.4/config/
备份原文件
cp elasticsearch.yml elasticsearch.yml.bak
vim elasticsearch.yml (三个节点配置中只有node.name的配置不一样,其余配置保持一致)
-----------------------------------------------------------------------------------
cluster.name: es-test
node.name: es135
path.data: /opt/els/esdata
path.logs: /opt/els/eslog
bootstrap.memory_lock: true
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: [“192.168.1.135”,”192.168.1.134”,”192.168.1.133”]
discovery.zen.minimum_master_nodes: 3
#gateway.recover_after_nodes: 3
#action.destructive_requires_name: true
http.cors.enabled: true
http.cors.allow-origin: "*"
-----------------------------------------------------------------------------------
解释说明:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false访问方面配置
cluster.name 集群名字,同一个集群中使用相同名字,单机就随意
node.name: es135 节点名字
node.master: 是否为集群的master机器
node.data: true 是否做为数据节点
network.host: 192.168.0.135 这个不用天然是配置ip地址的
http.port: 9200 端口号,不配置的话默认9200
discovery.zen.ping.unicast.hosts: [“192.168.1.135”,”192.168.1.134”,”192.168.1.133”] 这个就是配置集群的时候要用的到了,[]中填上集群中其余集群的ip的地址,若是是master的话请把全部salve的机器地址填上
discovery.zen.minimum_master_nodes: 3 机器节点数
http.cors.enabled: true 这个参数的设置和下面一个配置是关于ip的访问策略,若是发现其余ip地址访问不了就有多是这参数没有配置
http.cors.allow-origin: “*”
下面修改jvm.options配置,能够调整大一些,好比4g
vim jvm.options
-Xms2g ##配置ES服务最小JVM
-Xmx2g ##配置ES服务最大JVM
9 启动elasticsearch (三个节点都操做)
ES只能用普通用户启动
建立els用户
useradd els
chown -R els.els /opt/
su – els
cd /opt/els/elasticsearch-5.6.4/
./bin/elasticsearch -d
netstat -lnupt|grep java
tcp6 0 0 :::9200 :::* LISTEN 5404/java
tcp6 0 0 :::9300 :::* LISTEN 5404/java
10 浏览器访问192.168.1.135:9200 出现以下正常反馈信息
{
"name" : "es135",
"cluster_name" : "es-test",
"cluster_uuid" : "0JExw5NuSjCspci1aTQL-w",
"version" : {
"number" : "5.6.4",
"build_hash" : "8bbedf5",
"build_date" : "2017-10-31T18:55:38.105Z",
"build_snapshot" : false,
"lucene_version" : "6.6.1"
},
"tagline" : "You Know, for Search"
}
11 安装elasticsearch_head (web界面) (选择一个机器操做)
若是机器不能连网,能够在其余机器上把安装编译好的elasticsearch-head-master包拷贝过来代替,安装上node环境就能够启动head了。
cd /opt/els/
wget https://github.com/mobz/elasticsearch-head/archive/master.zip
unzip master.zip
yum install –y nodejs
node -v
v6.14.3
npm -v
3.10.10
cd /opt/els/elasticsearch-head-master
yum install -y bzip2 安装bzip2
npm install 须要安装等待一下子
vim Gruntfile.js #增长监听地址host,部分版本能够选择不增长host配置一样能够启动。
connect: {
server: {
options: {
host: '192.168.1.135',
port: 9100,
base: '.',
keepalive: true
}
}
}
chown els.els -R /opt/
cd /opt/els/elasticsearch-head-master
sudo -u els ./node_modules/.bin/grunt server &
而后重启ES
kill掉进程
cd /opt/els/elasticsearch-5.6.4/bin
# sudo -u els ./elasticsearch –d
12 启动head服务,重启ES
而后浏览器打开192.168.1.135:9100
修改localhost 为192.168.1.135 而后点链接就能够查看到三节点的集群了