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

2022-01-30 Linux中國
編譯自 | 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 中摘錄的一條日誌記錄:

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中國 榮譽推出

請訪問「原文連結」獲得可點擊的文內連結、全尺寸原圖和相關文章。

相關焦點

  • linux系統下各種日誌文件的介紹,查看,及日誌服務配置
    linux系統日誌文件的詳細介紹日誌文件的作用日誌文件用於記錄linux系統的各種運行信息的文件,相當於
  • Linux-系統日誌簡介
    前言日誌在排查文件的時候至關重要,在Linux上一般跟系統相關的日誌默認都會放到/var/log下面。1、/var/log/boot.log一般包含系統啟動時的日誌,包括自啟動的服務。3、/var/log/croncron計劃任務的日誌,每當cron任務被執行的時候都會在這個文件裡面記錄。4、/var/log/dmesg包含內核緩衝信息(kernel ring buffer)。在系統啟動時,會在屏幕上顯示許多與硬體有關的信息。
  • 了解linux系統目錄,home,lib,lost+found,media,mnt,opt!
    linux小白到大神的成長之路:了解linux系統目錄,home,lib,lost+found,media,mnt,opt!本經驗由宗龍龍原創,全文共600多字,閱讀需要14分鐘,如果文中存在錯誤,還請大家多多指點,我會積極改進的!
  • Linux 日誌文件系統原來是這樣工作的
    日誌文件系統(Journal File System)就是為解決上述問題而誕生的。它的原理是在進行寫操作之前,把即將進行的各個步驟(稱為transaction)事先記錄下來,保存在文件系統上單獨開闢的一塊空間上,這就是所謂的日誌(journal),也被稱為write-ahead logging,日誌保存成功之後才進行真正的寫操作、把文件系統的元數據和用戶數據寫進硬碟(稱為checkpoint),這樣萬一寫操作的過程中掉電,下次掛載文件系統之前把保存好的日誌重新執行一遍就行了
  • Linux系統文件
    小貼士/名詞解釋EXT3,JFFS2,YAFFSBFFS,WINFS,NFSVFS(Proc),iNode區文件系統概述1.文件系統定義1)文件系統是一種組織計算機文件和資料的方法;2)作業系統中封裝的系統服務程序,實際上是一個軟體程序,用來存儲和管理計算機文件和資料。
  • Linux系統logger日誌命令詳解
    -s    將消息記錄到標準錯誤以及系統日誌。-t tag    指定標記,標記記錄中的每一行。-u socket    按指定的方式寫入socket,而不是系統日誌例程。二、消息日誌級別優先級 " facility.level" 的格式例:" -p local3.info " 表示自定義local3 這個設備的消息級別為 info。消息日誌默認級別是 「user.notice」。facility:用來定義由誰產生的日誌信息,即哪個軟體、子系統運行過程中產生的日誌信息。
  • Linux目錄結構(Linux文件系統結構)
    只有root權限才能執行●proc --- 虛擬,存在linux內核鏡像;保存所有內核參數以及系統配置信息●usr --- 用戶目錄,存放用戶級的文件bin --- 幾乎所有用戶所用命令,另外存在與/bin,/usr/local/binsbin --- 系統管理員命令,與用戶相關,例如,大部分伺服器程序include ---  存放
  • 在Linux系統中如何用logrotate實現系統日誌自動分割
    最近在用Ruby On Rails 寫一個培訓學校運營管理用的CRM客戶關係管理系統,生產環境伺服器是Nginx/Thin,開發環境用自帶的WEBrick,兩個伺服器統一有個問題就是所有的日誌都存在一個文件中,排錯時查找起來很麻煩,而且單個文件也會隨著伺服器的運行越來越大,查了查資料
  • 七步開始你的 Linux 系統管理員生涯
    這個課程會從圖形界面和命令行兩個方面教會你有用的 Linux 知識,讓你能夠了解主流的 Linux 發行版。3、 看看 LFS201 課程在你完成 LFS101x 之後,你就可以開始挑戰 Linux 中更加複雜的任務了,這是成為一名專業的系統管理員所必須的。
  • Linux 系統內核的調試
    /linux-2.6.7-kgdb-2.2/core-lite.patch    如果內核正確,那麼應用補丁時應該不會出現任何問題(不會產生*.rej文件)。為Linux內核添加了補丁之後,需要進行內核的配置。內核的配置可以按照你的習慣選擇配置Linux內核的任意一種方式。
  • Linux系統從入門到放棄?
    續上一個學期學完了的Linux基礎知識學習過程,這一學期的centos伺服器技術學完後,讓我對於Linux系統的學習又加深了許多。我知道了Linux只是個 內核。現在的Linux作業系統,都是用這麼一個內核,加上其它的應用程式構成的。
  • 最小的Linux系統製作過程詳解
    linux系統的內核原代碼和編譯工具,利用busybox內建的強大功能,在一張軟盤上做的一個很小的linux系統.他具備一個linux系統的基本特徵,支持linux系統最常用的一百多個命令,支持多種文件系統,支持網絡等等,你可以把他當做一張linux起動盤和修復盤來用,你也可以把他當做一個靜態路由的路由器軟體,當然,你也可以把他當做一個linux玩具,向你的朋友炫耀 linux可以做的多麼小.我把他叫做
  • 深度好文:Linux文件系統剖析
    read 函數不了解文件系統的類型,比如 ext3 或 NFS。它也不了解文件系統所在的存儲媒體,比如 AT Attachment Packet Interface(ATAPI)磁碟、Serial-Attached SCSI(SAS)磁碟或 Serial Advanced Technology Attachment(SATA)磁碟。
  • 閒聊Windows系統日誌
    這個事還真不好幹,你把證據,犯案時間都確定的時候,要求翻看監控(日誌)對應犯罪嫌疑人時,突然說監控(日誌)沒有記錄。不過現在都要求保留至少6個月的日誌,因此這種原因會少了很多,然而我對於Windows中系統日誌不了解,在解讀時經常摸不著頭腦,所以就認真的分析了evtx格式的系統日誌。這篇文章可能記錄的不是很全面,師傅們多多指教。
  • 【Linux】Linux系統中的權限詳解
    所以對於了解linux系統中的各種權限及要給用戶,服務等分配合理的權限十分重要。一.文件基本權限   首先看下linux下的文件權限,可以使用ll命令或者是帶-l(長列表選項)的ls命令。  用acl給這個用戶賦予權限。ACL權限 是解決用戶對文件身份不足的問題(該用戶不屬於 擁有者 所屬組 其他人)。系統是否支持ACL是與文件系統有關的。
  • linux系統哪個好用
    linux系統哪個好用 陳翠 發表於 2019-03-02 13:42:41
  • 如何在Linux系統安裝Apollo
    安裝Apollo軟體,需要提前準備環境:JDK1.8,mysql5.7安裝資料庫:參照- Linux系統安裝mysql資料庫.docx文件即可,安裝JDK1.8(1)將jdk-8u211-linux-x64.tar.gz文件拷貝到相關目錄,執行解壓命令:tar –zxf jdk-8u211-linux-x64.tar.gz(2)配置環境變量:vim /etc/profile編輯如下內容:
  • Linux系統入門命令學習經驗
    大多是設計一些B/S系統,涉及到Mysql資料庫和常用的ssh,通過一些橫向項目,增加同學們的實踐經驗和實際掌握能力。其中經常主要用到的開發語言不是linux而是java,我開始接觸linux也是因為在一個項目中需要用到linux,才開始去了解linux的。
  • Filebeat+Kafka+Logstash+Elasticsearch+Kibana 構建日誌分析系統
    一、前言隨著時間的積累,日誌數據會越來越多,當你需要查看並分析龐雜的日誌數據時,可通過 Filebeat+Kafka+Logstash+Elasticsearch 採集日誌數據到Elasticsearch(簡稱ES)中,並通過 Kibana 進行可視化展示與分析。
  • Windows 終於開始兼容 Linux 系統-windows下的Linux子系統
    而微軟發布的操作內置Linux子系統,也是從Windows10開始。Windows內置linux子系統很長時間,也好幾個版本了,一直沒有實際測試過,今天閒來沒事,測試一下windows下的Linux子系統(WSL)。