通過Journalctl檢視並操作Systemd日誌
一、背景
每當遇到諸如網絡卡、資料庫、Apache及其他一些應用無法正常啟動時,系統會提示我們使用journalctl -ex命令進行檢視,往往能迅速找到相關日誌,分析日誌後問題一般能夠迅速被解決。雖然經常使用,但是也沒有過多深究。
在CentOS7.X中,systemd統一管理著所有unit的啟動日誌,systemd-journald就是一個被systemd管理的進型日誌管理服務,可以收集來自核心、系統早期啟動階段的日誌、系統守護程序在啟動和執行中的標準輸出和錯誤資訊,還有syslog的日誌。該日誌服務僅僅把日誌集中儲存在單一結構的日誌檔案/run/log中,由於日誌是經過壓縮和格式化的二進位制資料,所以在檢視和定位的時候很迅速,我們可以只用journalctl一條命令就能檢視所有日誌(核心日誌和 應用日誌)。
[linuxidc@localhost www.linuxidc.com]$ systemctl list-units|grep journal*
systemd-journal-flush.service loaded active exited Flush Journal to Persistent Storage
systemd-journald.service loaded active running Journal Service
systemd-journald.socket loaded active running Journal Socket
對於journal的配置,我們可以參見配置檔案:/etc/systemd/journald.conf,可以根據實際情況進行自定義,預設情況下並不會持久化儲存日誌,只會保留一個月的日誌。如果需要永久保留改日誌檔案呢?
二、操作步驟
1.建立相關的目錄來存放journal日誌,修改許可權,重啟systemd-journal服務。
[linuxidc@localhost www.linuxidc.com]$ sudo mkdir /var/log/journal
[linuxidc@localhost www.linuxidc.com]$ sudo chgrp systemd-journal /var/log/journal
[linuxidc@localhost www.linuxidc.com]$ sudo chmod g+s /var/log/journal
[linuxidc@localhost www.linuxidc.com]$
sudo systemctl restart systemd-journald
2.重啟數次觀察日誌記錄結果。
[linuxidc@localhost www.linuxidc.com]$ journalctl --list-boots
Hint: You are currently not seeing messages from other users and the system.
Users in the 'systemd-journal' group can see all messages. Pass -q to
turn off this notice.
0 dcd3dfd0f02b4f5aa756e1dd24d0d927 一 2018-10-22 20:23:30 CST—一 2018-10-22 20:
lines 1-1/1 (END)
從上面我們可以清晰地看到本日內的一次引導記錄。
3.觀察最近一次引導過程。
[linuxidc@localhost www.linuxidc.com]$ journalctl -b 0
提示:您目前沒有看到來自其他使用者和系統的訊息。“systemd-journal”組中的使用者可以檢視所有訊息。 通過-q關閉此通知。
4.之前/run/log/journal目錄已經不存在,取而代之的是/var/log/journal目錄。
三、總結
journalctl是一個非常好用的日誌檢視命令。
Linux公社的RSS地址 : ofollow,noindex" target="_blank">https://www.linuxidc.com/rssFeed.aspx
本文永久更新連結地址: https://www.linuxidc.com/Linux/2018-10/154964.htm