成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ElasticSearch自愈之節點丟失恢復

數據庫 其他數據庫
ElasticSearch集群由于業務壓力過大,有時會OOM,導致集群節點crash掉,在無主機資源增加時,該腳本解決了在收到告警而手工拉起ES節點的困惑,對業務用戶來說也相對透明,通過該腳本受到一定的啟發,在對于現網環境,可以不斷的對特殊場景進行自愈,以保障運維的穩定性。

點擊上方“IT那活兒”公眾號,關注后了解更多內容,不管IT什么活兒,干就完了!!!

背 景

Elasticsearch是一個開源的、分布式的、高可用的、實時的搜索和分析引擎,它有助于快速收集、存儲和分析大量數據,廣泛應用于大規模數據的實時搜索和分析。

而在現實運維中,隨著業務的擴展,數據量不斷增大,為保障業務性能,ES集群不斷的擴容節點,擴大集群,有的集群多達上百個節點,雖集群內部具有副本冗余機制,但由于PCSERVER的不穩定性(磁盤故障、網絡故障、硬件BUG、內核、內部錯誤等)或集群的性能壓力或程序Bug,可能會導致集群節點丟失。

目前我們運維已經做到7*24短信告警監控,只是在大半夜,有可能無法即時收到短信進行恢復,為能即時恢復集群狀態,進而對節點丟失場景研究,并編寫自動化腳本,定義autocron task自動恢復集群。

下面是我們的一個業務的集群,由于業務壓力,經常性會丟失1~2個節點,并基于該場景做自動恢復。

場景介紹

2.1 腳本設計思路

圖片

  • 集群節點數統計,對節點的數量統計,節點數不同則設置不同的值,根據實際情況設置;
  • 對剩余節點判斷,小于3則對節點直接拉起;
  • 等待5分鐘,可根據實際情況調整,對集群狀態進行判斷。

目前該場景權適用于部分節點丟失的情況,由于考慮主機硬件問題導致的所有節點故障,存在主機PING告警,在主機重啟后,進行判斷后再拉起,在未來可對這一塊進一步調整優化。

2.2 具體腳本

#!/bin/bas
MONITOR_HOME="/app/check_es"
app_home="/app"
hostip="xxxxxxxx"
node="node_xxxxxxx_9200"
node_number1=`curl -u username:xxxxxxxx http://xxxxxxxx:9200/_cat/nodes|grep 'xxxxxxxx'|wc -l`
if [ ${node_number1} -ne 5 ];then
curl -u username:xxxxxxxx http://xxxxxxxx:9200/_cat/nodes?v |grep 'xxxxxxxx'|awk '{print $10}' > $MONITOR_HOME/now.txt
grep -vwf $MONITOR_HOME/now.txt $MONITOR_HOME/last.txt > $MONITOR_HOME/check.txt
if [[ ${node_number1} < 3 ]];then
cd $MONITOR_HOME
./mess.sh -b "`date` $hostip ERROR: 丟失節點數超過3個,請檢查" -t 18974885939,1536793399
else
if [[ ${node_number1} > 2 ]];then
for i in `cat ${MONITOR_HOME}/check.txt`
do
echo "`date` 節點${i}異常,準備重啟" >> ${MONITOR_HOME}/error.log
if [ ${i} = ${node} ];then
pid=`ps -ef |grep ${i} |grep -v grep|grep -v controller|grep -v node_${hostip}_9201|grep -v node_${hostip}_9202|grep -v node_${hostip}_9203|grep -v node_${hostip}_9204|awk '{print $2}'`
else
pid=`ps -ef |grep ${i} |grep -v grep|grep -v controller|awk '{print $2}'`
fi
if [ !${pid} ];then

kill -9 ${pid}
cd ${app_home}/${i}/elasticsearch
./bin/elasticsearch -d
else
cd ${app_home}/${i}/elasticsearch
./bin/elasticsearch -d
fi
done
sleep 300s
node_number2=`curl -u username:xxxxxxxx http://xxxxxxxx:9200/_cat/nodes|grep 'xxxxxxxx'|wc -l`
node_status=`curl -u username:xxxxxxxx http://xxxxxxxx:9200/_cat/health|awk '{print $4}'`
if [ ${node_number2} -ne 5 ];then
echo "節點未恢復,請檢查"
else
if [[ ${node_status} = "red" ]];then
echo "節點已重新加入集群,正在恢復"
else
echo "集群已恢復"
fi
fi
fi
fi
fi

自愈帶來的成效:

ElasticSearch集群由于業務壓力過大,有時會OOM,導致集群節點crash掉,在無主機資源增加時,該腳本解決了在收到告警而手工拉起ES節點的困惑,對業務用戶來說也相對透明,通過該腳本受到一定的啟發,在對于現網環境,可以不斷的對特殊場景進行自愈,以保障運維的穩定性。

責任編輯:武曉燕 來源: IT那活兒
相關推薦

2010-07-20 15:01:39

SQLServer日志

2018-05-04 09:25:47

2010-04-19 15:53:20

Oracle重做日志

2011-03-04 14:59:16

Raidoracle數據庫

2022-12-28 08:16:16

metric聚合java

2018-01-24 09:03:45

恢復丟失刪除

2010-04-12 14:25:04

Oracle備份

2011-05-24 10:26:12

Oracle數據庫日志文件

2011-03-22 16:20:19

恢復數據庫

2017-06-06 15:24:13

springElasticSear架構

2010-04-06 10:11:11

Oracle備份

2024-06-26 19:14:53

2011-03-23 09:31:26

歸檔日志文件數據庫恢復

2018-06-15 10:07:32

Windows 10Windows回收站

2018-04-28 14:55:41

Windows 10升級恢復

2022-02-25 08:02:41

集群ceph16集群恢復

2010-05-06 09:42:28

Oracle表空間

2023-08-25 09:39:38

數據庫Oracle

2010-06-30 10:55:13

SQL Server日

2014-10-08 09:51:12

ios8漏洞文件安全
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩网站在线 | 亚洲视频一区二区三区 | 亚洲一区二区三区四区五区午夜 | 国产精品视频久久久久久 | 午夜影院在线播放 | 日本精品一区二区三区视频 | 日韩视频免费 | 亚洲国产高清高潮精品美女 | 久久久婷婷 | 18性欧美 | 久久久久久免费毛片精品 | 国产精品欧美一区二区 | 国产999精品久久久久久 | 69视频在线播放 | 日韩在线观看视频一区 | 精品国产18久久久久久二百 | 天天操一操 | 在线视频中文字幕 | 九色视频网| 91就要激情 | 黄视频欧美 | 成人三级av | 精品国产免费人成在线观看 | 一级做a爰片久久毛片 | www.youjizz.com日韩 | 人人干人人超 | 亚洲成人一区二区三区 | xx视频在线 | 国产你懂的在线观看 | 欧美女优在线观看 | 一区二区在线 | 成人欧美一区二区三区黑人孕妇 | 成人国产精品久久久 | 亚洲a在线观看 | 日韩av福利在线观看 | 精品欧美激情在线观看 | 久久精品久久综合 | 欧美日韩成人在线观看 | 中文字幕 在线观看 | 国产精品免费一区二区三区 | 日日操网站 |