歡迎光臨
每天分享高質量文章

用系統日誌瞭解你的 Linux 系統

後臺運行的程式(通常被稱為守護行程或者服務行程)處理了你 Linux 系統中的大部分任務。當這些守護行程工作時,它們將任務的詳細信息記錄進日誌檔案中,作為它們做過什麼的“歷史”信息。
— Chabowski


編譯自 | https://www.suse.com/communities/blog/system-logs-understand-linux-system/ 
 作者 | Chabowski
 譯者 | lujun9972

本文摘自為 Linux 小白(或者非資深桌面用戶)傳授技巧的系列文章。該系列文章旨在為 LinuxMagazine 發佈的第 30 期特別版 “Linux 入門[1]” (基於 openSUSE Leap[2] )提供補充說明。

本文作者是 Romeo S.,她是一名基於 PDX 的企業 Linux 專家,專註於為創新企業提供富有伸縮性的解決方案。

Linux 系統日誌非常重要。後臺運行的程式(通常被稱為守護行程或者服務行程)處理了你 Linux 系統中的大部分任務。當這些守護行程工作時,它們將任務的詳細信息記錄進日誌檔案中,作為它們做過什麼的“歷史”信息。這些守護行程的工作內容涵蓋從使用原子鐘同步時鐘到管理網絡連接。所有這些都被記錄進日誌檔案,這樣當有錯誤發生時,你可以通過查閱特定的日誌檔案來看出發生了什麼。

Photo by Markus Spiske on Unsplash

在你的 Linux 計算機上有很多不同的日誌。歷史上,它們一般以純文本的格式儲存到 /var/log 目錄中。現在依然有很多日誌這樣做,你可以很方便的使用 less 來查看它們。

在新裝的 openSUSE Leap 42.3 以及大多數現代操作系統上,重要的日誌由 systemd 初始化系統儲存。 systemd這套系統負責啟動守護行程,併在系統啟動時讓計算機做好被使用的準備。由 systemd 記錄的日誌以二進制格式儲存,這使得它們消耗的空間更小,更容易被瀏覽,也更容易被匯出成其他各種格式,不過壞處就是你必須使用特定的工具才能查看。好在這個工具已經預安裝在你的系統上了:它的名字叫 journalctl,而且預設情況下,它會將每個守護行程的所有日誌都記錄到一個地方。

只需要運行 journalctl 命令就能查看你的 systemd 日誌了。它會用 less 分頁器顯示各種日誌。為了讓你有個直觀的感受, 下麵是 journalctl 中摘錄的一條日誌記錄:

  1. Jul 06 11:53:47 aaathats3as pulseaudio[2216]: [pulseaudio] alsa-util.c: Disabling timer-based scheduling because running inside a VM.

這條獨立的日誌記錄以此包含了記錄的日期和時間、計算機名、記錄日誌的行程名、記錄日誌的行程 PID,以及日誌內容本身。

若系統中某個程式運行出問題了,則可以查看日誌檔案並搜索(使用 / 加上要搜索的關鍵字)程式名稱。有可能導致該程式出問題的錯誤會記錄到系統日誌中。 有時,錯誤信息會足夠詳細到讓你能夠修複該問題。其他時候,你需要在 Web 上搜索解決方案。 Google 就很適合來搜索奇怪的 Linux 問題。不過搜索時請註意你只輸入了日誌的實際內容,行首的那些信息(日期、主機名、行程 ID) 對搜索來說是無意義的,會幹擾搜索結果。

解決方法一般在搜索結果的前幾個連接中就會有了。當然,你不能只是無腦得運行從互聯網上找到的那些命令:請一定先搞清楚你要做的事情是什麼,它的效果會是什麼。據說,搜索系統日誌中的特定條目要比直接描述該故障通用關鍵字要有用的多。因為程式出錯有很多原因,而且同樣的故障表現也可能由多種問題引發的。

比如,系統無法發聲的原因有很多,可能是播放器沒有插好,也可能是聲音系統出故障了,還可能是缺少合適的驅動程式。如果你只是泛泛的描述故障表現,你會找到很多無關的解決方法,而你也會浪費大量的時間。而專門搜索日誌檔案中的實際內容,你也許會查詢出其它人也有相同日誌內容的結果。

你可以對比一下圖 1 和圖 2。

圖 1 搜索系統的故障表現只會顯示泛泛的,不精確的結果。這種搜索通常沒什麼用。

圖 2 搜索特定的日誌行會顯示出精確的,有用的結果。這種搜索通常很有用。

也有一些系統不用 journalctl 來記錄日誌。在桌面系統中最常見的這類日誌包括用於記錄 openSUSE 包管理器的行為的 /var/log/zypper.log; 記錄系統啟動時訊息的 /var/log/boot.log ,開機時這類訊息往往滾動的特別快,根本看不過來;/var/log/ntp 用來記錄 Network Time Protocol (NTP)守護行程同步時間時發生的錯誤。 另一個存放硬體故障信息的地方是 “Kernel Ring Buffer”(內核環狀緩衝區),你可以輸入 demesg -H 命令來查看(這條命令也會呼叫 less 分頁器來查看)。“Kernel Ring Buffer” 儲存在記憶體中,因此會在重啟電腦後丟失。不過它包含了 Linux 內核中的重要事件,比如新增了硬體、加載了模塊,以及奇怪的網絡錯誤.

希望你已經準備好深入瞭解你的 Linux 系統了! 祝你玩的開心!


via: https://www.suse.com/communities/blog/system-logs-understand-linux-system/

作者:[chabowski] 譯者:lujun9972 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

LCTT 譯者

lujun9972 ? ? ?
共計翻譯:25 篇
貢獻時間:22 天


推薦文章

< 左右滑動查看相關文章 >

點擊圖片、輸入文章 ID 或識別二維碼直達

赞(0)

分享創造快樂