sysAK(青囊)系統運維工具集:如何實現高效自動化運維?

来源:https://www.cnblogs.com/blueice1204/archive/2023/01/06/17030171.html
-Advertisement-
Play Games

系統運維 SIG 已在龍蜥社區建立 SIG 組。目前 sysAK 工具集已經在龍蜥社區開源,並且在系統運維 SIG、跟蹤診斷 SIG 一起共建,希望大家後期加入 SIG 一起討論共建。本文將從技術角度分享 sysAK 系統。一、 What is sysAKsysAK 是我們去年才提的概念,但裡面的功 ...


系統運維 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 中進行開源.

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 目錄 PostgreSQL(01): Ubuntu20.04/22.04 PostgreSQL 安裝配置記錄 PostgreSQL(02): PostgreSQL常用命令 PostgreSQL 常用命令 滿足驗證條件的用戶, 可以用psql命令進入pg的命令行交互模式 用戶管理相關 查看用戶列表 \ ...
  • 摘要:主要介紹華為雲在HBase 2.x內核所做的一些MTTR優化實踐。 本文分享自華為雲社區《華為雲在HBase MTTR上的優化實踐》,作者: 搬磚小能手。 隨著HBase在華為雲的廣泛應用,HBase的數據節點規模也越來越大。最新版本的MRS可支持的單集群HBase數據節點規模可達到1024節 ...
  • 一:背景 1. 講故事 在 SQLSERVER 中有非常多的索引,比如:聚集索引,非聚集索引,唯一索引,複合索引,Include索引,交叉索引,連接索引,奇葩索引等等,當索引多了之後很容易傻傻的分不清,比如:複合索引 和 Include索引,但又在真實場景中用的特別多,本篇我們就從底層數據頁層面釐清 ...
  • 如果覺得文章對你有幫助,點贊、收藏、關註、評論,一鍵四連支持,你的支持就是我創作最大的動力。 ❤️ 本文原創聽蟬 公眾號:碼里特別有禪 歡迎關註原創技術文章第一時間推送 ❤️ 前言 沒錯,繼Flutter 異常監控 | 框架 Catcher 原理分析 之後,帶著那顆騷動的好奇心我又搗鼓著想找其他 F ...
  • 模塊化編程 1.基本介紹 傳統的非模塊化開發有如下的缺點:(1)命名衝突(2)文件依賴 JavaScript代碼越來越龐大,JavaScript引入模塊化編程,開發者只需要實現核心的業務邏輯,其他都可以載入別人已經寫好的模塊 JavaScript使用“模塊”(module)的概念來實現模塊化編程,解 ...
  • 這裡給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 微信調用jssdk全流程詳解 系統框架使用的是前後端分離,前端使用vant,後端是springboot 一、網頁授權的時序圖 二、公眾號配置 1. 綁定功能變數名稱 登錄微信公眾平臺進入“公眾號設置”的“功能設置”里填寫“JS介面安全功能變數名稱”。也就 ...
  • 摘要:if-else 語句對於程式員來說,是非常非常熟悉的一個判斷語句,我們在日常開發和學習中都經常看見它。 本文分享自華為雲社區《JavaScript代碼之美—代碼優化,減少if-else冗餘的技巧》,作者:黛琳ghz。 前言 if-else 語句對於程式員來說,是非常非常熟悉的一個判斷語句,我們 ...
  • 摘要:session 和 token 本質上是沒有區別的,都是對用戶身份的認證機制,只是他們實現的校驗機制不一樣而已。 本文分享自華為雲社區《Session/Cookie/Token 還傻傻分不清?》,作者: 龍哥手記。 相信項目中用JWT Token的應該不在少數,但是發現網上很多文章對 toke ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...