1.自动换行查看完整日志
通过 --no-pager
选项可以看到自动换行的日志:
[[email protected]]# journalctl -xu docker --no-pager
... ...
Jun 14 15:14:47 localhost dockerd[7333]: time="2019-06-14T15:14:47.817433009+08:00" level=info msg="Docker daemon" commit=481bc77 graphdriver(s)=overlay2 version=18.09.6
Jun 14 15:14:47 localhost dockerd[7333]: time="2019-06-14T15:14:47.818693748+08:00" level=info msg="Daemon has completed initialization"
Jun 14 15:14:47 localhost dockerd[7333]: time="2019-06-14T15:14:47.923160567+08:00" level=info msg="API listen on /var/run/docker.sock"
Jun 14 15:14:47 localhost systemd[1]: Started Docker Application Container Engine.
-- Subject: Unit docker.service has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit docker.service has finished starting up.
--
-- The start-up result is done.
2. 查看某个时间段的日志
[[email protected]]# journalctl -xu --since 11:30 --until 11:40 kubelet --no-pager
... ...
Jul 03 11:36:53 host-57-86 kubelet[11191]: I0703 11:36:53.893873 11191 kubelet_node_status.go:283] Setting node annotation to enable volume controller attach/detach
Jul 03 11:36:53 host-57-86 kubelet[11191]: I0703 11:36:53.900914 11191 kubelet_node_status.go:72] Attempting to register node host-57-86
Jul 03 11:36:53 host-57-86 kubelet[11191]: E0703 11:36:53.902687 11191 kubelet_node_status.go:94] Unable to register node "host-57-86" with API server: nodes "host-57-86" is forbidden: node "host-86" is not allowed to modify node "host-57-86"
... ...
3. 查看指定 service 的日志
[[email protected]]# journalctl -u <service>
4. 持续查看日志文件
[[email protected]]# journalctl -f -u <service>
5. 日志级别过滤
除了通过 PRIORITY=
的方式,还可以通过 -p
选项来过滤日志的级别。 可以指定的优先级如下:
# 0: emerg
# 1: alert
# 2: crit
# 3: err
# 4: warning
# 5: notice
# 6: info
# 7: debug
[[email protected]]# journalctl -p err
6. 格式化输出的结果
如果需要对日志记录进行处理,你需要的格式来简化日志分析工作。幸运的是,journalctl 能够以多种格式进行显示,只须添加 -o
选项即可。-o
选项支持的类型如下:
short:这是默认的格式,即经典的 syslog 输出格式。
short-iso:与 short 类似,强调 ISO 8601 时间戳
verbose:显示全部字段,包括通常被内部隐藏的字段
export:适合传输或备份的二进制格式。
json:标准 JSON 格式,每行一条
json-pretty:格式化的 JSON 格式
cat:只显示信息字段本身。
假设这里我想以 Json 的格式输出 prometheus 的最后 10 条日志:
[[email protected]]# journalctl -u prometheus -n 10 -o json
7. 查看 journal 日志占用空间
[[email protected]]# journalctl --disk-usage -m