在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Agith:openEuler 運維變更觀測工具

openEuler ? 來源:openEuler ? 2023-11-20 17:10 ? 次閱讀

針對 openEuler 運維變更過程觀測困難的問題,華為 2012服務實驗室 OSMind 團隊開發了基于 eBPF 的變更觀測工具—— Agith。Agith 可以識別與變更相關的行為,并將變更過程表示為一種拓撲結構——變更影響面。通過變更影響面可以完成變更告警、審計、根因定位、依賴分析等功能。

背景

云計算成為信息時代的算力底座,服務千家萬戶。作為重要的基礎實施,穩定壓倒一切。但同時云計算也在追求擴大規模以及適配上層業務。因此帶來頻繁的變更難免會引發故障。

變更任務大致可以分為兩類。第一類白屏變更是通過運維工具執行操作,適用于版本變更、資源擴縮容、災備倒換等流程固定的任務。但是靈活性差,只能執行標準流程。另一類黑屏變更需要運維人員登錄系統,通過執行命令來完成變更過程。黑屏變更簡單靈活,適合中小型企業的 IT 運維與復雜的運維任務,例如根因分析或故障修復。黑屏變更是變更不確定性的主要來源,也更容易引發故障,需要加強可觀測性。

目前對于變更過程的主要觀測方法是記錄變更過程中運維人員輸入的所有命令。在變更結束后,通過審計監察發現潛在的風險。這種方式需要大量的專家經驗。因為命令日志很難表示變更過程。例如2022-09-12 0000.0 張三 obs_cmd.sh 1818 華東 10.164.179.21,包含時間、人員、主機IP,主機集群(華東)和最重要的命令(obs_cmd.sh 1818)。但是如果沒有專家經驗,這條命令是無法解讀的。

Agith與變更影響面

Agith 是 Agent Smith 的縮寫。這是致敬《黑客帝國》的 Smith 探員。雖然 Smith 探員是電影中的反派角色,但從運維工程師的視角來看,探員是 Matrix 系統中最優秀的運維工程師。Matrix 系統每時每刻有數十億的流量接入,但是探員卻可以感知輕微的變更異常,并通過最近的節點登入以處理故障(Kill Neo)。這種觀測能力正是 Agith 的設計目標。系統每時每刻都在處理大量的請求,包括正常的上層服務與變更任務。Agith 需要從中區分出變更任務,將變更的行為記錄下來,整理為變更影響面拓撲圖。

Agith 是一款面向變更過程的觀測工具。相比只記錄命令名,Agith 更關注命令的行為。這種區別體現在最終輸出上。傳統方法輸出的是運維人員的所有輸入,組織為日志數據。而 Agith 的輸出的是變更影響面,如下圖所示:

4542e9c4-852c-11ee-939d-92fbcf53809c.png

圖1 變更影響面示例

橙色節點表示進程,紫色節點表示文件,藍色節點表示一個遠程節點。每種類型節點的都有對應的屬性信息展示在右側列表中。例如進程節點屬性信息有進程工作路徑、執行命令名、PID 等。文件節點有 inode、文件路徑。遠程節點有 IP-Port 地址,交互信息等。節點之間的邊存儲了系統調用類型,例如進程節點與文件節點可調用類型有 read、write、unlink(刪除)。 圖1的變更中,運維人員登錄主機后執行了一條命令 obs_cmd.sh 1818,隨即退出。這個操作反應在圖中是進程節點P1(bash)創建了進程節點P2(obs_cmd.sh 1818)。進程節點 P2 在執行中又創建了一個 python 腳本(進程節點P3)與一個 shell 腳本(進程進程 P4)。進程節點 P3 創建了一個文件節點 F1。而進程節點 P4 修改了文件 F1,并且通過 curl 命令(進程節點 P5)訪問了一個遠程節點 N1 的 1818 端口。點擊藍色節點可以看到這次訪問的 URL 鏈接。 相比命令日志,Agith 更關注命令的行為。這種方法將無限的命令映射到有限的行為上,方便運維人員理解。只要有這張變更影響面拓撲圖,任何一個運維人員都可以理解此次變更的操作,不需要復雜的專家經驗。

Agith架構

Agith 在設計中采用數據流與控制流分離的策略。eBPF 模塊、Consumer、Repository 和 Monitor 可以組成數據篩選-采集-整理-輸出的數據流(圖 2 中實線)。控制流(圖 2 中虛線)則以 Controller 模塊為核心,其他模塊受 Controller 模塊的統一管理。啟動時 Controller 模塊檢測環境,分析配置文件,檢查啟動參數。然后依次啟動部署各個模塊。當程序結束時管理各個模塊完成清理任務后依次退出。

455a8700-852c-11ee-939d-92fbcf53809c.png

圖2Agith架構圖

# eBPF 模塊eBPF 模塊包含 eBPF Probes、Traces、Targets 三個部分。這個模塊承擔數據的篩選工作。篩選方法是一種基于動態目標的變更監控技術。該技術首先建立了兩類 map。第一類是 Target map。Target map 保存了監控目標的標識符。例如進程的 pid、文件的 inode、網絡的 IP。第二類是Trace map。Trace map 用于存儲探針獲取的數據。 eBPF Probe 是針對特定的系統調用編寫的探針程序。這些程序被觸發時,首先根據 Target map 判斷系統調用是否與監控目標相關。如果不相關直接返回。如果相關會收集數據寫入Trace map。同時 eBPF Probe 會修改 Target map。例如在創建進程的 clone 系統調用處掛載探針程序。當任何程序執行 clone 系統調用,探針會被觸發。探針程序檢測進程 pid 是否在 Target map 中。如果不存在就返回繼續執行 clone。如果存在,會將返回值即子程序的 pid 寫入 Trace map,然后將子程序的 pid添加到 Target map 中。這樣子程序也被納入監控范圍內了。# Consumer 模塊Consumer 模塊承擔采集工作,即讀取并緩存 Trace map 的數據。這個過程涉及讀寫速率控制,數據異常處理,數據融合等。 Consumer 讀取的數據類似 strace 得到系統調用記錄。這些數據采用“主謂賓”的結構體存儲。例如pid:411962, syscall:read, ret: 18, time:974333207983984, ready:1, obj:{fd:3, i_ino:2505217}是一條監控 read 系統調用得到的記錄。“主語”是 pid:411962,表示一個進程號為 411962 的進程。“謂語”是 syscall:read,表示讀取操作。“賓語”是 obj:{fd:3, i_ino:2505217}表示是一個文件,文件句柄號是 3,inode 編碼是 2505217。除此之外還有這次系統調用的時間和返回值。這條記錄的含義是進程 411962 讀取了文件 2505217。這條信息非常簡陋。進程執行的程序名是什么?讀取的文件名是什么?這些信息包含在之前的記錄中。例如進程名包含在在 exec 系統調用中,文件名包含在 openat 系統調用中。# Repository & MonitorRepository 承擔整理與輸出工作。它存儲 Consumer 讀取的記錄,將信息填充到變更影響面圖中。例如打開一個新文件,會創建一個文件節點,并在進程與文件之間連接一條邊。除此之外 Repository 負責向 Monitor 模塊傳遞信息。 Monitor 模塊負責告警。如果在采集數據的過程中發現高危操作,例如刪除重要的配置文件, Monitor 模塊會發送告警。Monitor 的數據來源于 Repository。因為只有 Repository 存儲的圖中才能掌握完整的上下文信息。僅僅依靠 Consumer 的記錄不足以判定是否是高危操作。

應用場景

Agith功能是觀測變更過程,最終得到的變更影響面可以應用在風險告警、根因定位、變更審計、依賴分析等。

風險告警可以直接使用 Agith。首先在配置文件中聲明含有風險的行為,例如修改某個文件,訪問某項服務,刪除進程等等。Agith 在整理過程中發現這類數據,會向配置文件中的郵箱發送告警信息。例如美聯航故障事件中刪除文件的行為,Agith 可以發現這種異常操作。目前郵件告警功能在開發中,敬請期待。

根因定位是變更影響面最重要的用途。相比命令日志,變更影響面數據含有更細粒度的行為數據,可以更容易地發現與故障相關的命令行為。

變更審計可以在變更后檢查是否有超出預期的行為。對于重要的變更操作,可以在灰度環境中先執行一遍,獲取變更影響面。然后在目標環境中執行,得到另一份變更影響面。將兩份數據比較,可以發現在變更操作中有沒有錯誤操作。

依賴分析是獲取一個服務在運行時依賴的各種本地資源與周邊服務。這個功能雖然與變更無關。但是只要在終端中啟動這個服務,Agith 就可以獲取該服務的所有行為,從而得到所依賴的各種資源,例如動態依賴庫,配置文件等。

路線圖

當前 Agith 的功能只能覆蓋進程、文件、網絡的一部分行為。但是黑屏變更過程中命令行為遠遠超過這部分。

456de174-852c-11ee-939d-92fbcf53809c.png

表1 Agith開發計劃

表1是未來 Agith 計劃覆蓋的變更行為。變更行為的整理是一個復雜的過程。我們一開始采用的方案是自底向上。無論什么樣的上層服務,從OS的視角來看無非5類行為:進程,內存,文件,網絡,外設。只要對這5類行為監控,就可以覆蓋所有的命令行為。但是實踐并非如此。

首先過度抽象將失去數據的價值。例如執行 mysql、docker、kubernetes 的命令,都是向已有的服務進程發送命令,可以統一為進程交互行為。但是如果只有交互的進程名,根本不能從中判定風險。其次過度抽象意味著所有的底層行為都是需要記錄的,會產生巨大的數據冗余。例如一次進程啟動,會頻繁申請內存,記錄這些數據沒有意義。

由此我們認識到觀測這張網既不能太粗,也不能太細,應當結合運維需求靈活調整。所以我們采用了一種自頂向下的方法。首先收集 239萬條變更命令,逐條去分析變更命令,得出這條命令所產生的數據。然后根據數據的相似性合并。例如文件都會有文件名,容器類操作有容器 id 或者鏡像 id。合并過程中會舍棄兩者差別的數據項。如果這個數據項對于運維價值不大,就是可以舍棄的。如果這個數據對運維很重要,說明這個合并是錯誤的。在整理的過程中有太多收益與成本的博弈,相信未來還會不斷演進。我們最終梳理出需要監控的行為如下圖。

457cb0dc-852c-11ee-939d-92fbcf53809c.png

圖3 運維變更行為

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 云計算
    +關注

    關注

    39

    文章

    7853

    瀏覽量

    137935
  • 節點
    +關注

    關注

    0

    文章

    220

    瀏覽量

    24539
  • 運維
    +關注

    關注

    1

    文章

    263

    瀏覽量

    7640

原文標題:Agith:openEuler 運維變更觀測工具

文章出處:【微信號:openEulercommunity,微信公眾號:openEuler】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Linux必備的13款實用工具,你都用過嗎?

    本文介紹幾款 Linux 比較實用的工具,希望對 Linux 管理員有所幫助。
    發表于 11-17 09:17 ?2440次閱讀

    誠聘高級自動化工程師

    獵頭職位:高級自動化工程師【合肥】工作職責: 1、根據基礎架構管理需求,規劃設計自動
    發表于 12-12 10:37

    【深圳】誠聘開發工程師

    獵頭推薦職位:開發工程師工作職責:1. 負責平臺開發、自動化平臺維護、研究維新技術;2. 負責IT
    發表于 07-04 14:34

    【上海】高級工程師

    工具優先考慮;5.熟悉XenKVMOpenStack等虛擬化技術優先考慮;6.熟悉LB產品者更佳;7.熟悉CactiNagios等開源監控工具;8.熟悉
    發表于 07-13 15:38

    linux命令大全

    Linux高端學習需要掌握大量的命令及相關工具,通讀bash man page、掌握VIM使用、了解SSH是Linux高端工程師必備
    發表于 03-15 16:36

    實戰:阿里巴巴 DevOps 轉型后的平臺建設

    ,配置驅動變更”前因后果的思考。工具與方法論精益發現價值價值來源于用戶的需求,而不是自己的YY,我們的價值來源于用戶。精益對我最大的感觸就是要發現價值。精益思想,什么東西是有價值的
    發表于 04-12 13:23

    學習Linux發展方向

    發布等工作需求,如果公司較小的話,可能還會兼職一下網管、網絡工程師、數據庫管理員、安全工程師、技術支持等職務。  那么,涉及到的Linux平臺上的工具有哪些呢?答曰:Linux系統,Linux
    發表于 07-25 17:15

    虛擬化故障怎么辦?虛擬化怎么解決?

    團隊能力和工具!在此特殊時期,很多運人員面臨著工具
    發表于 02-21 21:32

    何為智能

    一、何為智能?生產設備/裝備是工業的重要生產工具,其可靠性、性能對工業生產有重大影響。隨著工業大數據推進,設備的智能被定義為一個重要
    發表于 07-12 06:34

    ansible-first-book 自動化工具

    ansible-first-book 自動化工具
    發表于 09-08 09:31 ?5次下載

    歐拉 Summit 2021 安全&可靠性&專場:主流備份技術探討

    openEuler Summit 2021 安全&可靠性&專場上,高沖對為數據安全而生,統信軟件備份還原工具分享。
    的頭像 發表于 11-10 17:42 ?1859次閱讀
    歐拉 Summit 2021 安全&amp;可靠性&amp;<b class='flag-5'>運</b><b class='flag-5'>維</b>專場:主流備份技術探討

    華為云應用管理平臺獲評中國信通院可觀測性評估先進級

    近日,華為云應用管理平臺參與了中國信息通信研究院(以下簡稱“中國信通院”)主辦的“穩保行動”的可觀測性平臺能力評估。經過中國信通院的檢驗,華為云應用
    的頭像 發表于 07-01 21:16 ?554次閱讀
    華為云應用<b class='flag-5'>運</b><b class='flag-5'>維</b>管理平臺獲評中國信通院可<b class='flag-5'>觀測</b>性評估先進級

    網絡設備自動化工具—ansible入門筆記介紹

    Ansible是一款自動化工具,基于Python開發,集合了眾多運工具 (Puppet、CFengine、Chef、SaltStack
    的頭像 發表于 01-15 13:46 ?2128次閱讀
    網絡設備自動化<b class='flag-5'>運</b><b class='flag-5'>維</b><b class='flag-5'>工具</b>—ansible入門筆記介紹

    管理平臺:從基礎到智能的飛躍

    管理平臺為企業提供了從基礎到智能的飛
    的頭像 發表于 04-16 16:26 ?507次閱讀

    華為云發布全棧可觀測平臺 AOM,以 AI 賦能應用觀測

    9 月 19 日,華為全聯接大會 2024 舉辦期間,在“ AI 賦能應用現代化,加速軟件生產力躍升”為主題的論壇上,華為云發布全棧 可觀測平臺AOM ,以 AI 賦能應用觀測
    的頭像 發表于 10-15 09:54 ?594次閱讀
    華為云發布全棧可<b class='flag-5'>觀測</b>平臺 AOM,以 AI 賦能應用<b class='flag-5'>運</b><b class='flag-5'>維</b>可<b class='flag-5'>觀測</b>
    主站蜘蛛池模板: 男人操女人视频网站 | 曰本aaaaa毛片午夜网站 | 欧美三级黄| 日韩种子| 色屁屁www影院免费观看视频 | 天天色综合天天 | 日韩一级免费毛片 | 成人在线网站 | 在线天堂中文新版有限公司 | 欧美色综合高清免费 | 69女poren60| 免费网站日本 | 欧美性视频一区二区三区 | 亚洲综合色在线 | 天天爽夜夜爽人人爽曰喷水 | 美女扒开尿口让男生添 漫画 | 黄色日本网站 | 国产精品三级a三级三级午夜 | 在线欧美色 | 人人精品| 亚洲人成人77777网站 | 欧美操bb | 中国黄色一级毛片 | 在线视免费频观看韩国aaa | 播色屋| 一女被两男吃奶玩乳尖口述 | 亚洲欧美日本视频 | 激情五月激情综合网 | 日本加勒比高清一本大道 | 女人张腿让男桶免费视频观看 | 男人边吃奶边爱边做视频日韩 | 天天做夜夜爱 | 欧美一欧美一区二三区性 | freesexvideo性欧美tv | sao虎在线精品永久 se94se欧美 | 久久综合偷偷噜噜噜色 | 免费一区在线观看 | 特黄特黄一级高清免费大片 | 天天插天天射 | 夜夜精品视频 | 欧美影院一区二区 |