運維大規模ES集群的思考和實踐

2022-06-07 15:06:11 字數 3005 閱讀 6563

elasticsearch是_乙個分布式、restful風格的搜尋和資料分析引擎。_在開源搜尋領域已經遙遙領先其他產品。隨著近年來es的快速發展,es已經逐步從單一搜尋引擎進化成乙個全能型的資料產品。在日誌監控,全文檢索,資料庫加速,大資料分析等很多領域得到廣泛應用。

京東智聯雲es支撐了公有雲,私有雲和京東集團內部的大量es集群。京東**,京東物流,京東金融等各個業務領域都對es服務有很大量的需求。目前已使用數十萬核,上萬個節點,數十萬億個文件。

如何利用雲廠商的優勢,高效,可靠,穩定的運維如此大規模的es集群是我們需要思考和解決的問題。下面我將從幾個維度介紹我們的思考和實踐。

雲廠商相較於使用者自建最大的優勢在於彈性。彈性給使用者帶來的不僅僅是方便易用,還有降低成本。京東智聯雲es依託於雲艦的服務編排能力,能夠達到快速,靈活的部署集群,支援對集群水平擴縮,垂直變配,儲存擴容等彈性能力。另外京東智聯雲es還提供了雲硬碟本地盤物件儲存多種儲存方式,滿足不同場景下的使用者需求。

另外服務編排還提供了故障自癒能力。物理機故障場景,會自動將故障機器上的es節點failover到其他節點;es節點故障場景,會自動嘗試重啟es節點如果仍然無法恢復則會遷移es節點到其他物理機節點。

▲京東智聯雲es運維能力▲

1,監控警告

如此大規模的集群,需要全域性和指標豐富的運維監控系統,來保障系統運維的視覺化。通過我們的運維經驗積累,京東智聯雲的運維監控系統,已經能夠實時的發現異常集群,並能夠通過各個監控指標分析發現問題的原因。

2,多版本支援

es版本特別多,由於歷史原因很多舊系統很難公升級,且不同使用者上雲對版本需求差異較大,所以需要支援很多不同的版本。目前支援的大版本有2.x,5.x,6.x,7.x。多版本的管理復用同一套編排管理系統,能夠快速支援新es版本上線。

3,效能優化

es的特點是開箱即用,但es可配置項非常多,對於不同的業務場景和需求,集群需要不同的調優配置,非專業使用者往往很難使用的非常合理。下面列舉一些常見問題:

4,資料遷移

5,索引生命週期管理

索引生命週期管理是使用者很常用的乙個管理功能。按天或月週期建立索引,保留一定時間後刪除過期索引,永久保留指定時間的索引(例如大促期間的索引)。es從6.6版本在x-pack中開始支援索引生命週期管理功能的測試版本,但低版本不支援該功能。京東智聯雲es將該功能拓展到所有es版本並提供ui化設定,比通過原生kibana配置或者api配置更加簡單實用。

6,探索智慧型化運維

探索智慧型化運維,我們的運維知識和經驗產品化提供給使用者,根據使用者的業務場景,綜合各項監控指標,給出集群的健康狀況和解決建議。例如節點負載不均,分片設定不合理,堆記憶體占用太高,gc時間太長,filedata佔比太高,集群負載較高,分片數量太大,寫入或者查詢執行緒池佇列有堆積或者reject,集群的讀寫流量異常波動等。

7,監控指標資料自治系統

自動化運維或者自治運維是終極目標,隨著智慧型化運維能力的提高,通過監控指標資料自治系統就能夠自主得出決策並執行,完全不需要人工介入。

es的應用場景主要涉及日誌檢索,資料庫加速,監控指標,資料分析等領域。不同的業務場景具有不同的特點,對效能的需求也不盡相同,所以需要針對不同場景有不同的優化方案。

1. 日誌檢索場景,併發寫入量大,實時性要求不高,儲存量大,資料有冷熱屬性。針對這種場景可以提高索引寫入快取大小來提公升寫入效能;增加refresh interval時間間隔來減少segment數量;將translog.durability使用hdd來降低儲存成本。

2. 資料庫加速場景,對於沒有事務性要求,且需要檢索海量資料的結構化查詢場景,es是替代關係型資料庫的不錯選擇。京東主要應用的業務有商品,優惠券,訂單,對賬,物流等。此場景的特點是延遲敏感,需要高效能,高可用。

3. 監控指標,併發寫入量大,時序特性,不需要高可用,資料有冷熱屬性。

4. 資料分析場景,資料分析維度較多,聚合查詢。寫入量大,查詢量小,但需要聚合查詢。京東主要應用的業務有訂單交易分析,使用者畫像等。

給使用者提供簡單可靠的產品是我們的終極目標。所以未來我們會從兩個方面提公升優化我們的產品,一是從使用者的角度對外呈現產品形態,通過產品服務化更貼近使用者的使用習慣,降低使用者使用門檻,提供更加簡單且實用的使用方式。二是從運維的角度增強後台的自治運維能力,包括智慧型檢測和修復能力,故障自癒能力,自動彈性能力,資料配置託管能力等,做到從託管產品變成託管服務。

推薦閱讀:

歡迎點選【京東智聯雲】,了解開發者社群

運維平台的建設思考

自己最近也在琢磨如何搭建出乙個完善有效的運維平台,當然這個工作不是一朝一夕就能完成,前行的道路上肯定會有各種各樣的困難和牽絆,但是自己還是能夠學以致用,把一些重複性,繁瑣性的工作都能解放出來,能夠更加關注於更高的乙個層級來看待整個系統。我把搭建運維平台的過程分成了5個階段,當然純粹是個人之見,難免有...

cacti效能優化筆記 面向大規模集群的監控管理

2009 10 9 21 52zysno1 目標 單台cacti伺服器,同時監控1000 server,50000 rrd 檔案.保證圖表資料的連續和流暢,每一輪資料採集時間控制在3分鐘之內。硬體環境 intel r xeon r cpu e5420 2.50ghz 4 cores 4g memor...

大規模部署桌面虛擬化時的一些思考

最近在某大型企業實施虛擬桌面專案,遇到了一些與安全與域管理相關的問題,分享給計畫或正在部署虛擬桌面的朋友們。此使用者當前已經有超過40臺域控制器分布在全國範圍30餘個位置,每個站點根據規模及重要級別部署1 2臺域控制器來負責本地pc的域驗證工作,目前需要在全國範圍內部署7000個虛擬桌面供員工辦公和...