chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內不再提示

Agith:openEuler 運維變更觀測工具

openEuler ? 來源:openEuler ? 2023-11-20 17:10 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

背景

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

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

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

Agith與變更影響面

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

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

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

圖1 變更影響面示例

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

Agith架構

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

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

圖2Agith架構圖

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

應用場景

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

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

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

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

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

路線圖

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

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

表1 Agith開發(fā)計劃

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

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

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

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

圖3 運維變更行為

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

    關注

    39

    文章

    7976

    瀏覽量

    140111
  • 節(jié)點
    +關注

    關注

    0

    文章

    222

    瀏覽量

    24983
  • 運維
    +關注

    關注

    1

    文章

    270

    瀏覽量

    8178

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

    【深圳】誠聘開發(fā)工程師

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

    【上?!扛呒?b class='flag-5'>運工程師

    工具優(yōu)先考慮;5.熟悉XenKVMOpenStack等虛擬化技術優(yōu)先考慮;6.熟悉LB產(chǎn)品者更佳;7.熟悉CactiNagios等開源監(jiān)控工具;8.熟悉
    發(fā)表于 07-13 15:38

    linux命令大全

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

    實戰(zhàn):阿里巴巴 DevOps 轉型后的平臺建設

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

    學習Linux發(fā)展方向

    發(fā)布等工作需求,如果公司較小的話,可能還會兼職一下網(wǎng)管、網(wǎng)絡工程師、數(shù)據(jù)庫管理員、安全工程師、技術支持等職務?! ∧敲?,涉及到的Linux平臺上的工具有哪些呢?答曰:Linux系統(tǒng),Linux
    發(fā)表于 07-25 17:15

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

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

    何為智能?

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

    ansible-first-book 自動化工具

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

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

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

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

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

    網(wǎng)絡設備自動化工具—ansible入門筆記介紹

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

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

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

    華為云發(fā)布全???b class='flag-5'>觀測平臺 AOM,以 AI 賦能應用觀測

    9 月 19 日,華為全聯(lián)接大會 2024 舉辦期間,在“ AI 賦能應用現(xiàn)代化,加速軟件生產(chǎn)力躍升”為主題的論壇上,華為云發(fā)布全棧 可觀測平臺AOM ,以 AI 賦能應用觀測
    的頭像 發(fā)表于 10-15 09:54 ?984次閱讀
    華為云發(fā)布全???b class='flag-5'>觀測</b>平臺 AOM,以 AI 賦能應用<b class='flag-5'>運</b><b class='flag-5'>維</b>可<b class='flag-5'>觀測</b>

    云服務器計算池的團隊需要掌握的網(wǎng)絡工具

    云服務器計算池的團隊需要掌握多種網(wǎng)絡工具,以實現(xiàn)高效的網(wǎng)絡監(jiān)控、故障排查、安全管理和資源優(yōu)化。以下是團隊常用的網(wǎng)絡
    的頭像 發(fā)表于 02-17 15:50 ?311次閱讀