游客发表

日志查看神器 journalctl 详解

发帖时间:2025-11-04 19:13:01

今天分享一下 journalctl日志查看工具,日志它不仅功能强大,神器而且使用灵活,详解可以说是日志现代 Linux 系统日志查看的「瑞士军刀」。

1. 什么是神器 journalctl?

journalctl 是 systemd 的一部分,用于查看由 systemd-journald 收集的详解日志数据。systemd-journald 会收集内核、日志服务、神器标准输出、详解标准错误以及应用程序的日志日志信息,亿华云并统一管理、神器存储。详解

相比传统的日志 syslog + tail 方式,journalctl 提供了更强大的神器过滤、格式控制和时间跳转能力。详解

2. 基础用法

(1) 查看所有日志

复制# 打印所有级别的日志 journalctl1.2.

默认按时间顺序输出所有日志,可能非常长。

(2) 实时查看日志(相当于 tail -f)

复制journalctl -f1.

适合监控服务运行状态,实时滚动显示最新日志。

(3) 查看系统启动日志

复制journalctl -b1.

-b 参数表示查看当前启动周期的日志。-x参数显示详细信息:

复制journalctl -xb # 过滤报错信息 journalctl -xb |grep -i error1.2.3.4.

(4) 按时间范围过滤日志

复制journalctl --since "2025-04-20 09:00" --until "2025-04-23 12:00" journalctl --since "2 hours ago"1.2. 3. 强大的过滤机制

(1) 按服务过滤日志

复制journalctl -u docker.service journalctl -u nginx.service1.2.

可以看到 nginx 服务的IT技术网所有日志。

(2)  查看特定 PID 的日志

复制journalctl _PID=12341.

(3) 按用户 ID 过滤

复制journalctl _UID=10001.

(4) 查看内核日志(类似 dmesg)

复制journalctl -k1. 4. 日志持久化配置

(1) 默认日志是临时的吗?

journal产生的日志默认是临时,有些 Linux 发行版默认日志存储在 /run/log/journal/,属于非持久化,重启就没了。

(2) 如何开启日志持久化?

复制sudo mkdir -p /var/log/journal sudo systemd-tmpfiles --create --prefix /var/log/journal sudo systemctl restart systemd-journald1.2.3.

重启后日志就会存储在 /var/log/journal/,永久保存。

5. 管理日志空间

修改 /etc/systemd/journald.conf,添加如下配置:

复制SystemMaxUse=500M # 日志文件最大空间 SystemKeepFree=100M # 至少保留这么多磁盘空间 SystemMaxFileSize=100M # 单个日志文件最大大小 SystemMaxFiles=10 # 最多保留几个文件1.2.3.4.

配置后重启服务生效:

复制sudo systemctl restart systemd-journald1. 6. 按日志级别过滤 复制journalctl -p err # 显示错误及以上级别日志 journalctl -p warning # 显示警告及以上级别日志1.2.

日志级别一览(数字/名称):

数值

名称

说明

0

emerg

紧急,系统不可用

1

alert

需立刻处理

2

crit

严重

3

err

错误

4

warning

警告

5

notice

正常但重要信息

6

info

一般信息

7

debug

调试信息

    热门排行

    友情链接