##############es叢集################
1 ES基礎可以參考
https://blog.csdn.net/yezonggang/article/details/80064394
https://blog.csdn.net/column/details/deep-elasticsearch.html
https://elasticsearch.cn/
2 關閉防火牆
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config
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了。
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/
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 然後點連接配接就可以檢視到三節點的叢集了