Linux系统管理员应该知道的journalctl知识

4960阅读 0评论2019-07-15 可怜的猪头
分类:LINUX


1. 基础用法

1.1 查看所有日志(默认显示本次启动的所有日志)

[root@devops-101 ~]# journalctl

查看本次启动的所有日志也可以使用

[root@devops-101 ~]# journalctl -b

1.2 查看内核日志

[root@devops-101 ~]# journalctl -k

1.3 查看指定时间的日志

通过--since和--until选项,可以过滤任意时间限制,显示指定条件之前、之后或之间的日志。

[root@devops-101 ~]# journalctl --since="2018-09-21 10:21:00"

查询一个时间段范围内的日志。

[root@devops-101 ~]# journalctl --since="2018-09-21 10:21:00" --until="2018-09-21 10:22:00"

1.4 根据不同的主题进行过滤筛选

根据服务筛选

[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。

按优先级
操作系统提供了从0 (emerg) 到 7 (debug) 一共7个级别的日志,可以配合-p参数分别查看对应级别的日志。

[root@devops-101 ~]# journalctl -p 5 -u kubelet

7个级别的含义为

1.5 调整显示输出

默认情况,journal输出进入分页模式,用户可以在终端上调整显示的内容,如果要不需要分页,需要加上--no-pager参数。

以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则对于管理员查看日志非常易读。

支持的各种格式如下:

1.6 活动日志跟踪

journalctl也支持类似tail的功能,如通过-n参数指定显示最近的多少行,默认为10行,通过-f参数持续监控日志输出。

2. 维护

2.1 查看日志占用的磁盘空间

[root@devops-101 ~]# journalctl --disk-usage Archived and active journals take up 8.0M on disk.

2.2 设置日志占用的空间

root@devops-101 ~]# journalctl --vacuum-size=500M Vacuuming done, freed 0B of archived journals on disk.

2.3 设置日志保存的时间

[root@devops-101 ~]# journalctl --vacuum-time=1month Vacuuming done, freed 0B of archived journals on disk.

3. 配置

上面的一些维护动作,也可以通过配置参数设置,配置文件位于/etc/systemd/journald.conf。

上一篇:ip命令创建bond
下一篇:定制属于自己的Linux操作系统