許 鵬
(杜比實驗室國際技術(shù)服務(wù) (上海)有限公司,上海200030)
眾所周知,數(shù)字電影播放服務(wù)器是以傳統(tǒng)計算機硬件架構(gòu)所組成的,運行在Linux操作系統(tǒng)上,符合DCI規(guī)范的專用電影播放服務(wù)器。在實際使用中若播放服務(wù)器出現(xiàn)故障,如何快速準(zhǔn)確地定位故障,找到故障根本原因,除了使用排除法、替換法、比較法等常規(guī)故障排摸方法,熟練掌握播放服務(wù)器日志分析法這一技能將事半功倍。
播放服務(wù)器系統(tǒng)日志是指播放服務(wù)器在運行過程中產(chǎn)生的事件記錄。這些記錄被系統(tǒng)程序收集歸檔并存放到文件中,生成系統(tǒng)日志文件。日志文件詳細(xì)記載著所發(fā)生事件的類型、時間、相關(guān)進(jìn)程、操作描述及信息級別。數(shù)字電影播放服務(wù)器日志不僅有常規(guī)的操作系統(tǒng)日志,比如系統(tǒng)內(nèi)核 (kernel)日志,網(wǎng)絡(luò)服務(wù)日志 (Apache)等,還包含了多個專用的設(shè)備日志,如播放日志、安全管理器日志等全面記錄播放服務(wù)器的歷史事件。顯然,日志中包含了很多有用的信息和線索,通過查看日志可大體掌握設(shè)備的配置信息、歷史事件、維護(hù)狀態(tài)和告警及錯誤消息,有利于快速判斷故障。雖然日志分析很有用,但是日志中信息量巨大,學(xué)習(xí)掌握難度也大。如要在巨量的數(shù)據(jù)中提取有用的信息,必須擁有扎實的基礎(chǔ)知識并掌握一些實用的技巧。如果沒有掌握有效的方法和知識的積累,那么只會在信息的海洋中迷失,從而無功而返。
首先,最重要的是了解播放服務(wù)器日志的結(jié)構(gòu)和相關(guān)原理,以下以杜比服務(wù)器Show Vault的日志為例作具體說明。如圖1所示。
圖1 杜比服務(wù)器Show Vault的日志
下載的杜比播放服務(wù)器日志是一個以.tgz擴(kuò)展名結(jié)尾的壓縮文件,例如drmreport_230068_2019_10_05.tgz。從命名中可以得知該播放服務(wù)器的媒體模塊序列號為230068,日志獲取的時間為2019年10月5日。當(dāng)解壓縮該文件后,會得到另外兩個壓縮文件drmreport.tgz和sbcreport.tgz,還有一個重要的文本文件drmreport.txt。當(dāng)在用戶界面點擊下載播放服務(wù)器日志時,系統(tǒng)會在后臺執(zhí)行多個命令,并把這些指令和運行結(jié)果存放到這個日志文件中。因此可以把drmreport.txt看作為播放服務(wù)器的系統(tǒng)報告,里面包含了軟件版本、安全時鐘、磁盤陣列、硬盤信息、網(wǎng)絡(luò)信息等諸多內(nèi)容,非常重要。當(dāng)再次解壓縮drmreport.tgz文件,進(jìn)入/doremi/log目錄中,會發(fā)現(xiàn)大量帶有后綴名為.log的文件。這就是播放服務(wù)器的設(shè)備日志,其總體數(shù)量在120個左右,每個日志文件記錄著不同軟件子系統(tǒng)的事件信息。由此可見,杜比播放服務(wù)器根據(jù)軟件子系統(tǒng)的功能將日志文件分門別類列出,不僅數(shù)量多,而且信息量大。必須搞清楚主要日志文件的功能屬性和工作原理,避免大海撈針,才能有的放矢地去正確的位置尋找線索。表1挑出了重要的日志文件做簡要說明。
表1 重要日志文件的簡要說明
例如,通過bootseq.log 日志可檢查用戶非法關(guān)機的行為。當(dāng)發(fā)現(xiàn)日志中每天都重復(fù)出現(xiàn)“[WARNG]:boot sequence-check:Invalid boot sequence detected”這條記錄時,可明確判定用戶是否按照正常流程關(guān)閉服務(wù)器,因此當(dāng)下一次開機時,系統(tǒng)會在日志中自動記錄非法關(guān)機的行為。這類操作的不良后果可能會導(dǎo)致系統(tǒng)文件丟失甚至操作系統(tǒng)崩潰,需及時提醒用戶改變操作習(xí)慣,防范于未然。又如,drm_errorsummary.log收集了播放服務(wù)器歷史上所有的錯誤時間,并做了故障歸類。分析日志時應(yīng)優(yōu)先打開該日志,快速掌握全局情況,再到相關(guān)日志中查找線索,驗證細(xì)節(jié)。這樣可大量節(jié)約時間,提高效率。
了解日志文件的結(jié)構(gòu)和其功能屬性后,還需要結(jié)合計算機、英語等綜合知識,才能更好地理解并分析日志。筆者根據(jù)自身經(jīng)驗總結(jié)了6條經(jīng)驗法則以供參考:
(1)日志分析應(yīng)具備良好英語能力和Linux系統(tǒng)知識
日志的語言環(huán)境是英語,雖然每條日志不長,語法不難,但是需要掌握大量的英語專業(yè)詞匯,理解其特殊的含義,這是讀懂日志的基礎(chǔ)。例如,杜比播放服務(wù)器日志中有一個頻繁出現(xiàn)的單詞是“Dolphin”,普通意譯為 “海豚”,在播放服務(wù)器環(huán)境中它是媒體模塊的代號。其次,還要掌握Linux系統(tǒng)的相關(guān)知識,包括Linux文件和目錄、操作指令等。
上述提到的drmreport.txt文件里包含了大量在系統(tǒng)生成日志時執(zhí)行的指令和返回的結(jié)果。了解這些指令的意義,可直接判斷該子模塊的狀態(tài)。例如:其中一條命令為 “cat/etc/timezone”,返回結(jié)果為 “Asia/Shanghai”,便可得知服務(wù)器所在的時區(qū)。
(2)日志分析應(yīng)具備較強的邏輯推理能力
日志文件是由大量的信息所組成的,有用的信息可能散布在一個或多個不同的文件中。這就需要我們有較強的邏輯推理能力,根據(jù)故障發(fā)生的時間節(jié)點,在不同日志文件中找尋線索,反復(fù)比對在該時間點所發(fā)生的事件,串聯(lián)起來推理問題,綜合判斷故障的原因。
(3)善于查找關(guān)鍵詞
所謂關(guān)鍵詞是指日志中頻繁出現(xiàn)并賦有特殊意義的英語單詞,它們的反復(fù)出現(xiàn)往往暗示著故障已經(jīng)發(fā)生。善于利用關(guān)鍵詞的查找,無疑是日志初學(xué)者快速定位故障的捷徑。例如關(guān)鍵詞 “underflow”表示數(shù)據(jù)溢出,可能是硬盤或節(jié)目包的問題。又如“decoder crash”表示出現(xiàn)了解碼錯誤,故障大多與媒體模塊IMB板有關(guān)。通過搜索關(guān)鍵詞,可節(jié)省大量時間,快速找到相關(guān)線索。
(4)運用合適的工具能事半功倍
日志文件的內(nèi)容大多是可讀的本文,如果直接用windows自帶的記事本打開的話,所顯示的日志會是雜亂無章,看得人一頭霧水。建議大家使用notepad++或UltraEdit打開日志文件,這類軟件會將每條日志有序排列,并標(biāo)注行號,這樣可以一目了然獲取每行日志的時間、信息級別、相關(guān)程序及事件描述等信息。另外,還可以運用軟件的高級搜索、關(guān)鍵字標(biāo)記、雙屏閱讀等功能提高日志的可讀性。其次,還應(yīng)該充分利用每家設(shè)備廠商的定制化日志分析軟件和工具。杜比播放服務(wù)器使用的是在線日志分析網(wǎng)站,用戶可以將日志上傳到網(wǎng)站,系統(tǒng)會自動分析日志后,詳細(xì)列出播放服務(wù)器的基本信息,警告和故障條目,并逐一給出故障解決方案。
(5)日志不是萬能的,不是所有問題都記錄
這是初學(xué)日志分析需要注意的地方,日志中不會包含所有的信息,也不會記錄所有的問題。比如杜比播放服務(wù)器電源發(fā)生故障,是不會記錄在任何日志中。又如,當(dāng)影廳內(nèi)出現(xiàn)雜音的情況,由于播放服務(wù)器不能對音頻信號輸出做監(jiān)控和檢查,日志中自然不會記錄這類故障。日志分析只是故障判斷的一個輔助手段,大多時候很有用,但也不是萬能的。
(6)部分日志是研發(fā)代碼和機器語言,不要奢望完全讀懂日志
當(dāng)讀取日志文件時,總會發(fā)現(xiàn)一些令人百思不得其解的專業(yè)代碼和機器語言,這是很正常的。除非你參與了整個產(chǎn)品的研發(fā)過程,否則很難面面俱到,從頭到尾弄清楚每一行日志的含義。運用日志分析的目的,在于從信息的海洋中找到有效、易懂的信息,來輔助判斷問題。只要能夠掌握大部分有用的信息,并理解它表示的含義,同樣的可達(dá)到較好的效果,而不必過分咬文嚼字,糾結(jié)于細(xì)節(jié)。
下面通過三個實際案例來更好地說明如果利用日志來查找線索,分析故障可能發(fā)生的原因。
案例1:Show Vault播放服務(wù)器放映中頻繁出現(xiàn)卡頓的故障現(xiàn)象
根據(jù)此現(xiàn)象,不難判斷出是由播放服務(wù)器磁盤陣列中的一塊或多塊硬盤或媒體模塊解碼故障所引起的。首先,解壓縮日志后打開rm_errorsummary.log,該日志的功能是收集所有子系統(tǒng)的錯誤日志并歸檔列出。在這個案例中,日志里列出了大量有關(guān)硬盤的錯誤記錄如圖2所示。
圖2 硬盤報警日志
md0是存儲節(jié)目的系統(tǒng)分區(qū),SDC和ata3都對應(yīng)于第三塊硬盤,從中看出該硬盤發(fā)生了大量的讀寫錯誤,并被系統(tǒng)標(biāo)記為媒體錯誤。隨后,再打開關(guān)于硬盤狀態(tài)的drmreport.log去找尋更多的線索。搜索關(guān)鍵詞mdstat可快速定位磁盤陣列和硬盤狀態(tài)的相關(guān)信息如圖3和圖4所示。
圖3 磁盤陣列狀態(tài)
md1的標(biāo)記符 [4/3][UU_U]表示了擁有4塊硬盤的磁盤陣列系統(tǒng)已經(jīng)處于降低運行,第三塊硬盤SDC已經(jīng)被磁盤陣列移除。
圖4 硬盤SMART 信息
隨后進(jìn)一步檢查第三塊硬盤的SMART 值,其中1、5、197項的數(shù)值顯示異常,遠(yuǎn)超出標(biāo)準(zhǔn)范圍,表明該硬盤有存在大量底層讀寫錯誤和重新分配的扇區(qū)數(shù),已無法自行修復(fù),必須及時更換。
最后,可以打開播放日志odeticsd.log,從中搜索關(guān)鍵詞underflow,匹配出多個錯誤記錄,同時顯示了當(dāng)時所播放的節(jié)目信息。如圖5所示。
圖5 odeticsd日志
由此可見,經(jīng)過多個日志的驗證和分析,可以準(zhǔn)確地定位到第三塊硬盤是發(fā)生卡片故障的根本原因??紤]到硬盤故障可能是隱形的,即圖形界面中不告警,狀態(tài)指示燈仍有可能是綠色,因此通過日志來判斷無疑更加直觀準(zhǔn)確。
案例2:Show Vault播放服務(wù)器放映中圖像異常
與圖像有關(guān)的問題應(yīng)先定位故障的源頭是放映機還是播放服務(wù)器,可通過檢查放映機通道設(shè)置并播放放映機內(nèi)部測試圖來檢查。如果排除了放映機的嫌疑,仍有條紋或閃爍這類故障現(xiàn)象,應(yīng)重點考慮播放服務(wù)器的解碼部分。同樣先打開drm_errorsummary.log,可以發(fā)現(xiàn)日志里出現(xiàn)了大量從kernel.log收集到的解碼錯誤 (Decoders Crashed)如圖6所示。
圖6 Kernel日志
圖7 odeticsd日志
其次,查看odestic.log 日志,發(fā)現(xiàn)負(fù)責(zé)解碼dolphin子系統(tǒng)有連接超時和傳輸數(shù)據(jù)的錯誤,進(jìn)一步證實了故障源于解碼部分,即媒體模塊IMB 板。另外,odestic.log日志完整記錄每場電影播放的事件,對于偶發(fā)性故障,應(yīng)在日志中重點檢查影院所反饋的故障時間點,從而有效地縮小檢索范圍,準(zhǔn)確定位故障。如圖7所示。
因此,可以刷新或升級媒體模塊的固件來進(jìn)一步觀察故障是否解決,如故障仍然存在,需更換IMB板塊。
案例3:Show Vault播放服務(wù)器無法正常播放節(jié)目,顯示不能加載播放列表
通常此類故障,在圖像化界面提示的信息較少,且涉及到的故障可能較多,很難快速做出判斷,日志分析是一個很好的手段。
首先,打開drm _errorsummary.log,發(fā)現(xiàn)安全管理器SM 的版本顯示為丟失,根據(jù)DCI規(guī)范,當(dāng)播放服務(wù)器的SMS子系統(tǒng)無法與安全管理器SM連接的情況下,是無法加載播放列表和播放電影。如圖8所示。
圖8 服務(wù)器型號和版本信息
其次,逐一檢查與加載播放列表有關(guān)的日志文件odestc.log 和drmplaylistd.log 這兩個日志。發(fā)現(xiàn)這兩個日志中都存在相關(guān)錯誤,特別是在drmplaylistd.log中更為明顯,顯示播放服務(wù)器反復(fù)啟動卻始終無法連接到安全管理器。如圖9所示。
圖9 drmplaylistd日志
因此,故障解決的思路是檢查IMB板與放映機之間的網(wǎng)絡(luò)通信,應(yīng)通過排查網(wǎng)絡(luò)中的設(shè)備,包括網(wǎng)線、交換機、放映機的控制板及IMB板來定位故障。
通過以上案例分析,可以看出日志分析絕非易事,它不僅需要有良好的英語基礎(chǔ),而且要對設(shè)備的工作原理和各個子系統(tǒng)熟練掌握,才能成功地在大量的數(shù)據(jù)中找到線索,并結(jié)合對設(shè)備的硬件和軟件的理解,最終定位故障。
總而言之,日志分析應(yīng)遵循從易到難,簡單的可通過關(guān)鍵詞搜索,復(fù)雜的情況需根據(jù)故障發(fā)生的時間點,反復(fù)對比不同的日志,從而找到有價值的線索和關(guān)鍵突破點。希望通過此文能拋磚引玉,提供對播放服務(wù)器日志分析的思路和方法,幫助影院技術(shù)人員從中收獲啟發(fā),并舉一反三,掌握好這個故障診斷的利器。
注釋
①杜比公司于2014年收購Doremi公司并延用Doremi的核心技術(shù),本文提到的Show Vault服務(wù)器現(xiàn)為杜比公司所有。
② 杜 比 日 志 在 線 分 析 網(wǎng) 站 www.http ://loganalyzer.dolbycustomer.com/,用戶可上傳日志文件做在線分析。
③S.M.A.R.T.全稱為 “Self-Monitoring Analysis and Reporting Technology”,即 “自我監(jiān)測、分析及報告技術(shù)”,是一種自動的硬盤狀態(tài)檢測與預(yù)警系統(tǒng)和規(guī)范。