1. 程式人生 > >ECS運維:操作系統有異常?診斷日誌來幫忙!

ECS運維:操作系統有異常?診斷日誌來幫忙!

如何 media err 調試 選擇 異常錯誤 找到 啟動 ani

摘要: 操作系統配置不當或程序過載可能會造成ECS系統內核崩潰,這將導致夯機、異常重啟或無法正常啟動等問題。為了分析根本原因,運維人員通常要查看系統日誌,但此時也許實例已經無法正常遠程連接,使得分析診斷非常困難。阿裏雲提供了一鍵查看系統日誌和屏幕截圖功能,為運維人員提供一個方便的工具,支持系統故障的分析。

雲服務器 ECS(Elastic Compute Service)是一種彈性可伸縮的計算服務,助您降低 IT 成本,提升運維效率,使您更專註於核心業務創新。阿裏雲使用嚴格的IDC標準、服務器準入標準以及運維標準,保證雲計算整個基礎框架的高可用性、數據的可靠性以及雲服務器ECS的高可用性。但在使用ECS實例的過程中,仍然有可能會出現由於操作系統配置不當或程序過載等原因導致系統內核崩潰的情況,這將導致系統夯機、異常重啟或無法正常啟動等問題。為了分析根本原因而避免問題反復發生,運維人員通常依靠查看系統日誌來做分析診斷,然而此時也許實例已經無法正常SSH遠程連接,讓定位故障原因的過程變得非常困難。現在阿裏雲提供了一鍵查看系統日誌和屏幕截屏的功能,為運維人員提供了一個方便的工具,給系統異常故障的分析診斷提供更多的支持。

為什麽需要系統串口日誌
當ECS實例發生了夯機、異常重啟、或者無法正常啟動時,運維人員需要定位導致問題發生的根本原因,及時解決問題並且避免該問題反復發生。

ECS實例運行的穩定性會受多方面影響,概括來說會存在於兩個層面,一方面是承載ECS實例運行的基礎設施硬件和軟件環境,另一方面是ECS實例操作系統內部的運行環境。如果實例的異常狀態是由於承載其運行的基礎設施硬件或軟件出現故障而導致的,阿裏雲會向用戶提供系統事件信息,便於您了解這方面問題對實例運行的影響;如果實例的異常狀態是由於操作系統內部內核bug、系統配置不當或程序過載等原因而導致的,就需要查看操作系統層面的日誌信息來診斷問題了。
(如果您希望了解更多ECS系統事件的信息,可以查看幫助文檔和雲棲博客讓運維更高效:關於ECS系統事件)

在Linux操作系統層面,經過設置後,啟動日誌和異常故障等信息會通過服務器的串口(串行端口,Serial Port)打印輸出。如果是物理服務器,運維人員通常會通過IPMI帶外接口獲得操作系統通過串口打印輸出的日誌信息。對於雲服務器,運維人員同樣需要這方面的日誌信息幫助對異常故障做診斷分析,因此,雲服務器的系統串口日誌是運維診斷的重要一環。

系統串口日誌會包含什麽信息
系統通過串口打印輸出的日誌會包含兩種類型的信息,一類是系統啟動開機時的日誌內容,另一類是系統內核故障或異常時的日誌內容。

  1. Linux操作系統啟動開機時,默認會將開機過程產生的日誌信息輸出到串口。開機信息會被系統內核存儲在ring buffer中,會顯示系統架構、CPU、RAM、掛載的硬件以及軟件啟動相關的系統信息。這類信息幫助系統管理員了解系統是否正常啟動,檢查預先設定的應用程序是否隨系統啟動等情況。

  2. 內核故障或異常錯誤發生時,系統會按照配置的日誌級別(由內核參數kernel.printk決定,默認級別為4 - KERN_WARNING)將對應信息輸出到串口。內核錯誤(Kernel panic)是指操作系統在監測到內部的致命錯誤,並無法安全處理此錯誤時采取的動作。操作系統內核中處理Kernel panic的子程序通常被設計用來向串口控制臺輸出錯誤信息,以便用於故障的調試,然後等待系統被手動重新引導,或自動重新引導。該程序提供的技術性信息通常是用來幫助系統管理員或者軟件開發者診斷問題的。

附:內核日誌級別:
日誌級別 對應名稱 說明
0 KERN_EMERG The system is unusable.
1 KERN_ALERT Actions that must be taken care of immediately.
2 KERN_CRIT Critical conditions.
3 KERN_ERR Noncritical error conditions.
4 KERN_WARNING Warning conditions that should be taken care of.
5 KERN_NOTICE Normal, but significant events.
6 KERN_INFO Informational messages that require no action.
7 KERN_DEBUG Kernel debugging messages, output by the kernel if the developer enabled

如何使用系統串口日誌
使用ECS控制臺時,對於狀態為“運行中”的ECS實例,您可以通過實例列表或實例詳情的操作菜單,獲取實例系統日誌。

控制臺操作
登錄 ECS管理控制臺。
單擊左側導航欄中的 實例。
選擇 地域。
找到需要排查異常故障的實例的 操作 菜單。
單擊 更多 > 運維和診斷 > 獲取實例系統日誌 查看日誌。
也可以選中需要排查異常故障的實例,單擊實例進入 實例詳情頁,點擊 更多 > 獲取實例系統日誌 查看日誌。

如下圖所示,當系統正常啟動時,會顯示啟動過程中的相關日誌內容:
技術分享圖片

當系統出現內核錯誤時,會顯示相關錯誤信息:
技術分享圖片

結合日誌中所顯示的內容,可以幫助運維人員檢查系統啟動是否正常,以及診斷操作系統層面發生的異常故障。

此外,在某些時刻系統也會將異常信息輸出到顯示器(比如Windows系統“藍屏”),由於雲服務器沒有連接物理顯示器,因此可以使用獲取實例屏幕截圖的功能查看異常狀態下輸出到屏幕的信息,為問題分析提供輔助。

使用OpenAPI時,您可以使用 GetInstanceConsoleOutput ,獲得通過Base64編碼輸出的日誌內容。使用 GetInstanceScreenshot ,獲得通過Base64編碼輸出的屏幕內容。

請註意,目前只有在 運行中 狀態的實例可以查看系統日誌和屏幕截屏。

寫在最後
讓ECS更好用是我們持續追求的目標。ECS主動運維和系統事件機制,可以提前發現基礎設施層面對ECS運行的影響,並通過事件讓運維人員及時感知並采取預防性措施,避免對在行業務的影響;而今天介紹的診斷日誌功能,可以幫助運維人員在面對實例個體由於操作系統內部原因出現異常的情況下,分析原因避免同樣的問題反復發生威脅業務連續性。後續我們會推出更多的運維工具和能力,讓您使用ECS的過程更放心、更透明。敬請期待!
原文鏈接請添加鏈接描述?
本文為雲棲社區原創內容,未經允許不得轉載。

ECS運維:操作系統有異常?診斷日誌來幫忙!