sysAK(青囊)系统运维工具集:如何实现高效自动化运维?| 龙蜥技术
簡介:What is sysAK、典型工具介紹、開源 3 方面介紹了 sysAK 系統,目前 sysAK 工具集已經在龍蜥社區開源,并且在系統運維 SIG、跟蹤診斷 SIG 一起共建,希望大家后期加入 SIG 一起討論共建。
編者按:本文整理自「云棲大會龍蜥專場論壇」的技術分享。作者張毅,系統運維SIG 核心人員。另龍蜥專場視頻已經上線至龍蜥社區官網,歡迎觀看:云棲大會龍蜥專場論壇。
系統運維 SIG 已在龍蜥社區建立 SIG 組。目前 sysAK 工具集已經在龍蜥社區開源,并且在系統運維 SIG、跟蹤診斷 SIG 一起共建,希望大家后期加入 SIG 一起討論共建。本文將從技術角度分享 sysAK 系統。
一、 What is sysAK
sysAK 是我們去年才提的概念,但里面的功能來自于我們多年來在阿里百萬規模的服務器運維經驗。在系統運維過程中,資源監控與利用、問題排查與解決是核心訴求,因此 sysAK 覆蓋系統運維的三大典型場景。
1、系統監控。除了常規的一些系統健康指標外,sysAK 還會針對各種系統資源提供更精細化的資源監控,幫助業務運維實現細粒度的運維調度和資源控制,進而高效運用資源。
2、系統診斷。這是對于典型的問題做分析的覆蓋,比如說負載異常、網絡抖動、內存泄漏、IO 毛刺、性能瓶頸、應用異常等等。
3、系統介入。這塊更重要的一點是故障修復,因為我們的系統運維終極目標是減少或者避免業務損失,故障總是不可預期的會發生,發生之后我們能快速發現和分析,也需要對這個問題本身做一些修復或止血,所以 sysAK 也會提供一些系統不具備但常用的故障修復手段在里面。
覆蓋比較全的場景做了可用工具集,其實還是不夠的,另外一個目標是工具怎么做的好用。好用有很多因素,我認為至少要具備以下三點:
1、 對普通用戶來說易懂。比如說現在的一些服務越來越多,系統越來越復雜,現在一些工具對運維來說要去了解背后的專業知識才能使用。運維工具輸出結果要直達問題的核心,用戶直接能看懂,不管是診斷結果或是修復建議。
2、 對運行系統來說影響少。工具本身要盡量減少對系統的擾動,sysAK 通過高性能實現來做,并通過統一的資源框架來做管理,工具可以隨時隨地常態化運行。這樣的話,對系統問題及時發現是非常有好處的。
3、 對其他平臺接口友好,便于被集成。sysAK 工具集可以做成標準化輸出形式,在大型集群平臺上也可以做集群化運維。
二、典型工具介紹
下面可根據一些分類場景的典型工具來看 sysAK 是怎么達到這些目的。
系統運維的話,Load 作為服務器運行負載的一個典型指標,經常被運維人員用于評價系統運行是否良好的一個關鍵因素,其計算本身是比較簡單的,就只是簡單恒量運行任務和 IO 等待任務的數量。對于運維人員來說,他可以方便的拿到當前是哪些進程導致 Load 高,但背后是什么導致,原因各種各樣。系統錯誤或者硬件錯誤都可能會導致 Load 高,只是拿到進程情況,沒有專業的操作系統知識是無法繼續分析的。所以 loadtask 工具會進行全方位的系統分析,除獲取進程運行棧外,還自動分析內存壓力、cpu 壓力、IO 壓力、系統錯誤,并將這些因素和進程棧進行關聯,跟當前進程對照,上下文結合,給出最后精確的 Load 異常原因,讓運維人員直接根據這個作出決策。
內存泄露是內存問題的典型場景,對于內存泄露問題,通常我們的一些工具也是通過分配和釋放、是否匹配的模式去識別泄露點在哪里,但這只是第一步工作。第二步工作才是最關鍵的,因為分配和釋放不匹配其實是正常情況下也會出現,我們要對這個數據特征模式做分析,排除干擾因素,才能知道是否真的泄露了,而這塊的工作花的時間是最多的,所以我們對于內核內存,通過以前的歷史經驗總結出來了一些模型,把數據分析的過程總結放在工具里面,我們通過這個工具可以自動快速的找到泄露點在哪個地方。
鎖競爭分析工具,鎖競爭是比較常見的業務效率低下或突發抖動的原因之一,通過靜態分析我們可以找到鎖的持有者是誰,但是一般業務抖動、長時間性能上不去,這是動態的鎖的過程,ulockcheck 工具會跟蹤鎖的持有釋放流程,對持有鎖的時間時長和頻率進行分析,真正判斷出來到底是因為某一些任務持有過長還是業務競爭鎖比較激烈,并且給出競爭場景的上下文,幫助業務開發人員精準判斷出優化點在哪兒。
第四個是網絡類問題,網絡問題分析更是專業性極強的事情,通常需要抓包并分析數據報文,耗費大量時間。我們開發的 PingTrace 工具通過在內部封裝自定義網絡報文協議,在 server、clinent 對報文經過的全鏈路流程進行記錄,除各個時間段進行精準時間統計外,還包括這個過程中所有的系統中斷或者調度因素的影響,做綜合性判斷,把數據聚合出來,最后給出時延的精確原因。
第五個是性能瓶頸快速界定工具。業界有太多針對不同場景(從應用到硬件)的專業性能調優工具,找到性能瓶頸從程序或者系統級別去修改優化,我們接下來有一個議題也會講性能調優工具。appscan 工具可能更側重于運維人員,對運維人員來說,通常不會涉及到業務或系統具體怎么調優這么細致的力度,他更關注的是系統是否滿足業務運行,哪一類資源是瓶頸,是否可以從運維手段上得到解決,因而除了幫助優化外,appscan 工具盡可能的從應用可能使用到資源的上去分析,幫助運維做出決策。
最后一個工具是ossre,這不是單獨的工具,它其實是我們內部運行的自動化診斷專家系統,前端會分析數據、采集數據,后端會有大數據人工智能的方式去分析這個系統能存在的問題或者是已知問題。其前端集成到了 sysAK 中,也可單獨使用,對于一些不需要后端大量數據也可分析出的已知問題給出解決方案。
三、開源
由于不斷發展和變化的復雜業務環境,工具集也需要持續迭代,以覆蓋更多的場景,因此希望通過社區合作,共同打造出這個跨平臺的統一工具集,為此,工具集支持多種語言格式,c、shell、python、go 等,方便不同語言習慣的開發者進行開發,快速集成;同時針對需要采集系統內核數據的情況,也同時兼容 Linux kernel module 和 eBPF 兩種技術,對內核版本不做限制。
目前 sysAK 工具集的代碼已經在龍蜥社區進行了托管,并且在系統運維 SIG、跟蹤診斷 SIG 中進行開源,希望大家后期加入 SIG 一起討論共建。謝謝!
原文鏈接
本文為阿里云原創內容,未經允許不得轉載。?
總結
以上是生活随笔為你收集整理的sysAK(青囊)系统运维工具集:如何实现高效自动化运维?| 龙蜥技术的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 选轻量应用服务器or云服务器ECS?一图
- 下一篇: 云上应用系统数据存储架构演进