天天看點

假 running 真故障 記一次電力行業的 SRE 實踐

作者:雲杉網絡

導讀

使用者:某省級電網企業

挑戰

  • 定界困難:當發生故障,業務部門和網絡部門互相推诿,而不是解決問題;
  • 監控顆粒度不足:運維難以深入到POD次元,大量微服務的業務互動在虛拟機内已經完成業務互動;
  • 全棧鍊路追蹤難:電網要求運維能力覆寫整個業務鍊條,在微服務架構下,難以看到完整跨容器節點的全鍊條追蹤資料;
  • 定位方法單一:大部分運維工具功能單一,比如日志隻可以查詢日志,沒辦法進行名額,追蹤、日志等關聯定位。

使用者期望

  • 期望1分鐘發現問題、15分鐘研判問題、1小時内解決問題;
  • 監控體系完成業務全覆寫、系統全覆寫;
  • 全業務鍊條可追蹤、可溯源。

這裡交代了背景

經濟發展,電力先行。作為國家電網旗下最年輕的某省級電網企業,連結東北和華北電網,承擔着京津冀北區域電力供應的重要使命。于2012年2月9日正式成立,2017年實施了全業務資料中心的建設,并陸續完成四大資料中心的建設,實作了統一的資料共享與業務融合。

随着資訊技術在電力行業經營管理中的廣泛應用,越來越多的業務系統從傳統的實體環境遷移上雲,導緻諸多電力業務系統如:營銷系統、BPM、PMS2.0、各類6000系統,成分布式微服務化部署,系統環境也多為異構場景,混合雲和雲上雲下的場景尤為凸顯。網絡分層導緻電力行業的業務系統很難用傳統的運維手段探測到全局的網絡,網絡故障發生時很難快速做到端到端的定位等等。

事件起因從這裡開始

我(作為現場支撐人員也是小編本身)和電網企業的故事要從一次聯合故障定位開始,在往常巡檢的過程發現其中一個業務系統,内部微服務(POD)間有大量的建連失敗,在 DeepFlow 中輸入更多關于建連失敗的名額量,如建連用戶端 SYN 結束、建連服務端 SYN 結束、建連服務端直接重置等,下鑽到流日志後發現了主要建連失敗的原因:即用戶端 SYN 結束表現形式為用戶端多次嘗試建連,但是服務端無回應,于是服務端口未放行或者服務端口失效。

為了驗證是否下沉到業務側,與南瑞 I6000 運維同僚進行聯合定位,在交流過程中使用者并沒有發現有任何問題,使用者随即手動輸入 POD 健康檢查的指令發現沒有響應,與我判斷一緻,表面上看所有業務都在正常 running,但是 POD 實際沒有啟動好,監控端口已經失聯。為了緩解尴尬的場景使用者調侃道“假 running,真故障”。

假 running 真故障 記一次電力行業的 SRE 實踐

接着與使用者進一步讨論時,發現使用的是 Livceness,可以制定檢測規則,如果檢測失敗就會重新開機 POD ,全部是以 K8s 被動觸發,手動檢測會變的很複雜,甚至會出現一種假活現象。根據這次聯合定位,我和使用者運維部門做了一次深入的溝通,同時也從内心深刻的體會到:一個運維人員面對微服務場景下缺失可觀測性能力的無力感。

首先 K8s 的産生是面向業務的,最大限度的保證服務的高可用,但是很多流量都是瞬發的,微服務(POD)在不停的自動化運轉,根據工作負載,随時可能發生業務 POD 剔除或者重建的情況,導緻微服務場景的監控變得非常複雜。

還有就是以目前的運維手段使用者更在乎業務的可讀性,也就是電力行業常說的小綠泡,綠色代表正常,紅色代表異常,但這遠遠不能達到實際的運維要求。在和使用者深入溝通的同時,我也根據産品能力,建立較為完善的應對措施,幫助使用者提升整體運維能力。

首先需要站在使用者實際的業務角度出發,完成個性化的運維場景定制。

假 running 真故障 記一次電力行業的 SRE 實踐

通過 DeepFlow 豐富的監控名額,可以全面覆寫網絡和應用層的R(吞吐)E(異常)D(時延)的場景況,結合目前較為先進的 SRE 方法論,優化故障發現到故障解決的時間,使得整體業務水準在一個良好的 slo(服務等級目标);并針對重要業務中發現過的故障進行重點監控和故障場景複現進行針對性優化,改變過去發現業務問題再做問題定位的被動情景,轉變為主動檢測、主動監控、主動告警的監控閉環。

接下來為了解使用者實際的業務場景和容忍度,和運維部門針對運維名額開設了讨論會,建立豐富、貼合使用者使用要求和習慣的 SLI 名額和基線,通過主動監測和建立健康度管理模型的方式,幫助使用者發現潛在故障。并且當發現了某些名額不合格,快速進行告警推送到指定責任人手裡,再聯合 DeepFlow 的全棧鍊路追蹤能力、日志回溯能力,快速發現故障根因。

假 running 真故障 記一次電力行業的 SRE 實踐

目前,基于 SRE 方法論定制的健康能力模型已經初具成效,并針對 I6000 做了實用化提升試點,針對不同運維部門(網絡運維、系統運維、業務運維)做了專門的定制化視圖,讓部門第一眼隻關注到自己關心的名額和視圖,減少了大量無效告警和定責定界的時間。把使用者要求的1分鐘發現問題,15分鐘研判問題,1小時解決問題變成了可以量化、便于操作、可以實作的目标。

後知後覺的感悟

為使用者提供技術支援的這段時間内,有一些感悟,感覺有時候我們做的不是簡單運維,而是保障電力的可靠供應。從電網供電,到普通群眾買電、用電,是最底層的民生需求,我們可以一天不開車,但是我們無法一天不用電。現代社會停電的時候越來越少,用電的地方越來越多,是國家對民生的重視,DeepFlow 所能做的,繼續為能源供需分析預測新形勢提供幫助,為保衛京津冀供電、服務地區經濟社會發展和清潔能源發展貢獻力量。

一次簡單的價值總結

  • 建立完善的 SRE 健康名額主動監控體系,幫助使用者在故障發生前提前預測,在故障發生時分鐘級别定位故障路徑,降低運維成本。
  • 建立不同次元告警推送體系,第一時間郵件推送到指定責任人,減少故障排查時間。
  • 把經常出現告警故障的業務和重要應用定制報表,将出現過的故障情景以視圖的模式重制,定期發送給責任人。
  • 基于名額告警、路徑追蹤、日志查詢等多元度跳轉,由宏觀到微觀的逐級下鑽,分鐘内确定問題路徑和故障根因。

繼續閱讀