1.背景
SRE運維團隊致力於通過自動化來提高運維的工作生產效率,推動向智能化運維方向迭代轉變,解決傳統運維的痛點。傳統運維雖具有完整的運維體系,但運維方式各異,運維操作複雜,耗時長。如何提高混合雲項目的運維效率,提高運維附加值和客戶滿意度,仍是我們的攻堅難題。
主要需面對以下幾點挑戰:
- 客戶業務的快速發展與演進,傳統運維滯後性被拉大
隨著客戶業務的發展和業務模式的不斷演進,業務數據量也在逐年增加。給運維帶來了更多機會與挑戰,如何保障雲內數據、雲內外業務交互的穩定、安全、高效運行,是運維人員值得思考的問題。
- 平臺各系統運行復雜,運維學習成本提高
隨著雲平臺雲產品版本的快速迭代,熟悉平臺難度加大,隨著雲產品版本更迭和新功能的出現,新手學習的成本提高,熟悉雲平臺的各種運維操作難度加大。但不能從根本上解決快速賦能運維能力的問題。所有一切將會引發一連串的“蝴蝶效應”,甚至引發項目高風險或P級故障出現,將會直接影響客戶雲上業務的正常使用。
- 運維人員能力參差不齊,運維操作複雜
目前運維方式存在人工經驗判斷、平臺各種手工操作、處理問題低效、故障應急處理耗時長等主要問題。由於系統的複雜性,技術人員在操作平臺運維時,會浪費大量的時間在機器登入、工具使用等基礎問題指導上。登錄之後又面臨各種增刪改查操作指令的不統一。隨著運維長時間的消耗,也會引起現場運維人員的心神俱疲,無法專注線上操作。尤其是面對一些沒有經驗的駐場或客戶,常常會出現找不到目標機器,命令敲錯等現象,使得整體運維低效和安全隱患頻發。
綜合以上關於客戶、平臺、運維三方面的運維問題, 提高運維效率、降低運維人員學習成本是當前的主要任務。在此大背景下,推出了SRE-CLI工具,該工具是一款支持shell功能、命令補全、問題診斷、故障止血等功能的srecli工具,逐步解決和完善當前的問題現狀。
2.SRE-CLI基本介紹
SRE Command Line Interface (SRE CLI) 是一種運維工具,讓您能夠在命令行Shell 中使用命令對混合雲進行運維操作。僅需最少的配置,即可使用 SRE CLI 運行命令,以便從終端程序中的命令提示符實現日常運維過程中複雜的命令。基於SRE 在日常工作中的問題處理、故障應急沉澱的“老中醫”的經驗,並通過命令行工具的方式集成在混合雲中,無需配置,即可運行SRE CLI,通過簡單命令,實現日常運維過程中複雜操作。
SRE-CLI交互能力模型如下圖所示。
圖1
CLI交互能力模型,主要是由訪問層、交互層、後端、基礎設施四個部分組成。首先終端用戶通過登錄SRECLI後,進入交互層界面,通過選擇相應的場景指令和輔助功能完成指定的動作,該動作會調用後端的各工具能力,以及數據源中數據,通過基礎設施層進行計算,計算診斷的結果將直接輸出至終端CLI黑屏界面上,完成一整個交互流程,
如下圖所示。
圖2
- 問題診斷(ali_diag)
服務單、工單、故障單中提煉高頻操作,將常用操作、問題&故障點工具化成原子項。通過日常運維查詢產品原子項,問題點、故障點、快速查詢關鍵指標去定位問題點。
圖3
- 場景診斷(ali_scene)
以故障場景沉澱出一系列排查思路,以“三板斧”形式輸出,精確定位問題所在。在此基礎上進行故障點組裝、故障精確定位。
圖4
- 應急止血(ali_cure)
真實故障和風險止血恢復手段沉澱,發生並解決方案確定後,需要快速恢復,恢復動作包括重啟、降級、限流、切換等。幫助客戶業務快速恢復。
- 日常查詢(ali_query)
日常查詢、關聯數據展示、常用信息獲取,通過精確的查詢方式,查詢雲內IP地址定位對應的產品、路由、容量、策略等信息。目前覆蓋物理網絡的各類IP維度查詢。
- 智能抓流(ali_trace)
滿足CLI在雲平臺內各點抓包的能力,通過定製化的抓包組合命令,快速落在抓包點,進行指定的進或出方向的網絡流量抓包。覆蓋經典網絡類型抓包、VPC網絡類型抓包兩種。
3.Cli-Net概念
Cli-Net是CLI體系中的一個分支功能,主要負責處理混合雲內物理網絡方向的診斷排查,通過統一格式的指令,在物理網絡環境中進行具體方面的排查診斷。Cli-Net主要覆蓋混合雲物理網絡四大方面,包括雲內通用網絡設備性能診斷、雲邊界網絡狀態診斷、雲內網絡狀態診斷、物理機網絡狀態診斷。涉及雲內所有產品物理機和交換機網絡運行狀態,以及互聯網、雲外IDC網絡等雲外網絡訪問雲內網絡的排查診斷,具體診斷覆蓋如下表所示。
Cli-Net診斷覆蓋 |
通用網絡設備性能診斷 |
雲邊界網絡狀態診斷 |
雲內網絡狀態診斷 |
物理機網絡狀態診斷 |
ISW |
● |
● |
|
|
DSW |
● |
|
● |
● |
CSW |
● |
● |
|
|
LSW |
● |
|
● |
● |
ASW |
● |
|
● |
● |
|
input |
input |
input |
input |
4.Cli-Net主要功能
- 快速登錄網絡設備
通過CLI工具訪問天基查詢,快速獲取交換機IP地址,並通過CLI工具內置的“密碼庫”依次遍歷通用密碼快速登錄到網絡設備上,如果通用密碼遍歷均不成功,則判斷為已被修改成項目個性密碼。則CLI工具提示請向用戶申請並授權後輸入個性密碼,手動“填入個性密碼”,再執行後續內容。
通過該功能,能夠節約查詢交換機IP地址和登錄密碼的時間,方便網絡設備的登錄。
圖5
演示指令:ali_tools login switch $交換機角色名稱
圖6
- 通用網絡設備性能診斷
Cli-Net能夠檢查交換機自身硬件運行指標性能,例如cpu、板卡、溫度、風扇、內存、電源狀態。
圖7
演示指令:
ali_diag network hardware COMMAND [cpu_usage] [device] [environment] [fan] [memory] [power]
圖8
- 雲邊界網絡互聯狀態診斷
雲平臺交換機ISW、CSW、DSW、ASW、LSW之間的互聯物理鏈路健康檢查。具體檢查各角色之間經典鏈路互聯狀態,VPC專線鏈路互聯狀態和互聯光衰狀態。
圖9
演示指令:
ali_diag network interface COMMAND [classic_link] [transceiver] [vpc_link]
圖10
- 雲內網絡互聯狀態診斷
雲平臺交換機路由協議互聯狀態檢查,通過檢查BGP和OSPS協議狀態,如異常則直接輸出異常狀態。
圖11
演示指令:
ali_diag network route [bgp] [ospf]
圖12
- 連通性狀態診斷
雲平臺物理服務器、交換機等連通性檢查。通過ping針對某個物理機名、集群名、交換機等進行連通性測試。
圖13
演示指令:
ali_diag network ping COMMAND [nc] [project] [switch] [virtual_nc]
圖14
5.Cli-Net場景診斷
Cli-Net場景集合了混合雲物理網絡中主要的業務數據流方向途徑的檢查點,通過Cli-scene場景中指定的排查指令,通過一鍵診斷的方式,快速排查物理網絡環境的各種檢查項狀態,檢查診斷項主要分為五個場景:單機自檢、核心網絡方向診斷、專線方向診斷、公網方向診斷、物理虛擬方向診斷。
具體功能如下表所示:
中文名稱 |
Cli英文名稱 |
含義 |
單機自檢功能 |
device_check |
檢查每臺交換機本身的健康狀態,包含硬件、接口、路由、連通性,去判斷輸出網絡設備本身的異常項目。 |
核心網絡方向診斷 |
core-network |
通過檢查涉及所有云內物理服務器路由通路、互聯線路、路由狀態的整體或指定具體物理機去判斷輸出網絡異常項。 |
專線方向診斷 |
Private direction |
通過檢查用戶IDC與雲內VPC網絡(含所有實例級資源)間涉及到的物理網絡整體狀況去判斷輸出網絡異常項。 |
公網方向診斷 |
Internet Direction |
通過檢查互聯網與雲內VPC網絡(含所有實例級資源)間的涉及到的物理網絡整體狀況去判斷輸出網絡異常項。 |
物理虛擬方向診斷 |
physics virtual |
通過檢查VPC網絡(含所有實例級資源)與經典網絡(包含所有云服務資源)之間的物理整體狀況去判斷輸出網絡異常項。 |
6.Cli-Net場景結構
- 單機全量自檢場景結構如下圖所示。
圖15
- Core-network場景結構如下圖所示。
圖16
- Private direction場景結構如下圖所示。
圖17
- Internet Direction場景結構如下圖所示。
圖18
診斷指令:
ali_scene network COMMAND [core_network] [device_check] [internet_direction] [physics_virtual]
圖19
演示指令:
ali_scene network COMMAND [core_network] [device_check] [internet_direction] [physics_virtual]
圖20
圖21
7.Cli-Net應用實踐
應用場景 |
排查指令 |
指令結果 |
機房整體掉電 |
ali_diag network ping project {product name} |
檢查雲內各集群物理機連通性是否正常 |
ali_diag network ping switch{name} |
檢查雲內交換機連通性是否正常 |
|
ali_diag network hardware power {switch} |
檢查各交換機電源運行狀態是否正常 |
|
ali_diag network route bgp {switch} |
交換機bpg路由協議狀態檢查 |
|
ali_scene network device_check |
交換機硬件自檢 |
|
ECS訪雲外不通 |
ali_scene network internet_direction |
檢查公網方向網絡問題 |
ali_scene network private_direction |
檢查專線方向鏈路問題 |
|
base訪問vpc內數據源失敗 |
ali_scene network core_network |
設備網絡連通性檢查 |
ali_scene network physics_virtual |
綜合接入區網絡檢查 |
|
物理機故障後上線 |
ali_scene network core_network |
物理機所在網絡檢查 |
ali_diag network route bgp {switch} |
雲內bgp網絡狀態檢查 |
上表列舉出了不同場景參考的不同排查指令,通過排查指令去診斷雲內物理環境的情況,判斷是否存在異常現象。以上僅是物理網絡環境部分的檢查,如需檢查具體的產品側狀態,還需結合具體的產品診斷狀態。網絡側和產品側結合使用方能達到快速診斷和排查的效果。
我們是阿里雲智能全球技術服務-SRE團隊,我們致力成為一個以技術為基礎、面向服務、保障業務系統高可用的工程師團隊;提供專業、體系化的SRE服務,幫助廣大客戶更好地使用雲、基於雲構建更加穩定可靠的業務系統,提升業務穩定性。我們期望能夠分享更多幫助企業客戶上雲、用好雲,讓客戶雲上業務運行更加穩定可靠的技術,您可用釘釘掃描下方二維碼,加入阿里雲SRE技術學院釘釘圈子,和更多雲上人交流關於雲平臺的那些事。