目錄
- 1、日志分析
- 1.1、日志介紹
- 1.1.1、日志的功能
- 1.1.2、日志文件的分類
- 1.1.3、日志保存位置
- 1.2、rsyslog服務
- 1.2.1、發送日志到遠程日志服務器
- 1.3、查看日志文件
- 1.3.1、/var/log/messages文件的內容示例
- 1.3.2、用戶登錄、退出系統的相關日志
- 1.4、日志級別
- 1.5、程序日志分析
- 1.6、日志管理策略
- 1.7、小結
- 2、系統故障排查及處理
- 2.1、Linux系統啟動過程
- 2.2、排除故障的基本原理
- 2.3、系統故障修復示例
- 2.3.1、修復MBR扇區故障
- 2.3.2、修復GRUB引導故障和內核文件損壞
- 2.3.3、遺忘root密碼
- 2.3.4、救援模式、急救模式、單用戶模式的區別
- 2.3.5、inode節點耗盡故障
- 2.3.6、檢測磁盤壞道
1、日志分析
1.1、日志介紹
1.1.1、日志的功能
- 用于記錄系統、程序運行中發生的各種事件
- 通過閱讀日志,有助于診斷和解決系統故障
1.1.2、日志文件的分類
- 內核及系統日志
由系統服務syslog統一進行管理,日志格式基本相似 - 用戶日志
記錄系統用戶登錄及退出系統的相關信息 - 程序日志
由各種應用程序獨立管理的日志文件,記錄格式不統一
1.1.3、日志保存位置
默認位置:/var/log/
主要的日志文件
在Linux系統中,有三個主要的日志子系統。
1.連接時間日志
由多個進程執行,把記錄寫入到/var/log/wtmp和/var/run/utmp文件中,login等進程更新/var/log/wtmp和/var/run/utmp文件,使得系統管理員能夠知道誰在何時登錄到系統。
2.進程統計
由系統內核執行。當一個進程終止時,向該進程的進程統計文件中寫入一條記錄。進程統計的目的是為系統中的基本服務提供命令使用統計。
3.錯誤日志
各種系統守護進程、用戶程序和內核通過rsyslog服務向文件/var/log/messages報告值得注意的事件。另外,有許多Linux程序創建日志,像HTTP和FTP這樣提供網絡服務的服務器也保持詳細的日志。
1.2、rsyslog服務
系統內核和許多系統程序會產生錯誤信息、警告信息和其他信息。這些信息會被寫到一個文件中,執行這個過程的服務就是rsyslog。
rsyslog已被許多日志函數采用,它被用在許多保護措施中。任何程序都可以通過rsyslog服務記錄事件。rsyslog服務可以記錄系統事件,可以寫到一個文件或設備中,或給用戶發送一個信息。它能記錄本地事件或者通過網絡記錄另一個主機上的事件。
rsyslog服務依賴于兩個重要的文件:/etc/init.d/rsyslog(守護進程)和/etc/rsyslog.conf配置文件。習慣上,多數rsyslog信息被寫到/var/log目錄下的文件中。一個典型的rsyslog記錄包括生成程序的名字和一個文本信息,它還包括一個日志內容和一個級別范圍(但不在日志中出現)。
1.2.1、發送日志到遠程日志服務器
編輯/etc/rsyslog.conf文件
在日志客戶端上修改/etc/rsyslog.conf文件,指定日志服務器為192.168.0.2,在該文件末尾添加以下內容。@192.168.0.2
*.* @ 192.168.0.2:514 //使用 @:通過 UDP 發送日志,傳輸快但不保證可靠性。
*.* @@ 192.168.0.2:514 //使用 @@:通過 TCP 發送日志,傳輸稍慢但保證數據的可靠性。
1.3、查看日志文件
Linux日志文件是純文本的文件,每一行就是一個消息。只要是在Linux系統下能夠處理純文本的工具都能用來查看日志文件。日志文件總是非常的大,因為從第一次啟動Linux系統開始,信息就都累積在日志文件中。
1.3.1、/var/log/messages文件的內容示例
May 8 17:21:01 localhost chronyd[664]: Selected source 211.68.71.118
時間 主機名 子系統名 PID 消息字段
1.3.2、用戶登錄、退出系統的相關日志
在 Linux 系統中,用戶登錄和退出(注銷)的相關日志通常可以通過幾個不同的文件和命令來查看。這些日志對于系統管理員來說非常重要,因為它們提供了關于誰何時訪問了系統的信息。以下是一些查看這些信息的方法:
/var/log/wtmp 文件
- wtmp 文件記錄了所有的登錄和登出事件。
- 使用 last 命令可以讀取這個文件并顯示歷史登錄記錄。
[root@localhost ~]# last
root pts/0 172.22.1.254 Wed May 8 17:34 still logged in
reboot system boot 3.10.0-1160.114. Wed May 8 17:34 - 20:29 (02:54)
root pts/1 172.22.1.254 Wed May 8 17:02 - down (00:32)
root pts/0 172.22.1.254 Tue Apr 30 09:13 - down (8+08:20)
reboot system boot 3.10.0-1160.114. Tue Apr 30 08:16 - 17:34 (8+09:17)
root tty1 Mon Apr 29 23:57 - 23:57 (00:00)
reboot system boot 3.10.0-1160.114. Mon Apr 29 23:56 - 17:34 (8+17:37)
root pts/0 172.22.1.254 Mon Apr 29 23:50 - down (00:05)
reboot system boot 3.10.0-1160.114. Mon Apr 29 23:49 - 23:55 (00:06)
root pts/0 172.22.1.254 Mon Apr 29 23:43 - crash (00:06)
root tty1 Tue Apr 30 07:39 - 23:49 (-7:-49)
reboot system boot 3.10.0-1127.el7. Tue Apr 30 07:38 - 23:55 (-7:-42)
這個命令會列出所有用戶的登錄和登出記錄,包括從哪個 IP 地址登錄、登錄和登出時間等信息。
/var/log/btmp 文件
btmp 文件記錄了登錄失敗的嘗試。
使用 lastb 命令(可能需要 root 權限)可以查看失敗的登錄嘗試。
[root@localhost ~]#