在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