一、背景
每當遇到諸如網(wǎng)卡、數(shù)據(jù)庫、Apache及其他一些應用無法正常啟動時,系統(tǒng)會提示我們使用journalctl -ex命令進行查看,往往能迅速找到相關日志,分析日志后問題一般能夠迅速被解決。雖然經(jīng)常使用,但是也沒有過多深究。
在CentOS7.X中,systemd統(tǒng)一管理著所有unit的啟動日志,systemd-journald就是一個被systemd管理的進型日志管理服務,可以收集來自內核、系統(tǒng)早期啟動階段的日志、系統(tǒng)守護進程在啟動和運行中的標準輸出和錯誤信息,還有syslog的日志。該日志服務僅僅把日志集中保存在單一結構的日志文件/run/log中,由于日志是經(jīng)過壓縮和格式化的二進制數(shù)據(jù),所以在查看和定位的時候很迅速,我們可以只用journalctl一條命令就能查看所有日志(內核日志和 應用日志)。
對于journal的配置,我們可以參見配置文件:/etc/systemd/journald.conf,可以根據(jù)實際情況進行自定義,默認情況下并不會持久化保存日志,只會保留一個月的日志。如果需要永久保留改日志文件呢?
二、操作步驟
1.創(chuàng)建相關的目錄來存放journal日志,修改權限,重啟systemd-journal服務。
sudo mkdir /var/log/journal
sudo chgrp systemd-journal /var/log/journal
sudo chmod g s /var/log/journal
sudo systemctl restart systemd-journald
2.重啟數(shù)次觀察日志記錄結果。
journalctl --list-boots
從上面我們可以清晰地看到本日內的一次引導記錄。
3.觀察最近一次引導過程。
journalctl -b 0
提示:您目前沒有看到來自其他用戶和系統(tǒng)的消息。“systemd-journal”組中的用戶可以查看所有消息。 通過-q關閉此通知。
4.之前/run/log/journal目錄已經(jīng)不存在,取而代之的是/var/log/journal目錄。
三、總結
journalctl是一個非常好用的日志查看命令。