天天看點

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的子程式通常被設計用來向序列槽控制台輸出錯誤資訊,以便用于故障的調試,然後等待系統被手動重新開機,或自動重新開機。該程式提供的技術性資訊通常是用來幫助系統管理者或者軟體開發者診斷問題的。

附:核心日志級别:

日志級别 對應名稱 說明
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執行個體,您可以通過執行個體清單或執行個體詳情的操作菜單,擷取執行個體系統日志。

控制台操作
  1. 登入 ECS管理控制台。
  2. 單擊左側導航欄中的 執行個體
  3. 選擇 地域
  4. 找到需要排查異常故障的執行個體的 操作 菜單。
  5. 單擊 更多 > 運維和診斷 擷取執行個體系統日志 檢視日志。
  6. 也可以選中需要排查異常故障的執行個體,單擊執行個體進入 執行個體詳情頁 ,點選   >   檢視日志。

如下圖所示,當系統正常啟動時,會顯示啟動過程中的相關日志内容:

ECS運維:作業系統有異常?診斷日志來幫忙!為什麼需要系統序列槽日志系統序列槽日志會包含什麼資訊如何使用系統序列槽日志寫在最後

當系統出現核心錯誤時,會顯示相關錯誤資訊:

ECS運維:作業系統有異常?診斷日志來幫忙!為什麼需要系統序列槽日志系統序列槽日志會包含什麼資訊如何使用系統序列槽日志寫在最後

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

此外,在某些時刻系統也會将異常資訊輸出到顯示器(比如Windows系統“藍屏”),由于雲伺服器沒有連接配接實體顯示器,是以可以使用擷取執行個體螢幕截圖的功能檢視異常狀态下輸出到螢幕的資訊,為問題分析提供輔助。

使用OpenAPI時,您可以使用

GetInstanceConsoleOutput

,獲得通過Base64編碼輸出的日志内容。使用

GetInstanceScreenshot

,獲得通過Base64編碼輸出的螢幕内容。

請注意,目前隻有在

運作中

狀态的執行個體可以檢視系統日志和螢幕截屏。

寫在最後

讓ECS更好用是我們持續追求的目标。ECS主動運維和系統事件機制,可以提前發現基礎設施層面對ECS運作的影響,并通過事件讓運維人員及時感覺并采取預防性措施,避免對在行業務的影響;而今天介紹的診斷日志功能,可以幫助運維人員在面對執行個體個體由于作業系統内部原因出現異常的情況下,分析原因避免同樣的問題反複發生威脅業務連續性。後續我們會推出更多的運維工具和能力,讓您使用ECS的過程更放心、更透明。敬請期待!