如何在 Linux 中管理日誌
Linux 系統上的日誌檔案包含了很多資訊——比你有時間檢視的還要多。以下是一些建議,告訴你如何正確的使用它們……而不是淹沒在其中。
在 Linux 系統上管理日誌檔案可能非常容易,也可能非常痛苦。這完全取決於你所認為的日誌管理是什麼。
如果你認為是如何確保日誌檔案不會耗盡你的 Linux 伺服器上的所有磁碟空間,那麼這個問題通常很簡單。Linux 系統上的日誌檔案會自動翻轉,系統將只維護固定數量的翻轉日誌。即便如此,一眼看去一組上百個檔案可能會讓人不知所措。在這篇文章中,我們將看看日誌輪換是如何工作的,以及一些最相關的日誌檔案。
自動日誌輪換
日誌檔案是經常輪轉的。當前的日誌會獲得稍微不同的檔名,並建立一個新的日誌檔案。以系統日誌檔案為例。對於許多正常的系統 messages 檔案來說,這個檔案是一個包羅永珍的東西。如果你 cd
轉到 /var/log
並檢視一下,你可能會看到一系列系統日誌檔案,如下所示:
$ ls -l syslog*
-rw-r----- 1 syslog adm 28996 Jul 30 07:40 syslog
-rw-r----- 1 syslog adm 71212 Jul 30 00:00 syslog.1
-rw-r----- 1 syslog adm 5449 Jul 29 00:00 syslog.2.gz
-rw-r----- 1 syslog adm 6152 Jul 28 00:00 syslog.3.gz
-rw-r----- 1 syslog adm 7031 Jul 27 00:00 syslog.4.gz
-rw-r----- 1 syslog adm 5602 Jul 26 00:00 syslog.5.gz
-rw-r----- 1 syslog adm 5995 Jul 25 00:00 syslog.6.gz
-rw-r----- 1 syslog adm 32924 Jul 24 00:00 syslog.7.gz
輪換髮生在每天午夜,舊的日誌檔案會保留一週,然後刪除最早的系統日誌檔案。syslog.7.gz
檔案將被從系統中刪除,syslog.6.gz
將被重新命名為 syslog.7.gz
。日誌檔案的其餘部分將依次改名,直到 syslog
變成 syslog.1
並建立一個新的 syslog
檔案。有些系統日誌檔案會比其他檔案大,但是一般來說,沒有一個檔案可能會變得非常大,並且你永遠不會看到超過八個的檔案。這給了你一個多星期的時間來回顧它們收集的任何資料。
某種特定日誌檔案維護的檔案數量取決於日誌檔案本身。有些檔案可能有 13 個。請注意 syslog
和 dpkg
的舊檔案是如何壓縮以節省空間的。這裡的考慮是你對最近的日誌最感興趣,而更舊的日誌可以根據需要用 gunzip
解壓。
# ls -t dpkg*
dpkg.log dpkg.log.3.gz dpkg.log.6.gz dpkg.log.9.gz dpkg.log.12.gz
dpkg.log.1 dpkg.log.4.gz dpkg.log.7.gz dpkg.log.10.gz
dpkg.log.2.gz dpkg.log.5.gz dpkg.log.8.gz dpkg.log.11.gz
日誌檔案可以根據時間和大小進行輪換。檢查日誌檔案時請記住這一點。
儘管預設值適用於大多數 Linux 系統管理員,但如果你願意,可以對日誌檔案輪換進行不同的配置。檢視這些檔案,如 /etc/rsyslog.conf
和 /etc/logrotate.conf
。
使用日誌檔案
對日誌檔案的管理也包括時不時的使用它們。使用日誌檔案的第一步可能包括:習慣每個日誌檔案可以告訴你有關係統如何工作以及系統可能會遇到哪些問題。從頭到尾讀取日誌檔案幾乎不是一個好的選擇,但是當你想了解你的系統執行的情況或者需要跟蹤一個問題時,知道如何從日誌檔案中獲取資訊會是有很大的好處。這也表明你對每個檔案中儲存的資訊有一個大致的瞭解了。例如:
$ who wtmp | tail -10 顯示最近的登入資訊
$ who wtmp | grep shark 顯示特定使用者的最近登入資訊
$ grep "sudo:" auth.log 檢視誰在使用 sudo
$ tail dmesg 檢視(最近的)核心日誌
$ tail dpkg.log 檢視最近安裝和更新的軟體包
$ more ufw.log 檢視防火牆活動(假如你使用 ufw)
你執行的一些命令也會從日誌檔案中提取資訊。例如,如果你想檢視系統重新啟動的列表,可以使用如下命令:
$ last reboot
reboot system boot 5.0.0-20-generic Tue Jul 16 13:19 still running
reboot system boot 5.0.0-15-generic Sat May 18 17:26 - 15:19 (21+21:52)
reboot system boot 5.0.0-13-generic Mon Apr 29 10:55 - 15:34 (18+04:39)
使用更高階的日誌管理器
雖然你可以編寫指令碼來更容易地在日誌檔案中找到感興趣的資訊,但是你也應該知道有一些非常複雜的工具可用於日誌檔案分析。一些可以把來自多個來源的資訊聯絡起來,以便更全面地瞭解你的網路上發生了什麼。它們也可以提供實時監控。這些工具,如 Solarwinds Log & Event Manager 和 PRTG 網路監視器(包括日誌監視)浮現在腦海中。
還有一些免費工具可以幫助分析日誌檔案。其中包括:
- Logwatch — 用於掃描系統日誌中感興趣的日誌行的程式
- Logcheck — 系統日誌分析器和報告器
在接下來的文章中,我將提供一些關於這些工具的見解和幫助。
via: https://www.networkworld.com/article/3428361/how-to-manage-logs-in-linux.html
作者:Sandra Henry-Stocker 選題:lujun9972 譯者:heguangzhi 校對:wxy
本文由 LCTT 原創編譯,Linux中國 榮譽推出
相關文章
- linux日誌管理Linux
- 在Linux中,有哪些日誌管理和分析工具?Linux
- 如何在程式碼中打日誌
- 『學了就忘』Linux日誌管理 — 92、日誌輪替Linux
- 在Linux中,如何使用logrotate命令管理日誌檔案?Linuxlogrotate
- 『學了就忘』Linux日誌管理 — 90、Linux中日誌介紹Linux
- 在Linux中,如何使用ELK進行日誌管理和分析?Linux
- 在Linux中,如何管理和最佳化日誌檔案?Linux
- 『學了就忘』Linux日誌管理 — 93、日誌輪替補充Linux
- 『學了就忘』Linux日誌管理 — 91、日誌服務rsyslogd說明Linux
- 日誌管理
- 如何在MySQL中開啟慢查詢日誌?MySql
- 如何在專案中記錄日誌資訊?
- 華納雲:Linux中如何用logrotate管理每日增長的日誌Linuxlogrotate
- Mysql 日誌管理MySql
- SpringBoot日誌管理Spring Boot
- 重做日誌管理
- Linux-本地日誌服務管理(rsyslog基礎)Linux
- Linux下Rsyslog日誌遠端集中式管理Linux
- Linux之日誌管理Linux
- 在Linux中,如何在Linux中進行系統映象管理?Linux
- 在Linux中,如何在Linux中進行資源配額管理?Linux
- Linux 檢視日誌Linux
- Linux C日誌logLinux
- 如何在MySQL中檢視binlog二進位制日誌?MySql
- 在Linux中,如何檢視系統日誌?Linux
- MySQL日誌管理,舊MySql
- 【MySQL日誌】MySQL日誌檔案初級管理MySql
- 在Linux中,如何在Linux中使用LXD進行容器管理?Linux
- 如何在zuul上做日誌處理Zuul
- Linux中監視日誌檔案常用的命令!Linux
- 在Linux中,有哪些系統日誌檔案?Linux
- Linux日誌搜尋 grepLinux
- Linux-ELK日誌收集Linux
- linux查詢日誌技巧Linux
- Go日誌管理庫zapGo
- 統一日誌管理
- 中繼日誌中繼