RHEL / CentOS 7 管理記錄檔 — Journald


RHEL 及 CentOS 原來使用 rsyslog 管理記錄檔, 在 RHEL / CentOS 7 開始除了保留了 rsyslog 外, 還加入了 journald。systemd 是一個負責開啟, 停止及監察進程狀態的服務, 所有經 systemd 啟動的服務, systemd 會將包括正常啟動, 啟動或結束時的問題經由 journald 寫入紀錄檔, 而 journalctl 則是用作查看 journald 紀錄檔的工具。

以下是 RHEL 及 CentOS 操作 Journald 的實用例子。

檢查目前的紀錄檔:

# journalctl

上面 journalctl 的執行結果與 “tail -f /var/log/messages” 差不多, 分別主要是 journalctl 會將 notice 及 warning 用粗字體, 時間會使用本地時區, 每次 reboot 加上新行, error 會用紅色突顯出來。

查看自今次開機的紀錄檔:

# journalctl -b

查看昨天的紀錄:

# journalctl –since yesterday

查看 error message:

# journalctl -p err

最後 10 件發生的事件:

# journalctl -f

查看 journal 佔用了多少空間:

# journalctl –disk-usage

整合 Journald 與 Rsyslog

CentOS 7 預設沒有將 Journald 與 Rsyslog 整合, 要將兩者整合要開啟檔案 /etc/syslog.conf 設定:

# vi /etc/rsyslog.conf

找到 “$ModLoad imuxsock” 及 “$ModLoad imjournal” 兩行, 並在兩行中間加入以下新行內容, 類似這樣:

$ModLoad imuxsock
$OmitLocalLogging off
$ModLoad imjournal

儲存檔案後離開編輯器。然後開啟檔案 /etc/rsyslog.d/listen.conf:

# vi /etc/rsyslog.d/listen.conf

如果找不到以下一行, 需要自行加入:

$SystemLogSocketName /run/systemd/journal/syslog

儲存後便完成整合 journald 及 rsyslog 了。

2 Comments

  1. yz 27 July 2019
    • Sam Tang 29 July 2019

Leave a Reply