1. 程式人生 > 其它 >es叢集搭建(6.8.2版本)

es叢集搭建(6.8.2版本)

es搭建

#!/bin/bash
echo "請確保檔案"elasticsearch-6.8.2.tar.gz,TencentKona8.0.6.b2-internal_jdk_linux-x86_64_8u292.tar.gz"已上傳到/root目錄"
echo "自動化安裝elasticsearch-6.4.3三臺伺服器叢集:"
if [ -f /root/TencentKona8.0.6.b2-internal_jdk_linux-x86_64_8u292.tar.gz ];then
tar -xf /root/TencentKona8.0.6.b2-internal_jdk_linux-x86_64_8u292.tar
.gz -C /usr/local cd /usr/local ln -s TencentKona-8.0.6-292 jdk cat >> /etc/profile << 'EOF' export JAVA_HOME=/usr/local/jdk export JAVA_BIN=/usr/local/jdk/bin export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar EOF source /etc/profile java -version echo "###完成jdk1.8安裝(注意:如果發現java -version未正確返回,請重新開啟ssh會話或者手動執行下:source /etc/profile)###
" else echo "請把相應的包上傳到/root目錄,再進行下一步!" exit 0 fi read -p "請根據實際資料掛載盤輸入es安裝的主目錄(建議/data):" maindir echo "---3臺機均需執行該指令碼,下面進行es叢集建立---" cat >>/etc/sysctl.conf<<EOF vm.swappiness = 0 vm.max_map_count = 655360 EOF sysctl -p cat >>/etc/security/limits.conf<<EOF es soft nofile 65535
es hard nofile 65535 es soft nproc 4096 es hard nproc 4096 es memlock unlimited EOF if [ -f /root/elasticsearch-6.8.2.tar.gz ];then mkdir $maindir tar -xf /root/elasticsearch-6.8.2.tar.gz -C $maindir cd $maindir mv elasticsearch-6.8.2 es ip a read -p "請輸入當前伺服器ip地址:" ip read -p "請輸入es叢集第1臺伺服器的ip:" ip1 read -p "請輸入es叢集第2臺伺服器的ip:" ip2 read -p "請輸入es叢集第3臺伺服器的ip:" ip3 read -p "請輸入當前節點名稱(譬如:node-x):" node cat >>$maindir/es/config/elasticsearch.yml <<EOF cluster.name: es-cluster node.name: $node node.master: true node.data: true path.data: $maindir/es/data path.logs: $maindir/es/logs network.host: $ip http.port: 9200 transport.tcp.port: 9300 discovery.zen.ping.unicast.hosts: ["$ip1:9300","$ip2:9300","$ip3:9300"] discovery.zen.minimum_master_nodes: 1 xpack.security.enabled: true xpack.security.authc.accept_default_password: true xpack.security.transport.ssl.enabled: true EOF mkdir -p $maindir/es/config/certs cd $maindir/es/config free -h |grep Mem|awk '{print $2}' #sed -i "s/-Xms1g/-Xms${mem}/g" jvm.options (mem設定為本機記憶體的一半) #sed -i "s/-Xmx1g/-Xmx${mem}/g" jvm.options sed -i "/appender.rolling.strategy.action.condition.glob =/a\appender.rolling.strategy.action.condition.nested_condition.type = IfLastModified" log4j2.properties sed -i "/appender.rolling.strategy.action.condition.nested_condition.type = IfLastModified/a\appender.rolling.strategy.action.condition.nested_condition.age = 60D" log4j2.properties sed -i "s/appender.rolling.strategy.action.condition.nested_condition.exceeds = 2GB/#appender.rolling.strategy.action.condition.nested_condition.exceeds = 2GB/g" log4j2.properties sed -i "s/appender.rolling.strategy.action.condition.nested_condition.type = IfAccumulatedFileSize/#appender.rolling.strategy.action.condition.nested_condition.type = IfAccumulatedFileSize/g" log4j2.properties adduser es chown -R es /home/es chown -R es $maindir/es cat >>/etc/profile <<EOF PATH=\$PATH:$maindir/es/bin export PATH EOF source /etc/profile su - es <<EOF $maindir/es/bin/elasticsearch -d; exit; EOF sleep 2 else echo "請把相應的包上傳到/root目錄,再進行下一步!" exit 0 fi echo "啟動es操作:su es $maindir/es/bin/elasticsearch -d 在Elasticsearch目錄中執行命令:./bin/elasticsearch-setup-passwords interactive,切記切換到es使用者執行,回車之後為每一個使用者設定獨立的密碼。記住ES例項必須啟動。 你需要在後續步驟中使用這些內建使用者,因此務必牢記前面設定的密碼!elastic, kibana, logstash_system,beats_system 想要建立以安全的ES叢集,請往下看: 開啟ES叢集的安全認證之路 (這裡說明一下,ES叢集之間的節點是通過憑證來通訊的,所以才有生成憑證這一步驟) 1. 生成證書: ./bin/elasticsearch-certutil ca 中間會讓輸入路徑跟密碼,路徑可以不輸,直接回車,但是密碼還要設定一下的,為了安全嘛,我們就假定密碼就是:123456 完成後會生成一個檔案:elastic-stack-ca.p12 2.生成祕鑰 bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12 中間需要輸入剛才設定的密碼就直接輸入就可以了,需要輸入路徑的地方就直接回車,別輸了,然後會生成一個檔案:elastic-certificates.p12 這個就是ES的各個節點之間通訊的憑證了。 這裡說明一下,一個ES叢集生成一個憑證就可以了,其他節點不需要生成憑證。 3.將憑證遷移到指定目錄,併發送到其他節點 mv /bin/elastic-certificates.p12 /data/es/config/certs/ cat >> /data/es/config/elasticsearch.yml <<EOF xpack.security.transport.ssl.verification_mode: certificate xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12 xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12 EOF ./elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password 輸入生成證書的密碼 ./elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password 輸入生成證書的密碼 各節點重啟es" echo "在所有節點都完成部署之後,輸入以下命令檢視叢集狀態 curl http://$ip:9200/_cat/nodes?v -uelastic"