文章目錄
每當電商網站管理員遇到MySQL數據庫、Apache之類的應用程序,無法如常啟動時,Linux系統都會有提示,使用 journalctl -ex
命令查看它。
- 通常可以快速查找相關日誌。
- 經過這樣分析日誌,可以快速解決問題。
journal是什麼意思?
journal基本解釋:
- n.日報,日誌,日記;定期刊物,期刊,雜誌;[會計]分類賬
- 變化形式
- 複數journals
持久化journal的日誌
持久化是在持久狀態和瞬態狀態之間轉換程序數據的機制。
通俗地說,瞬態數據(例如無法永久存儲的內存數據),持久化會持久存儲到持久數據(例如數據庫持久性,可以長時間存儲)。
在CentOS的 7.X中,systemd管理所有單元的啟動日誌。
- Systemd-journald是systemd管理的漸進式日誌管理服務。
- 它從內核收集日誌,系統守護程序在系統的早期啟動階段啟動並運行。
- 標準輸出和錯誤消息,以及系統日誌的日誌。
journalctl日誌路徑
日誌服務僅將日誌文件保存在單個結構中。
以下是CentOS 7 系統 VestaCP控制面板,journalctl日誌的保存路徑 ▼
/var/log/journal
- 因為日誌是壓縮和格式化的二進制數據,所以在查看和本土化非常快。
journalctl查看日誌命令
不加上任何選項,讓journalctl輸出所有日誌記錄的命令 ▼
journalctl
- 這基本上沒用,因為你馬上會被如洪水般的日誌記錄“淹沒”,讓你感到不堪重負。
接下來,我們將學習如何有效地過濾有價值的日誌信息。
查看指定時間段journalctl日誌
使用以下命令選項,設置時間段 ▼
--since --until
- 時間段負責指定給定時間之前和之後的日誌記錄。
時間值可以採用多種格式,例如以下格式 ▼
YYYY-MM-DD HH:MM:SS
如果你想检查在2018年3月8日晚上8点20分之后日志,请输入以下命令 ▼
journalctl --since "2018-03-26 20:20:00"
- 如果未填寫上述格式的某些組件,系統將直接填充默認值。
- 例如,如果未填充日期部分,則直接顯示當前日期。
- 如果未填充時間部分,則默認使用“00:00:00”(午夜)。
- 秒字段也可以留空。
默認值為“00”,例如以下命令 ▼
journalctl --since "2018-03-26" --until "2018-03-26 03:00"
此外,journalctl還可以理解一些相對值和命名簡寫。
- 例如,你可以使用”yesterday”、”today”、”tomorrow”或”now」。
例如,要獲取昨天的日誌數據,可以使用以下命令 ▼
journalctl --since yesterday
要從上午9:00到最後一小時獲取日誌,可以使用以下命令 ▼
journalctl --since 09:00 --until "1 hour ago"
實時更新查看journalctl日誌
跟 tail -f 命令類似,journalctl支持-f選項,以便實時顯示日誌 ▼
journalctl -f
如果想查看設備的實時日誌,請添加-u選項 ▼
$ sudo journalctl -f -u prometheus.service
僅顯示最journalctl 新的n行
命令行選項 -n
用於僅控制最新的n行日誌。
默認是在最後顯示最新的10行日誌 ▼
$ sudo journalctl -n
你還可以在末尾顯示指定行數的日誌 ▼
$ sudo journalctl -n 20
以下是顯示cron.service服務的最新三行日誌 ▼
$ journalctl -u cron.service -n 3
有網絡營銷人員使用VPS蓋站,安裝VestaCP控制面板,搭建WordPress網站。
經常使用 df -h
命令查看VPS磁盤容量,發現每月以1GB的趨勢在上升(記得上個月是1GB)
[root@ten ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/simfs 20G 7.5G 13G 38% / devtmpfs 256M 0 256M 0% /dev tmpfs 256M 0 256M 0% /dev/shm tmpfs 256M 244K 256M 1% /run tmpfs 256M 0 256M 0% /sys/fs/cgroup tmpfs 52M 0 52M 0% /run/user/0
查看journalctl日誌使用容量命令
檢查當前journalctl 日誌使用磁盤容量命令 ▼
journalctl --disk-usage
journalctl清空刪除日誌
由於Linux是一個非常敏感的操作系統,若刪除文件錯誤,很容易造成系統崩潰。
所以,清理journalctl日誌的方法,請按日期、允許保留的容量進行刪除。
journalctl --vacuum-time=2d journalctl --vacuum-size=500M
如果要手動刪除日誌文件,則需要在刪除之前輪轉(循環)日誌。
systemctl kill --kill-who=main --signal=SIGUSR2 systemd-journald.service
journalctl配置持久性容量
要啟用日誌限制持久性配置,你可以修改journald的配置文件 ▼
/etc/systemd/journald.conf
SystemMaxUse=16M ForwardToSyslog=no
然後,重啟journald ▼
systemctl restart systemd-journald.service
檢查日誌是否如常?日誌文件是否完好且未損壞? ▼
journalctl --verify
以下是清理journalctl日誌之後的VPS磁盤容量,以及journalctl日誌容量▼
[root@ten /]# df -h Filesystem Size Used Avail Use% Mounted on /dev/simfs 20G 5.7G 15G 29% / devtmpfs 256M 0 256M 0% /dev tmpfs 256M 0 256M 0% /dev/shm tmpfs 256M 308K 256M 1% /run tmpfs 256M 0 256M 0% /sys/fs/cgroup tmpfs 52M 0 52M 0% /run/user/0 [root@ten /]# journalctl --disk-usage Archived and active journals take up 24.0M on disk.
持久化journalctl 日誌詳解,到此結束^_^
希望陳溈亮博客( https://www.chenweiliang.com/ ) 分享的《持久化journalctl日誌清空命令查看配置參數詳解》,對您有幫助。
歡迎分享本文鏈接:https://www.chenweiliang.com/cwl-1141.html
歡迎加入陳溈亮博客的Telegram 頻道,獲取最新更新!
📚 這份指南蘊含價值巨大,🌟難逢的機遇,切勿錯失良機! ⏰⌛💨
喜歡就分享和按贊!
您的分享和按贊,是我們持續的動力!