You are currently viewing Journald 資料流

Journald 資料流

Linux journal 資料流

graph TD
A[Services] --> B(systemd-journald)
C(rsyslogd) --> B
C --> D[ /var/log/service.log]

實際上,各個 Service 所產生的 log 並不是直接透過 rsyslogd 接收,而是將資料丟給 systemd-journald 統一接收
rsyslogd 在透過 imjournal 拿取資料後分發至相對應的地方

system-journald

Journal 存放位置

  1. CentOS:預設為 /run/log/journal

    此位置為記憶體位置,重開機後資料會流失,因此在不正常關機的情形下,可能會發生因為 rsyslogd 來不及分發而導致的資料流失

  2. Ubuntu:預設為 /var/log/journal

    此位置需自行處理 logrotate 問題,否則可能會被 journal 資料塞爆硬碟,最好的方法是直接設定參數限制檔案大小

system-journald 設定

# 系統 log 總大小上限
SystemMaxUse=30M
# 系統 log 單檔案大小上限
SystemMaxFileSize=4M
# 運行服務 log 總大小上限
RuntimeMaxUse=30M
# 運行服務 log 單檔案大小上限
RuntimeMaxFileSize=4M
# 以下設定是如果有觸及 rate-limiting 時才要設定
# 不壓縮
Compress=no
# 取消 rate-limiting 限制
RateLimitInterval=0 
MaxRetentionSec=5s

# 另外需在 rsyslogd 中設定
# $IMUXSockRateLimitInterval 0 
# $IMJournalRatelimitInterval 0

提醒:取消 rate-limiting 可能會導致空間使用以及系統資源問題

Beck Yeh

熱愛學習於 Linux 與 程式設計 在網站中分享各式各樣學習到的新知識

發佈留言

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料