journalctl--日志查看


在Systemd出現之前,Linux系統及各應用的日志都是分別管理的,Systemd開始統一管理了所有Unit的啟動日志,
systemd-journald 服務是 systemd init 系統提供的收集系統日志的服務,
這樣帶來的好處是只用一個journalctl命令,就可以查看所有內核和應用的日志。

systemd-journald 服務收集到的日志默認保存在 /run/log 目錄中,重啟系統會丟掉以前的日志信息。

journalctl 命令格式為:journalctl [OPTIONS…] [MATCHES…]
journalctl 命令的路徑為:/bin/journalctl

一、基本用法

journalctl -h 查看基本用法參數說明;

journalctl [-b] 查看所有日志,默認顯示本次啟動的所有日志,基本不用,因為太多了;

journalctl -k 查看內核日志;

journalctl -u 查看指定服務的日志;

journalctl --since --until 查看指定時間的日志,時間格式為"2020-05-13 13:14:00";

journalctl -n 指定顯示最近的多少行,默認為10行;

journalctl -f 持續監控日志輸出;

journal --no-pager 設置不分頁顯示;

journalctl -p 查看指定級別的日志;

  操作系統提供了從0 (emerg) 到 7 (debug) 一共7個級別的日志,含義如下:
  0: emerg
  1: alert
  2: crit
  3: err
  4: warning
  5: notice
  6: info
  7: debug

journal -o 設置輸出格式,支持的各種格式如下:

  cat: 只顯示信息字段本身。
  export: 適合傳輸或備份的二進制格式。
  json: 標准JSON,每行一個條目。
  json-pretty: JSON格式,適合人類閱讀習慣。
  json-sse: JSON格式,經過打包以兼容server-sent事件。
  short: 默認syslog類輸出格式。
  short-iso: 默認格式,強調顯示ISO 8601掛鍾時間戳。
  short-monotonic: 默認格式,提供普通時間戳。
  short-precise: 默認格式,提供微秒級精度。
  verbose: 顯示該條目的全部可用journal字段,包括通常被內部隱藏的字段。

除了以上參數外,我們可以通過 "FIELD=VALUE" 的格式來匹配具體的日志記錄,如_PID=1,也可以指定多個field或相同field的多個值來限制篩選;

日志信息的定義也類似一個實體類型,具體的信息被保存在各個對應的字段中,比如 MESSAGE、MESSAGE_ID、_PID、_UID 、_HOSTNAME、_SYSTEMD_UNIT 等等,

通過 man systemd.journal-fields 查看所有可以用來過濾的字段,對於用來篩選的字段,可以使用-F參數來查看所有可以用來過濾的值,例如 journalctl -F _PID。

二、維護和配置

journalctl --disk-usage 查看日志占用的磁盤空間;

journalctl --vacuum-size=500M 設置日志占用的空間;

journalctl --vacuum-time=1month 設置日志保存的時間;

上面的一些維護動作,也可以通過配置參數設置,配置文件為/etc/systemd/journald.conf,常用參數如下:

SystemMaxUse=:指定journal所能使用的最高持久存儲容量。
SystemKeepFree=:指定journal在添加新條目時需要保留的剩余空間。
SystemMaxFileSize=:控制單一journal文件大小,符合要求方可被轉為持久存儲。
RuntimeMaxUse=:指定易失性存儲中的最大可用磁盤容量(/run文件系統之內)。
RuntimeKeepFree=:指定向易失性存儲內寫入數據時為其它應用保留的空間量(/run文件系統之內)。
RuntimeMaxFileSize=:指定單一journal文件可占用的最大易失性存儲容量(/run文件系統之內)

通過設置上述值,大家可以控制 systemd-journald 服務對服務器空間的消耗及保留方式。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM