摘要:?操作系統配置不當或程序過載可能會造成ECS系統內核崩潰,這將導致夯機、異常重啟或無法正常啟動等問題。為了分析根本原因,運維人員通常要查看系統日志,但此時也許實例已經無法正常遠程連接,使得分析診斷非常困難。阿里云提供了一鍵查看系統日志和屏幕截圖功能,為運維人員提供一個方便的工具,支持系統故障的分析。
云服務器 ECS(Elastic Compute Service)是一種彈性可伸縮的計算服務,助您降低 IT 成本,提升運維效率,使您更專注于核心業務創新。阿里云使用嚴格的IDC標準、服務器準入標準以及運維標準,保證云計算整個基礎框架的高可用性、數據的可靠性以及云服務器ECS的高可用性。但在使用ECS實例的過程中,仍然有可能會出現由于操作系統配置不當或程序過載等原因導致系統內核崩潰的情況,這將導致系統夯機、異常重啟或無法正常啟動等問題。為了分析根本原因而避免問題反復發生,運維人員通常依靠查看系統日志來做分析診斷,然而此時也許實例已經無法正常SSH遠程連接,讓定位故障原因的過程變得非常困難?,F在阿里云提供了一鍵查看系統日志和屏幕截屏的功能,為運維人員提供了一個方便的工具,給系統異常故障的分析診斷提供更多的支持。
為什么需要系統串口日志
當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的子程序通常被設計用來向串口控制臺輸出錯誤信息,以便用于故障的調試,然后等待系統被手動重新引導,或自動重新引導。該程序提供的技術性信息通常是用來幫助系統管理員或者軟件開發者診斷問題的。
附:內核日志級別:
日志級別對應名稱說明0KERN_EMERGThe system is unusable.1KERN_ALERTActions that must be taken care of immediately.2KERN_CRITCritical conditions.3KERN_ERRNoncritical error conditions.4KERN_WARNINGWarning conditions that should be taken care of.5KERN_NOTICENormal, but significant events.6KERN_INFOInformational messages that require no action.7KERN_DEBUGKernel debugging messages, output by the kernel if the developer enabled如何使用系統串口日志
使用ECS控制臺時,對于狀態為“運行中”的ECS實例,您可以通過實例列表或實例詳情的操作菜單,獲取實例系統日志。
控制臺操作
登錄 ECS管理控制臺。
單擊左側導航欄中的?實例。
選擇?地域。
找到需要排查異常故障的實例的?操作?菜單。
單擊?更多?>?運維和診斷?>?獲取實例系統日志?查看日志。
也可以選中需要排查異常故障的實例,單擊實例進入?實例詳情頁,點擊?更多?>?獲取實例系統日志?查看日志。
如下圖所示,當系統正常啟動時,會顯示啟動過程中的相關日志內容:
當系統出現內核錯誤時,會顯示相關錯誤信息:
結合日志中所顯示的內容,可以幫助運維人員檢查系統啟動是否正常,以及診斷操作系統層面發生的異常故障。
此外,在某些時刻系統也會將異常信息輸出到顯示器(比如Windows系統“藍屏”),由于云服務器沒有連接物理顯示器,因此可以使用獲取實例屏幕截圖的功能查看異常狀態下輸出到屏幕的信息,為問題分析提供輔助。
使用OpenAPI時,您可以使用?GetInstanceConsoleOutput?,獲得通過Base64編碼輸出的日志內容。使用?GetInstanceScreenshot?,獲得通過Base64編碼輸出的屏幕內容。
請注意,目前只有在?運行中?狀態的實例可以查看系統日志和屏幕截屏。
寫在最后
讓ECS更好用是我們持續追求的目標。ECS主動運維和系統事件機制,可以提前發現基礎設施層面對ECS運行的影響,并通過事件讓運維人員及時感知并采取預防性措施,避免對在行業務的影響;而今天介紹的診斷日志功能,可以幫助運維人員在面對實例個體由于操作系統內部原因出現異常的情況下,分析原因避免同樣的問題反復發生威脅業務連續性。后續我們會推出更多的運維工具和能力,讓您使用ECS的過程更放心、更透明。敬請期待!
本文為云棲社區原創內容,未經允許不得轉載。
電子發燒友App
















































評論