從趨勢到挑戰,資深工程師一站式解讀:操作系統運維和可觀測性

簡介: 結合傳統運維工具和 eBPF 技術,我們可以對整個系統的進行全棧觀測。

編者按:隨着企業數字化轉型步入深水區,設備數量增加,業務系統更加複雜,除了要保證物理硬件的穩定性和可靠性,運維目的和手段也發生了深刻變革,由龍蜥社區系統運維 SIG 組 Maintainer、統信軟件資深操作系統研發工程師高衝從系統運維的趨勢與挑戰、系統運維 SIG 組項目及未來展望和規劃三個方面帶我們瞭解操作系統運維和可觀測性,本文整理自 2022 年阿里巴巴開源開放周技術演講視頻回放已上線至龍蜥官網(首頁-動態-視頻),歡迎大家觀看

 

一、系統運維的趨勢與挑戰

隨着企業數字化轉型步入深水區,設備數量增加,業務系統更加複雜,除了要保證物理硬件的穩定性和可靠性, 運維目的和手段也發生了深刻變革,通過平臺化和智能化保證運維環境的實時性、數據安全性和業務連續性。

 

運維的整個發展歷程主要有下面四個階段:

11.png

從最初的手動運維,依賴於運維人員的經驗,發展爲流程化的一個運維,依賴流程的規範化管理來實現運維,前兩種的運維方式爲企業帶來很大的運維成本,現階段的主流運維方式有兩種:一、平臺化的運維。通過平臺化的自動化和可視化的運維,來大大減少企業運維的成本。二、智能化運維。隨着數據分析、人工智能的技術引入,慢慢地我們也會介入智能化運維。

 

下面爲大家介紹下運維業務的架構。

12.png第一個最底層的是對於硬件的一個運維,通常就包含硬件的一些信息,比如溫度、讀寫壽命、風扇轉速等等。

 

第二再往上層就是對操作系統的運維,還有是通過外掛的一些運維,比如 IPMI 協議,通常比較常見就是 BMC 。

 

在整個系統的運維方面,其實有兩大部分,一個是管控,另外一部分是診斷

1、管控主要分爲三個方向:

第一個是資源管理。首先就是對資源的一個納管,比如說主機的一些納管。另外就是監控,如對資源的一些監控,包含 CPU 的算力、磁盤的使用情況、帶寬、內存,最後是對資源的分配。

第二是配置管理。它包含有三部分:安全、包管理、自動化。在整個運維方向來看,其實都視爲是配置。配置中的安全一個是 CVE,還有一些是配置項的安全,比如說端口掃描都屬於安全。另外是包的管理,現在比較主流的有兩種:一個是 RPM 包,另一個是 deb 包。包管理其實就包含這個包的升級回退、版本控制。最後就是自動化,也是相對比較重要的一部分,比如說我們配置的批量下發、定時任務,還有一些模板下發。

第三個就是權限管理。權限管理分兩部分,一部分是用戶權限控制,相對比較常見的 RBCA。另外是審計,包含行爲審計和日誌審計。除了審計,還有一部分是危險攔截,比如攔截危險命令的操作、提權操作等。

 

2、另外比較核心的一塊是 SLI:

SRE(站點可靠性工程)的概念是由 gongle 創建出的, SLI 是指度量系統可靠性的測試指標。OS SLI 通常有可靠性、可用性、性能等方向,OS 通常爲延遲、吞吐量、相應時間、準確性、完整性。一部分 SLI 是傳統式主動觸發,比如說網絡延遲抖動發生的時候,運維人員去調用相關的 SLI 一些工具,做下鑽式的分析或者是我們去利用凌晨或者定時巡檢來發現問題,類似於輪詢這樣的方式。

 

傳統的 SLI 的採集是通過系統調用獲取系統信息,比較耗費資源的。目前比較火的 eBPF 技術就解決了底噪佔用高和安全的問題,可以結合一些基本處理手段來獲取更有價值的數據。

 

以上介紹的管控和診斷,我們都會通過這兩塊業務收集到數據,也就涉及到數據處理。

 

數據處理,目前有四個方向的處理方式:

 

一個是時續化的數據處理。我們將整個診斷,還有管控的數據做一個時續化的處理來幫助運維人員做一些更好的、更深層次的分析。第二就是一些性能的分析,需要對整個性能做負載畫像第三系統的各個的方向實際是相對比較複雜的,我們需要利用一些算法做聚合分析。最後就是異常檢測。比如 IO 的一個延遲,需要對 IO 企業的時間或者讀時間比較長,做一個離羣檢測分析。

 

有了這些數據之後,我們會對數據利用運維的一些經驗或者 AI 技術,做一些智能化的一些介入,當然也包含告警。

 

結合傳統運維工具和 eBPF 技術,我們可以對整個系統的進行全棧觀測。從最底層,比如 CPU 的診斷來說,我們可以利用 CPU frequency 去看到每個進程在對 CPU 的一個調動頻率的觀測。再到上層的一個設備驅動、網絡,還有文件系統,系統調用等,都是可以利用 eBPF 技術來做到很深層次的觀測。

 

那同樣的對用戶態的一些進程,比如說數據庫、中間件或者是 runtime 的一個狀態都可以就是利用 uproble 技術去做觀測。

 

二、龍蜥社區系統運維 SIG

 

系統運維 SIG 組(Special Interest Group是致力於打造一個集主機管理配置部署,還有監控報警、異常診斷、安全審計等一系列功能的一個自動化運維平臺。目前 SIG 組有三個核心的項目:一個是 SysOM提供一站式的運維的管理平臺。SysAK 是系統的一個分析診斷套件,也是核心驅動 SysOM 一些診斷功能的技術底座。最後是比較前瞻性的 coolbpf,是對 BPF 編譯套件的增強,包括一個遠程編譯的技術。還有是對低內核版本的在 eBPF 上特性的回合。目前整個 SIG 組比較活躍的,PR 提交了有一千多。

 

下面爲大家介紹一下 SysOM 的整個的架構。SysOM 的架構核心是分爲兩部分,一個是 server 端,另一個是 client 端。

13.png

前端主要是 dashboard 的展示。有主機管理、監控中心、宕機中心、診斷中心、日誌中心和安全中心,主要是負責和用戶的一個 UI 交互。後端是負責一些核心的技術實現。比如說監控,有資源監控(目前是通過 prometheuse 的exporter-node 去實現資源的監控)、任務監控、異常監控。還有宕機分析、診斷,依託的是 SysAK 的一些功能去做到網絡診斷、存儲診斷、內存診斷和調度診斷。最後在安全這一塊,主要包括漏洞檢查、漏洞修復,加固以及日誌審計。

 

整個的後端存儲有兩部分,一部分是關係型數據庫,就是 RDB,還有一個就是時序性數據庫。

 

client 包含 SysAK 負責提供系統的性能和故障診斷。vmcored client 主要是負責提供診斷信息的收集。node exporters 負責整個資源的一個診斷,還包含時序化的處理、回傳 prometheus。

 

那下面我將是通過前端的展示,爲大家直觀的瞭解 SysOM 整個的功能:

14.png

SysOM 主機管理,支持批量導入導出、集羣化管理,當然也支持遠程的終端。監控中心集成了一些常用的資源的配置項。比如說磁盤、CPU 算力,還有網絡帶寬的使用情況,也包含一些關鍵進程的監控,還有網絡的延時情況。

15.png

 

16.png

SysOM 診斷中心,也是相對比較核心的功能。我們目前對系統做了 SRE 診斷,另外也包含整個的軟硬件診斷的情況,還有 IO 診斷,也去做了系統的低狀態的檢查。性能包括系統的調度的使用情況做了火焰圖的分析,這樣我們也就能夠通過很直觀的去看到系統的一些瓶頸、性能的問題。

17.png

也包括可用性的檢查,我們做了靜態的一些配置項檢查。比如說調度、內存和 IO 網絡去通過和我們專家經驗去做對比,分析出性能或者是一些故障隱患。

18.png

SysOM 比較有亮點的兩個功能:網絡診斷和 IO 診斷。我們現在從單時報能看到的是網絡診斷,通過從 server 端發包給 agent 端,然後把整個調用鏈,在每個階段平均的耗時計算出來,通過一個直觀的圖展示出來,也可以通過鼠標的懸停去看具體的某個階段的耗時情況做一個下轉式的分析。比如下圖對用戶態的整個內核的實驗做了分析:

19.png

從上圖中我們能看到它整個的一個平衡平均耗時是三十七毫秒。但是在具體的某個時間段是有一定的波動的。

 

整個 SysOM 的功能是相對比較多的,也歡迎感興趣的小夥伴可以做一些有趣的探索。

 

最後是 SysOM 安全中心。安全中心通過是 errata 的機制,結合 Anolis 的公勘去做了漏洞的一個實施,定期掃描。當然也是支持漏洞的第三方配置。我們通過比如說配置漏洞數據庫,接入第三方的一些數據庫來增強整個系統或者是運維環境的安全性。

20.png

那對一些高危的或者是需要我們重啓的一些 CUE,我們在修復之後也是會給出相應的提示。如重啓服務或者說內核需要重啓系統來生效。

 

以上是整個 SysOM 相關內容的介紹,關於 SysAK 和 coolbpf 相關介紹可以通過 SIG 組瞭解,也希望大家參與到系統運維 SIG 組,大家一起來多多貢獻。

 

三、展望和規劃

目前 eBPF 提供了一種全新的動態插樁技術,爲運維的性能和故障診斷帶來新活力。統信軟件也將持續貢獻在 OS 方向的專家運營經驗,攜手龍蜥社區一起把系統運維 SIG 組做好,也把龍蜥生態做好,未來也將會在故障診斷、安全和權限管理持續發力。

相關鏈接地址:系統運維 SIG 地址:

https://openanolis.cn/sig/sysom

SysOM 項目鏈接:

https://gitee.com/anolis/sysom?_from=gitee_search

2022阿里巴巴開源開放周演講視頻:https://openanolis.cn/video/#643729391503840851

 

—— 完 ——

加入龍蜥社羣

 

加入微信羣:添加社區助理-龍蜥社區小龍(微信:openanolis_assis),備註【龍蜥】與你同在;加入釘釘羣:掃描下方釘釘羣二維碼。歡迎開發者/用戶加入龍蜥社區(OpenAnolis)交流,共同推進龍蜥社區的發展,一起打造一個活躍的、健康的開源操作系統生態!

640 (10).png

 

關於龍蜥社區

龍蜥社區(OpenAnolis)是由企業單位、事業單位、社會團體、個人等在共建、共治、共享的基礎上組成的非營利性開源社區。龍蜥社區成立於 2020 年 9 月,旨在構建一個開放、平等、協作、創新的 Linux 上游發行版社區及創新平臺。

 

龍蜥社區成立的短期目標是開發龍蜥操作系統(Anolis OS)作爲 CentOS 停服後的應對方案,構建一個兼容國際 Linux 主流廠商的社區發行版。中長期目標是探索打造一個面向未來的操作系統,建立統一的開源操作系統生態,孵化創新開源項目,繁榮開源生態。

 

目前,Anolis OS 8.6 已發佈,更多龍蜥自研特性,支持 X86_64 、RISC-V、Arm64、LoongArch 架構,完善適配 Intel、兆芯、鯤鵬、龍芯等芯片,並提供全棧國密和機密計算支持。

 

歡迎下載:https://openanolis.cn/download

加入我們,一起打造面向未來的開源操作系統!https://openanolis.cn

原文鏈接:https://click.aliyun.com/m/1000361181/

本文爲阿里雲原創內容,未經允許不得轉載。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章