Journal日誌服務
journalctl 用來查詢 systemd-journald 服務收集到的日誌。systemd-journald 服務是 systemd init 系統提供的收集系統日誌的服務。
常用命令行
journalctl
查看所有日誌
journalctl --disk-usage
用於查看目前日誌佔用了多少磁盤空間
journalctl -n 4
查看最新的4行日誌
journalctl --since=2020-06-23
查看從2020-06-23開始的日誌
journalctl --since=13:00
查看從13:00開始的日誌
journalctl --until=2020-06-23
查看截止到2020-06-23的日誌
journalctl --until=13:00
查看截止到13:00的日誌
journalctl --since time --until time
查看某一時間段內的日誌
journalctl -p err
查看error級別的日誌(同理可改爲info、warning等級別)
journalctl -o verbose
查看日誌詳細信息
journalctl _PID=num _COMM=sshd
查看特定pid和特定命令的日誌信息
echo ""> /var/log/journal/2019100817110995251777489178452/system.journal
清空當前正在記錄的日誌文件
journalctl --vacuum-time=1m
僅保留最近一個月的日誌文件
journalctl --vacuum-size=500M
僅保留500MB大小的日誌文件
systemctl restart systemd-journald
服務控制
配置文件參數詳解
配置文件所在位置:/etc/systemd/journald.conf
默認狀態所有選項均爲註釋狀態
[Journal]
Storage=auto #存儲日誌文件位置("volatile" 表示僅保存在內存中,路徑:/run/log/journal 、"persistent" 表示優先保存在磁盤上,路徑:優先保存在 /var/log/journal、"auto"默認值、"none"不保存任何日誌)
Compress=yes #壓縮存儲大於特定閾值的對象
Seal=yes #如果存在一個"sealing key", 那麼就爲所有持久保存的日誌文件啓用 FSS驗證
SplitMode=uid #是否按用戶進行日誌分割(分割策略:"uid" 表示每個用戶都有專屬日誌文件系統用戶仍寫進系統日誌,"none" 不進行日誌分割,所有用戶日誌均寫進系統日誌
SyncIntervalSec=5m #向磁盤刷寫日誌時間間隔(error以上,不含error級別日誌會立即刷寫)
RateLimitInterval=30s
RateLimitBurst=1000 #上下兩個選項表示在30s內每個服務最多紀錄1000條日誌,多餘日誌丟棄
SystemMaxUse= #全部日誌最大佔用磁盤空間
SystemKeepFree= #除日誌文件之外,至少保留多少空間給其他用途(磁盤)
SystemMaxFileSize= #單個日誌文件最大佔用磁盤空間
RuntimeMaxUse= #全部日誌最大佔用內存空間
RuntimeKeepFree= #除日誌文件之外,至少保留多少空間給其他用途(內存)
RuntimeMaxFileSize= #單個日誌文件最大佔用內存大小
MaxRetentionSec= #日誌文件最大保留期限(超過該時間自動刪除)
MaxFileSec=1month #日誌滾動時間間隔
ForwardToSyslog=yes #表示是否將接收到的日誌消息轉發給傳統的 syslog 守護進程
ForwardToKMsg=no #表示是否將接收到的日誌消息轉發給內核日誌緩衝區(kmsg)
ForwardToConsole=no #表示是否將接收到的日誌消息轉發給系統控制檯
ForwardToWall=yes #表示是否將接收到的日誌消息作爲警告信息發送給所有已登錄用戶
TTYPath=/dev/console
MaxLevelStore=debug #表示記錄到日誌中的最高日誌等級
MaxLevelSyslog=debug #轉發給syslog進程的最高日誌等級
MaxLevelKMsg=notice #轉發給內核日誌緩衝區(kmsg)的最高日誌等級
MaxLevelConsole=info #轉發給系統控制檯的最高日誌等級
MaxLevelWall=emerg #置作爲警告信息發送給所有已登錄用戶的最高日誌等級
LineMax=48K #每條日誌記錄最大的字節長度,超長部分自動打分割符進行分割
~