從新手小白到運維大咖,SysOM 多場景當機例項解析 | 龍蜥技術

OpenAnolis小助手發表於2023-03-09

文/劉馨蔚,系統運維 SIG Contributor

“老闆老闆,今天業務又發生了抖動,具體原因暫時還不能快速查清,再給我點時間吧。”

“老闆老闆,這個問題我好像解過,但是也不太確定,我再重新分析一次吧。”

“老闆老闆......”

不知道你們或者身邊的人是不是也遇到過這個問題:伺服器無端重啟,造成業務抖動,但是不知道具體發生了什麼;明明分析過的問題但是又不能確定是否是同一個問題;無法感知叢集的健康狀況,無法及時主動地運維。這些問題不僅會影響業務,投入過多的運維人力,無法沉澱已有的運維經驗。下文將會從多個場景來展示當機中心的應用場景。

01 場景 1:運維人員瞭解叢集當機狀況

當發生業務中斷、不相應等突發情況時,我們可以透過當機中心檢視當前機器是否存在當機以及歷史當機,可以快速準確地與現有的業務異常進行關聯,同時及時地進行主動運維,減少投入過多人力的排查和時間。當機中心將會檢測並實時收集當機,及時上報展示到當機中心首頁便於運維人員發現、上報和解決問題。如下圖所示,當機中心的首頁除了展示已發生的當機列表外,還提供了叢集的當機指標和當機列表資訊,其中包括核心指標、總當機列表和總覽叢集的當機狀況。使用者可以快速直觀地觀測到叢集的當機情況,快速瞭解叢集內機器的健康情況。

從新手小白到運維大咖,SysOM 多場景當機例項解析 | 龍蜥技術

02 場景 2:新手小白都能看懂的當機詳情與自動關聯解決方案

從當機列表中點選檢視某次當機的當機詳情,將會跳轉至當機詳情頁面。

當機詳情能為運維新手甚至小白提供能看懂的當機資訊,透過 SysOM 後臺自動分析後,在頁面展示與以往歷史呼叫棧相同的當機、當機的時間、當機的主機和主機關鍵資訊、當機的關鍵函式和執行的程式,硬體當機還是軟體當機等資訊。同時還提供可以線上分析 vmcore 的網頁,方便直接快捷地分析問題。

從新手小白到運維大咖,SysOM 多場景當機例項解析 | 龍蜥技術

從新手小白到運維大咖,SysOM 多場景當機例項解析 | 龍蜥技術

值得一提的是,當機中心提供了一整套解決方案的管理系統,即使不會分析當機,也能夠快速檢視已經關聯的解決方案。使用者可透過當機詳情頁面的“錄入解決方案”按鈕來對方案的錄入。使用者透過分析當機後可以將相關的解決方案錄入並與某個當機關聯,不僅方便日後檢視而且可以記錄沉澱這個解決方案,當相似當機發生時後臺會執行當機相似匹配的演算法,自動關聯到相似當機的解決方案。

03 場景 3:運維老手可透過呼叫棧查詢歷史的當機

如果當整個叢集的當機變多後,如何除了利用一些主機名等關鍵資訊來對當機進行篩選呢?SysOM 當機中心提供透過呼叫棧來反向搜尋已發生的當機,這種情況可能發生在查詢一臺不在 SysOM 管控叢集機器的當機呼叫棧是否也出現在管控叢集的當機中,或者可以是運維人員想要透過呼叫棧來直接查詢歷史當機。

從新手小白到運維大咖,SysOM 多場景當機例項解析 | 龍蜥技術

點選標題上的當機分析->當機匹配後跳轉到當機匹配的頁面。當機匹配主要提供了匹配相似當機的功能,在相似呼叫棧的文字框中輸入某次當機的關鍵呼叫棧,將會和現有歷史的當機進行相似匹配。

如下輸入了核心的當機呼叫棧後將會在叢集內已發生的當機中搜尋相似的當機,並且給出相似度:

從新手小白到運維大咖,SysOM 多場景當機例項解析 | 龍蜥技術

04 場景 4:快速匹配上游社群的問題

雖然 SyOM 提供了一整套解決方案的管理系統,並且相同當機發生後會自動關聯到之前已有當機的解決方案,但是這套管理系統最開始是沒有任何知識庫的,需要運維人員分析後,錄入知識庫不斷地積累知識庫。為此 SysOM 特有地提供了一種快速匹配上有社群當機解決方案的方法,在沒有任何已知沉澱知識庫的情況下也能快速匹配上游社群已知當機問題的解決方案,同時可以講匹配到的方案沉澱到自己的知識庫中。

例如發生了一個當機後出現瞭如下的當機日誌:

[70918341.089708] BUG: unable to handle kernel NULL pointer dereference at (null)

[70918341.098547] IP: [<ffffffffxxxxxxxx>] ovl_cleanup+0x2x/0xd0 [overlay]

...

[70918341.372226] Call Trace:

[70918341.375674] [<ffffffffxxxxxxxx>] ovl_cleanup_whiteouts+0x7x/0xd0 [overlay]

[70918341.383698] [<ffffffffxxxxxxxx>] ovl_clear_empty+0x2x/0x2e0 [overlay]

[70918341.391336] [<ffffffffxxxxxxxx>] ovl_check_empty_and_clear+0x7x/0x90 [overlay]

[70918341.399666] [<ffffffffxxxxxxxx>] ovl_do_remove+0x1x/0x470 [overlay]

[70918341.414296] [<ffffffffxxxxxxxx>] ovl_rmdir+0x1x/0x20 [overlay]

[70918341.421250] [<ffffffffxxxxxxxx>] vfs_rmdir+0xax/0x100

[70918341.427445] [<ffffffffxxxxxxxx>] do_rmdir+0x1ax/0x200

[70918341.447782] [<ffffffffxxxxxxxx>] SyS_unlinkat+0x2x/0x40

[70918341.454124] [<ffffffffxxxxxxxx>] system_call_fastpath+0x1x/0x1b

透過 SysOM 的 Upstream 匹配,可以直接透過當機日誌匹配到上游解決次當機的方案:

疑似上游社群解決方案:

1.

2.

3.

透過分析後得出第一個上有社群解決方案為本當機的解決方案。這個上有社群解決方案的匹配搜尋方法即將開源到 SysOM 中,歡迎關注與指導。

05 總結

SysOM 的當機中心是一個集當機收集、當機展示和問題匹配的功能平臺。當機中心在提供便捷、使用者友好的管理介面同時,也為使用者提供問題積累沉澱、問題智慧匹配的功能,實現了更自動化和智慧的運維,再也不怕無法及時感知當機和重複投入已知問題的情況。目前當機中心的程式碼已開源到 SysOM 中,歡迎大家點贊批評。( )

可能需要的預備知識:

1、當機:指作業系統無法從一個嚴重系統錯誤中恢復過來,或系統硬體層面出問題,以致系統長時間無響應,而不得不重新啟動計算機的現象。

2、當機資訊:主機透過 kdump 等手段,可轉儲當機時主機的日誌資訊和作業系統的 core dump 資訊(vmcore),以此來分析當機的原因。

3、除錯 vmcore:類似於 gdb 除錯,除錯 vmcore 透過 crash 軟體來對當機儲存下來的 core 檔案進行分析,可分析當機的當機函式、呼叫棧和記憶體資訊等。

4、呼叫棧:本文中的呼叫棧都是指當機時發生異常的 CPU 上的函式呼叫鏈,呼叫棧從下至上的展示了當前的函式呼叫關係。

—— 完 ——


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70004278/viewspace-2938945/,如需轉載,請註明出處,否則將追究法律責任。

相關文章