在Systemd出現以前,Linux系統及各應用的日誌都是分別管理的,Systemd開始統一管理了全部Unit的啓動日誌,這樣帶來的好處就是能夠只用一個 journalctl命令,查看全部內核和應用的日誌。html
[root@devops-101 ~]# journalctl
查看本次啓動的全部日誌也可使用json
[root@devops-101 ~]# journalctl -b
[root@devops-101 ~]# journalctl -k
經過--since和--until選項,能夠過濾任意時間限制,顯示指定條件以前、以後或之間的日誌。工具
[root@devops-101 ~]# journalctl --since="2018-09-21 10:21:00"
查詢一個時間段範圍內的日誌。ui
[root@devops-101 ~]# journalctl --since="2018-09-21 10:21:00" --until="2018-09-21 10:22:00"
根據服務篩選spa
[root@devops-101 ~]# journalctl -u kubelet.service [root@devops-101 ~]# journalctl -u kubelet
根據進程ID查詢
若是進程使用了systemd託管日誌,則能夠經過如下命令查找進程對應的日誌。操作系統
[root@devops-101 ~]# journalctl _PID=1
Systemd journal 有不少能夠用來過濾的字段,能夠經過
man systemd.journal-fields
查看全部能夠用來過濾的字段。對於用來篩選的字段,可使用-F
參數來查看全部能夠用來過濾的值,例如journalctl -F _PID
。debug
按優先級
操做系統提供了從0 (emerg) 到 7 (debug) 一共7個級別的日誌,能夠配合-p參數分別查看對應級別的日誌。日誌
[root@devops-101 ~]# journalctl -p 5 -u kubelet
7個級別的含義爲code
默認狀況,journal輸出進入分頁模式,用戶能夠在終端上調整顯示的內容,若是要不須要分頁,須要加上--no-pager
參數。server
以Json格式輸出
[root@devops-101 ~]# journalctl -p 5 --no-pager -o json
經過-o
參數,能夠設置爲json格式輸出,這對於其餘接收json格式的日誌分析工具很是友好。
[root@devops-101 ~]# journalctl -p 5 --no-pager -o json-pretty
使用json-pretty
則對於管理員查看日誌很是易讀。
支持的各類格式以下:
journalctl也支持相似tail的功能,如經過-n
參數指定顯示最近的多少行,默認爲10行,經過-f
參數持續監控日誌輸出。
[root@devops-101 ~]# journalctl --disk-usage Archived and active journals take up 8.0M on disk.
root@devops-101 ~]# journalctl --vacuum-size=500M Vacuuming done, freed 0B of archived journals on disk.
[root@devops-101 ~]# journalctl --vacuum-time=1month Vacuuming done, freed 0B of archived journals on disk.
上面的一些維護動做,也能夠經過配置參數設置,配置文件位於/etc/systemd/journald.conf
。
來自:https://www.cnblogs.com/cocowool/p/systemd_journal_log.html