01
前言
讓我們先看看兩個缺點,然后帶著問題思考:
[故障排除-案例A]首先,大致了解未分配存儲片的原因:
結(jié)果顯示大部分的圖塊都是因為node_left而沒有分配,然后通過解釋API檢查圖塊myindex[3]沒有自動分配的具體原因:
在解釋api中,我們規(guī)定只顯示切片myindex[3]的信息,診斷結(jié)果的主要信息如下:
這意味著彈性搜索在磁盤上找到了該切片的數(shù)據(jù),但由于切片數(shù)據(jù)不是最新的,因此不能將其指定為主切片。
[故障排除-案例B]片段分配失敗,查看日志時報告了以下錯誤:
出現(xiàn)此錯誤的原因是,輔助切片與主切片具有相同的sync_id,但DOCs的數(shù)量不同,導(dǎo)致恢復(fù)失敗。sync_id相同但文檔編號不同的原因可能有很多,例如:
1.編寫過程使用自動生成的docid
2.主片完成寫入文檔,并將請求轉(zhuǎn)發(fā)給次片
3.在此期間,通過查詢進(jìn)行的并行刪除刪除了剛剛寫在主片上的文檔,子片也執(zhí)行了該刪除請求
4.主片段轉(zhuǎn)發(fā)的索引請求到達(dá)子片段。由于id是自動生成的,子片段將直接寫入文檔,無需檢查。最終,子切片和主切片之間的DOCs數(shù)量不一致。
案例A和B有什么解決方案?別擔(dān)心,讓我們先解決紅色和黃色的問題
02
文本:紅色和黃色
集群紅色和黃色是彈性搜索集群中最常見的問題之一。紅色和黃色只有一個原因:一些存儲片沒有被分配。
如果沒有分配一個以上的主片,則簇和相關(guān)索引被標(biāo)記為紅色;如果所有主片都成功分配,則一些子片沒有分配,簇和相關(guān)索引被標(biāo)記為黃色。
集群分配解釋API推薦用于集群紅色或黃色的問題診斷,可以給出未分配片段的具體原因。例如,以下請求可以返回第一個未分配切片的具體原因:
您還可以僅查看未分配特定切片的原因:
引用一個官網(wǎng)的例子,API的返回信息如下:
在返回的結(jié)果中,給出了導(dǎo)致片段未分配的詳細(xì)信息,并給出了片段最初未分配的原因,可以理解為是什么操作觸發(fā)了未分配;
allocate _ description進(jìn)一步說明了不能將該片分配給任何節(jié)點,失敗的具體原因在判決者的解釋信息中有詳細(xì)描述。這些信息足以讓我們診斷出問題。
未分配存儲片的初始原因有以下幾種:
1.INDEX_CREATED
由于創(chuàng)建索引api創(chuàng)建的索引,在索引創(chuàng)建過程中需要一個過程來分配索引的所有切片。在分配所有切片之前,索引將處于短暫的紅色或黃色狀態(tài)。因此,如果監(jiān)控系統(tǒng)發(fā)現(xiàn)集群紅色,并不一定意味著存在故障。
2.CLUSTER_RECOVERED
當(dāng)群集完全重新啟動時,所有存儲片都標(biāo)記為未分配,因此原因?qū)儆谌杭耆匦聠訒r啟動階段的這種類型。
3.INDEX _ RECOVERED
打開以前關(guān)閉的索引,重新打開操作將重新分配索引分配。
4.懸空_索引_導(dǎo)入
導(dǎo)入懸掛索引。什么是懸空指數(shù)?
存在于磁盤中但不存在于群集狀態(tài)的索引稱為懸空索引。例如,如果一個索引數(shù)據(jù)目錄從另一個集群復(fù)制到當(dāng)前集群,彈性搜索會將該索引加載到集群中,因此它將涉及為懸掛索引分配切片的過程。
5.新_索引_已恢復(fù)
從快照恢復(fù)到新索引。
6.EXISTING_INDEX_RESTORED
索引從快照恢復(fù)到關(guān)閉狀態(tài)。
7.REPLICATE _ ADDED
添加片段副本。
8.ALLOCATION_FAILED
由于分配失敗。
9.節(jié)點_左
因為節(jié)點離線。
10.重新路由_取消
由于顯式的canceleroute命令。
11.重新初始化
當(dāng)切片從開始狀態(tài)轉(zhuǎn)換到初始化狀態(tài)時。
12.REALLOCATED _ REPLICA
由于碎片副本的遷移。
13.初級_失敗
初始化輔助分區(qū)時,主分區(qū)會失敗。
14.強制_空_主要
強制分配一個空主片。
15.手動_分配
手動強制分配切片。
03
解決方案
對于不同原因造成的不分配要采取相應(yīng)的措施,所以要具體問題具體分析。應(yīng)該注意的是,每個索引也有綠色、黃色和紅色狀態(tài),當(dāng)所有索引都是綠色時,集群才是綠色的。只要有一個紅色或黃色的索引,集群就會是紅色或黃色的。
如果一些測試索引導(dǎo)致紅色,您可以簡單地刪除這個索引。
因此,單個未分配的切片將導(dǎo)致群集紅色或黃色,一些常見的未分配原因如下:
由于配置問題導(dǎo)致的,需要修正相應(yīng)的配置;由于節(jié)點離線導(dǎo)致的,需要重啟離線的節(jié)點;由于分片規(guī)則限制的,例如 total_shards_per_node,或磁盤剩余空間限制等,需要調(diào)整相應(yīng)的規(guī)則;分配主片時,找不到最新的片數(shù)據(jù),導(dǎo)致主片未被分配。在這種情況下,需要觀察是否有節(jié)點離線。在極端情況下,舊切片只能手動切片到主切片中,這將導(dǎo)致一些新存儲的數(shù)據(jù)丟失。
集群RED或者YELLOW的時候,我們通常需要先看看有沒有節(jié)點離線,我們會討論節(jié)點不能單獨啟動或者加入集群的問題。下面分享幾個紅黃的案例,以及相應(yīng)的處理方法。
04
總結(jié)
對于前言中【案例A、B】的失誤,大家應(yīng)該有一些想法。
如果你想知道故障案例的具體解決方案,請瀏覽本課程的代碼
集群紅色和黃色是操作和維護(hù)過程中最常見的問題。除了群集故障,正常的索引創(chuàng)建和增加子切片的數(shù)量將導(dǎo)致群集紅色或黃色。
在這種情況下,短暫的紅色和黃色是正?,F(xiàn)象。如果您監(jiān)控集群顏色,您需要考慮這一點。您可以參考解釋API的持續(xù)時間、具體原因等因素制定報警規(guī)則。
聚類顏色問題是最常見也是最簡單的問題。我們處理過的其他大部分問題都是記憶問題。
如果您有更多的問題,歡迎您訂閱該課程,并加入高可用性彈性搜索集群的讀者群問題交流。
1.《recovered 解析 Elasticsearch 棘手問題,集群的 RED 與 YELLOW》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點,與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《recovered 解析 Elasticsearch 棘手問題,集群的 RED 與 YELLOW》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進(jìn)行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。
3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/guoji/1190033.html