要查看linux系統(tǒng)日志,推薦使用journalctl和tail -f /var/log/messages兩個(gè)工具;1. journalctl適用于systemd系統(tǒng),支持按時(shí)間、服務(wù)等過濾,命令如journalctl -u sshd或結(jié)合時(shí)間范圍過濾;2. tail -f適合傳統(tǒng)系統(tǒng)或快速監(jiān)控整體日志,常用命令為tail -f /var/log/messages并可配合grep過濾;3. 新系統(tǒng)優(yōu)先選journalctl,老舊或嵌入式設(shè)備可用tail;4. 兩者可同時(shí)使用以提高排查效率。
查看linux系統(tǒng)日志是排查問題、監(jiān)控運(yùn)行狀態(tài)的重要手段。在實(shí)際操作中,journalctl和tail -f /var/log/messages是比較常用的兩個(gè)工具,它們各有特點(diǎn),適用于不同場(chǎng)景。
一、journalctl:新一代日志管理利器
journalctl是systemd系統(tǒng)下的核心日志工具,它不僅記錄了內(nèi)核和系統(tǒng)服務(wù)的日志,還支持按時(shí)間、服務(wù)、優(yōu)先級(jí)等多種方式過濾,功能非常強(qiáng)大。
常用技巧:
-
查看全部日志:
journalctl
-
查看最近一次啟動(dòng)的日志:
journalctl -b
-
實(shí)時(shí)追蹤日志輸出(類似tail -f):
journalctl -f
-
查看特定服務(wù)的日志(比如sshd):
journalctl -u sshd
-
結(jié)合時(shí)間范圍過濾(例如查看今天凌晨2點(diǎn)到3點(diǎn)之間的日志):
journalctl --since "2025-04-05 02:00:00" --until "2025-04-05 03:00:00"
journalctl的優(yōu)勢(shì)在于它直接對(duì)接systemd,不需要依賴傳統(tǒng)的日志文件路徑,適合那些使用systemd的現(xiàn)代Linux發(fā)行版。
二、tail -f /var/log/messages:傳統(tǒng)但實(shí)用的方式
雖然很多新系統(tǒng)已經(jīng)轉(zhuǎn)向journald,但 /var/log/messages 或 /var/log/syslog(取決于發(fā)行版)依然是許多老運(yùn)維人員的習(xí)慣選擇。
使用方法很簡(jiǎn)單:
tail -f /var/log/messages
這條命令會(huì)持續(xù)輸出該文件新增的內(nèi)容,適合監(jiān)控系統(tǒng)整體運(yùn)行情況,尤其是當(dāng)你不確定具體是哪個(gè)服務(wù)出問題時(shí)。
幾點(diǎn)建議:
- 如果你發(fā)現(xiàn) /var/log/messages 沒有內(nèi)容,可能是日志服務(wù)沒有啟用或者配置了其他日志路徑。
- 可以配合 grep 使用,過濾關(guān)鍵信息:
tail -f /var/log/messages | grep sshd
- 注意權(quán)限問題,有些日志文件需要root權(quán)限才能訪問,記得加 sudo。
這種方式的優(yōu)點(diǎn)是簡(jiǎn)單直觀,適合快速查看系統(tǒng)級(jí)別的錯(cuò)誤或警告信息。
三、兩者如何選擇?
如果你用的是較新的centos、ubuntu或Fedora系統(tǒng),推薦優(yōu)先使用journalctl,因?yàn)樗`活、功能更強(qiáng)。但在某些嵌入式設(shè)備或老舊服務(wù)器上,可能還是得靠傳統(tǒng)的syslog文件。
-
journalctl適合:
- 需要精確過濾某服務(wù)或某時(shí)間段
- 不確定日志寫在哪里
- 想獲取結(jié)構(gòu)化日志信息
-
tail適合:
有時(shí)候可以同時(shí)使用,比如一邊用journalctl -u nginx看nginx服務(wù)日志,另一邊用tail -f /var/log/nginx/access.log看訪問日志,這樣能更快定位問題。
基本上就這些。掌握好這兩個(gè)工具,大部分日常的日志查看需求都能滿足。