摘要:?操作系統(tǒng)配置不當(dāng)或程序過載可能會造成ECS系統(tǒng)內(nèi)核崩潰,這將導(dǎo)致夯機(jī)、異常重啟或無法正常啟動等問題。為了分析根本原因,運(yùn)維人員通常要查看系統(tǒng)日志,但此時也許實(shí)例已經(jīng)無法正常遠(yuǎn)程連接,使得分析診斷非常困難。阿里云提供了一鍵查看系統(tǒng)日志和屏幕截圖功能,為運(yùn)維人員提供一個方便的工具,支持系統(tǒng)故障的分析。
云服務(wù)器 ECS(Elastic Compute Service)是一種彈性可伸縮的計算服務(wù),助您降低 IT 成本,提升運(yùn)維效率,使您更專注于核心業(yè)務(wù)創(chuàng)新。阿里云使用嚴(yán)格的IDC標(biāo)準(zhǔn)、服務(wù)器準(zhǔn)入標(biāo)準(zhǔn)以及運(yùn)維標(biāo)準(zhǔn),保證云計算整個基礎(chǔ)框架的高可用性、數(shù)據(jù)的可靠性以及云服務(wù)器ECS的高可用性。但在使用ECS實(shí)例的過程中,仍然有可能會出現(xiàn)由于操作系統(tǒng)配置不當(dāng)或程序過載等原因?qū)е孪到y(tǒng)內(nèi)核崩潰的情況,這將導(dǎo)致系統(tǒng)夯機(jī)、異常重啟或無法正常啟動等問題。為了分析根本原因而避免問題反復(fù)發(fā)生,運(yùn)維人員通常依靠查看系統(tǒng)日志來做分析診斷,然而此時也許實(shí)例已經(jīng)無法正常SSH遠(yuǎn)程連接,讓定位故障原因的過程變得非常困難?,F(xiàn)在阿里云提供了一鍵查看系統(tǒng)日志和屏幕截屏的功能,為運(yùn)維人員提供了一個方便的工具,給系統(tǒng)異常故障的分析診斷提供更多的支持。
為什么需要系統(tǒng)串口日志
當(dāng)ECS實(shí)例發(fā)生了夯機(jī)、異常重啟、或者無法正常啟動時,運(yùn)維人員需要定位導(dǎo)致問題發(fā)生的根本原因,及時解決問題并且避免該問題反復(fù)發(fā)生。
ECS實(shí)例運(yùn)行的穩(wěn)定性會受多方面影響,概括來說會存在于兩個層面,一方面是承載ECS實(shí)例運(yùn)行的基礎(chǔ)設(shè)施硬件和軟件環(huán)境,另一方面是ECS實(shí)例操作系統(tǒng)內(nèi)部的運(yùn)行環(huán)境。如果實(shí)例的異常狀態(tài)是由于承載其運(yùn)行的基礎(chǔ)設(shè)施硬件或軟件出現(xiàn)故障而導(dǎo)致的,阿里云會向用戶提供系統(tǒng)事件信息,便于您了解這方面問題對實(shí)例運(yùn)行的影響;如果實(shí)例的異常狀態(tài)是由于操作系統(tǒng)內(nèi)部內(nèi)核bug、系統(tǒng)配置不當(dāng)或程序過載等原因而導(dǎo)致的,就需要查看操作系統(tǒng)層面的日志信息來診斷問題了。
(如果您希望了解更多ECS系統(tǒng)事件的信息,可以查看幫助文檔和云棲博客讓運(yùn)維更高效:關(guān)于ECS系統(tǒng)事件)
在Linux操作系統(tǒng)層面,經(jīng)過設(shè)置后,啟動日志和異常故障等信息會通過服務(wù)器的串口(串行端口,Serial Port)打印輸出。如果是物理服務(wù)器,運(yùn)維人員通常會通過IPMI帶外接口獲得操作系統(tǒng)通過串口打印輸出的日志信息。對于云服務(wù)器,運(yùn)維人員同樣需要這方面的日志信息幫助對異常故障做診斷分析,因此,云服務(wù)器的系統(tǒng)串口日志是運(yùn)維診斷的重要一環(huán)。
系統(tǒng)串口日志會包含什么信息
系統(tǒng)通過串口打印輸出的日志會包含兩種類型的信息,一類是系統(tǒng)啟動開機(jī)時的日志內(nèi)容,另一類是系統(tǒng)內(nèi)核故障或異常時的日志內(nèi)容。
1. Linux操作系統(tǒng)啟動開機(jī)時,默認(rèn)會將開機(jī)過程產(chǎn)生的日志信息輸出到串口。開機(jī)信息會被系統(tǒng)內(nèi)核存儲在ring buffer中,會顯示系統(tǒng)架構(gòu)、CPU、RAM、掛載的硬件以及軟件啟動相關(guān)的系統(tǒng)信息。這類信息幫助系統(tǒng)管理員了解系統(tǒng)是否正常啟動,檢查預(yù)先設(shè)定的應(yīng)用程序是否隨系統(tǒng)啟動等情況。
2. 內(nèi)核故障或異常錯誤發(fā)生時,系統(tǒng)會按照配置的日志級別(由內(nèi)核參數(shù)kernel.printk決定,默認(rèn)級別為4 - KERN_WARNING)將對應(yīng)信息輸出到串口。內(nèi)核錯誤(Kernel panic)是指操作系統(tǒng)在監(jiān)測到內(nèi)部的致命錯誤,并無法安全處理此錯誤時采取的動作。操作系統(tǒng)內(nèi)核中處理Kernel panic的子程序通常被設(shè)計用來向串口控制臺輸出錯誤信息,以便用于故障的調(diào)試,然后等待系統(tǒng)被手動重新引導(dǎo),或自動重新引導(dǎo)。該程序提供的技術(shù)性信息通常是用來幫助系統(tǒng)管理員或者軟件開發(fā)者診斷問題的。
附:內(nèi)核日志級別:
日志級別對應(yīng)名稱說明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如何使用系統(tǒng)串口日志
使用ECS控制臺時,對于狀態(tài)為“運(yùn)行中”的ECS實(shí)例,您可以通過實(shí)例列表或?qū)嵗斍榈牟僮鞑藛?,獲取實(shí)例系統(tǒng)日志。
控制臺操作
登錄 ECS管理控制臺。
單擊左側(cè)導(dǎo)航欄中的?實(shí)例。
選擇?地域。
找到需要排查異常故障的實(shí)例的?操作?菜單。
單擊?更多?>?運(yùn)維和診斷?>?獲取實(shí)例系統(tǒng)日志?查看日志。
也可以選中需要排查異常故障的實(shí)例,單擊實(shí)例進(jìn)入?實(shí)例詳情頁,點(diǎn)擊?更多?>?獲取實(shí)例系統(tǒng)日志?查看日志。
如下圖所示,當(dāng)系統(tǒng)正常啟動時,會顯示啟動過程中的相關(guān)日志內(nèi)容:
當(dāng)系統(tǒng)出現(xiàn)內(nèi)核錯誤時,會顯示相關(guān)錯誤信息:
結(jié)合日志中所顯示的內(nèi)容,可以幫助運(yùn)維人員檢查系統(tǒng)啟動是否正常,以及診斷操作系統(tǒng)層面發(fā)生的異常故障。
此外,在某些時刻系統(tǒng)也會將異常信息輸出到顯示器(比如Windows系統(tǒng)“藍(lán)屏”),由于云服務(wù)器沒有連接物理顯示器,因此可以使用獲取實(shí)例屏幕截圖的功能查看異常狀態(tài)下輸出到屏幕的信息,為問題分析提供輔助。
使用OpenAPI時,您可以使用?GetInstanceConsoleOutput?,獲得通過Base64編碼輸出的日志內(nèi)容。使用?GetInstanceScreenshot?,獲得通過Base64編碼輸出的屏幕內(nèi)容。
請注意,目前只有在?運(yùn)行中?狀態(tài)的實(shí)例可以查看系統(tǒng)日志和屏幕截屏。
寫在最后
讓ECS更好用是我們持續(xù)追求的目標(biāo)。ECS主動運(yùn)維和系統(tǒng)事件機(jī)制,可以提前發(fā)現(xiàn)基礎(chǔ)設(shè)施層面對ECS運(yùn)行的影響,并通過事件讓運(yùn)維人員及時感知并采取預(yù)防性措施,避免對在行業(yè)務(wù)的影響;而今天介紹的診斷日志功能,可以幫助運(yùn)維人員在面對實(shí)例個體由于操作系統(tǒng)內(nèi)部原因出現(xiàn)異常的情況下,分析原因避免同樣的問題反復(fù)發(fā)生威脅業(yè)務(wù)連續(xù)性。后續(xù)我們會推出更多的運(yùn)維工具和能力,讓您使用ECS的過程更放心、更透明。敬請期待!
本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。
評論
查看更多