搭建ES7.10.0集羣

一、規劃
注:實際生產環境中,角色最好分開,單獨的兩個master和兩個client,配置不用很高,不用存儲,kibana也單獨部署

  1. es01
    master data
    192.168.18.11
    2 12G 100G

  2. es02
    master data
    192.168.18.12
    2 12G 100G

  3. es03(kibana)
    client
    192.168.18.13
    2 8G 30G

二、部署(centos7)
注意修改腳本個性化的配置
1、部署jdk,推薦jdk11
1.1、將jdk上傳至/usr/local/目錄下
1.2、使用root用戶複製執行以下腳本
--自動部署腳本--

#!/bin/bash
#要安裝的jdk路徑
jdkpath=/usr/local/java/
#jdk壓縮包所在的路徑
jdkfile=/usr/local/
#jdk壓縮包的名字
jdkname=openjdk-11.0.2_linux-x64_bin.tar.gz

mkdir $jdkpath
cp $jdkfile/$jdkname $jdkpath
cd $jdkpath
tar -xzvf $jdkname
rm $jdkname
echo `ls`
dirname=`ls`
echo "#java" >> /etc/bashrc
echo "export JAVA_HOME=$jdkpath/$dirname" >>   /etc/bashrc
echo "export PATH=\$PATH:\$JAVA_HOME/bin:\$JAVA_HOME/jre/bin" >>  /etc/bashrc
echo "export CLASSPATH=.:\$JAVA_HOME/lib:\$JAVA_HOME/jre/lib" >>  /etc/bashrc

 ln -s /usr/local/java/jdk-11.0.2/bin/java /usr/bin/java

1.3、執行命令

source /etc/bashrc & java -version

2、es01
1.1、上傳安裝包至/usr/local/
下載地址
https://www.elastic.co/cn/downloads/elasticsearch

1.2、部署腳本
--生產環境建議單獨磁盤,單獨建立分區邏輯卷掛載目錄--

#!/bin/bash
#安裝es
echo  "安裝ES"
cd /usr/local/
rpm -ivh elasticsearch-7.10.0-x86_64.rpm

#準備數據目錄
echo "創建es目錄"
mkdir -p /es_data/{data,log}
ls -l / | grep es_data
ls -l /es_data/
echo  "配置目錄所屬"
chown elasticsearch:elasticsearch /es_data/ -R
ls -l / | grep es_data
ls -l /es_data/



#jvm優化
echo  "修改JVM參數"
cp /etc/elasticsearch/jvm.options{,.bak}
#設置堆內存6g=總內存*50%
sed -i "s/^-Xms1g/-Xms6g/" /etc/elasticsearch/jvm.options && sed -i "s/^-Xmx1g/-Xmx6g/" /etc/elasticsearch/jvm.options
echo "JVM"
cat /etc/elasticsearch/jvm.options | grep "^-Xm"
#減少新生代晉升到老年代時停頓,會使得啓動慢上一點,但後面訪問時會更流暢
sed -i "s/^## GC configuration/## GC configuration\n8-13:-XX:+AlwaysPreTouch/" /etc/elasticsearch/jvm.options

#系統優化
echo "關閉swap交換分區"
cp /etc/fstab{,.bak}
sed -i "s/^\/dev\/mapper\/centos-swap/#\/dev\/mapper\/centos-swap/" /etc/fstab
cat /etc/fstab | grep "swap"
echo vm.swappiness=1 >> /etc/sysctl.conf
echo "設置系統最大打開文件描述符數爲655360"
echo "fs.file-max=655360" >> /etc/sysctl.conf
echo "限制一個進程可以用於VM(虛擬內存區域大小)爲262144"
echo "vm.max_map_count=262144" >> /etc/sysctl.conf
echo "--/etc/sysctl.conf--"
cat  /etc/sysctl.conf |grep "^[a-z]"

echo "優化批量請求"
echo '* soft nproc 32000' >> /etc/security/limits.conf
echo '* hard nproc 32000' >> /etc/security/limits.conf
echo '* soft nofile 65536' >> /etc/security/limits.conf
echo '* hard nofile 65536' >> /etc/security/limits.conf
echo '* soft memlock unlimited' >> /etc/security/limits.conf
echo '* hard memlock unlimited' >> /etc/security/limits.conf
echo "--/etc/security/limits.conf--"
cat /etc/security/limits.conf | grep "^\*"

echo "DefaultLimitNOFILE=65536" >>  /etc/systemd/system.conf
echo "DefaultLimitNPROC=32000" >>  /etc/systemd/system.conf
echo "DefaultLimitMEMLOCK=infinity" >>  /etc/systemd/system.conf
cat /etc/systemd/system.conf | grep "^[A-Z]"

#配置es
cp /etc/elasticsearch/elasticsearch.yml{,.bak}
echo "修改elasticsearch.yml"
#基本配置
clusterName="es_cluster"
nodeName="es01"
#是否競選master
master=true
#是否存儲索引數據
data=true
#如果都不做,會變成client節點
#本機ip和端口
localIp=192.168.18.11
localPort=9200
#初始競選master的節點
masters="[\"es01\", \"es02\"]"
#發現其他節點的列表
discovery="[\"192.168.18.11:9300\", \"192.168.18.12:9300\", \"192.168.18.13:9300\"]"

echo "cluster.name: $clusterName" >> /etc/elasticsearch/elasticsearch.yml
echo "node.name: $nodeName" >> /etc/elasticsearch/elasticsearch.yml
sed -i "s/^path.data: \/var\/lib\/elasticsearch/path.data: \/es_data\/data/" /etc/elasticsearch/elasticsearch.yml
sed -i "s/^path.logs: \/var\/log\/elasticsearch/path.logs: \/es_data\/log/" /etc/elasticsearch/elasticsearch.yml
echo "node.master: $master" >> /etc/elasticsearch/elasticsearch.yml
echo "node.data: $data" >> /etc/elasticsearch/elasticsearch.yml
echo "network.host: $localIp" >> /etc/elasticsearch/elasticsearch.yml
echo "http.port: $localPort" >> /etc/elasticsearch/elasticsearch.yml
echo "discovery.seed_hosts: $discovery" >> /etc/elasticsearch/elasticsearch.yml
echo "cluster.initial_master_nodes: $masters" >> /etc/elasticsearch/elasticsearch.yml
#鎖住物理內存,避免使用swap交換分區
echo "bootstrap.memory_lock: true" >> /etc/elasticsearch/elasticsearch.yml
echo "es配置完畢"
cat /etc/elasticsearch/elasticsearch.yml | grep "^[a-z]"

chkconfig --add elasticsearch
chkconfig elasticsearch on

echo "重啓系統"
reboot


1、用rpm安裝es,會自動創建elasticsearch用戶和用戶組
2、最好重啓一下,應用這些參數,重啓後會自動開啓es
3、在瀏覽器輸入http:<ip>:9200即可查看是否安裝成功

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