Ubuntu 24.04 systemd-journald日志系统 journalctl 查看日志

文章目录

      • [1. journald 简介](#1. journald 简介)
      • [2. journald 日志存储位置](#2. journald 日志存储位置)
      • [3. journalctl 常见用法](#3. journalctl 常见用法)

Ubuntu 24.04 采用了现代化的日志管理体系,如果是最小化安装的话,默认只会安装 systemd-journald 日志管理。

1. journald 简介

systemd-journald 是 systemd 套件中的系统日志服务,自 Ubuntu 16.04 起逐渐成为默认日志解决方案。它替代了传统的 syslog 机制,具有以下特点:

  • 统一日志管理:收集系统内核、服务、应用程序的日志
  • 二进制格式存储:日志以 journal 格式存储在 /var/log/journal,支持高效查询
  • 丰富元数据:自动添加时间戳、PID、用户、主机等信息
  • 灵活过滤机制:通过 journalctl 命令实现精准日志筛选

2. journald 日志存储位置

  • 运行时日志:/run/log/journal(临时存储,重启丢失)
  • 持久化日志:/var/log/journal(需手动创建目录并启用)

启用持久化存储:

shell 复制代码
$ sudo mkdir -p /var/log/journal
$ sudo chown root:systemd-journal /var/log/journal
$ sudo chmod 2755 /var/log/journal
$ sudo systemctl restart systemd-journald

3. journalctl 常见用法

// 基础查询命令

shell 复制代码
$ journalctl                      # 按时间倒序显示全部日志(按 q 退出)
$ journalctl -n 50               # 显示最近 50 行日志
$ journalctl --since today       # 筛选今天 0 点至今的日志
$ journalctl --since "2025-06-10 08:00:00" --until "2025-06-10 18:00:00"   # 按时间筛选日志

// 按服务 / 进程过滤

shell 复制代码
$ journalctl -u sshd  # 查看指定服务日志(如sshd)
$ journalctl _PID=1  # 查看指定PID的日志(如PID=1)
$ journalctl _UID=1000  # UID为1000的用户
$ journalctl --user=username  # 用户名

// 按日志级别过滤

shell 复制代码
$ journalctl -p err..emerg    # 查看错误及以上级别日志
$ journalctl -p warning     # 仅查看警告日志

日志级别(从低到高):emerg(紧急)、alert(警报)、crit(严重)、err(错误)、warning(警告)、notice(通知)、info(信息)、debug(调试)

// 按照关键字搜索

shell 复制代码
$ journalctl /usr/sbin/sshd | grep error    # 搜索包含"error"的日志
$ journalctl -f "Failed password for"  # 精准搜索关键词(支持正则),实时追踪SSH登录失败日志
$ journalctl PATH=/var/log/syslog  # 搜索指定路径的日志

// 高级查询语法

shell 复制代码
$ journalctl _SYSTEMD_UNIT=sshd.service "Failed password"   # 组合条件查询(同时满足多个条件)
$ journalctl -u sshd | grep -v "Accepted"   # 排除特定内容

# 按引导会话查询(重启后会话ID重置)
$ journalctl -b  # 当前引导
$ journalctl -b -1  # 上一次引导
$ journalctl --boot=-2  # 倒数第二次引导

// 实时监控与输出

shell 复制代码
$ journalctl -f   # 实时追踪日志(类似tail -f)
$ journalctl -o json  # 输出为JSON格式
$ journalctl -o short-iso   # 输出为可读性文本
相关推荐
欧云服务器5 天前
怎么让脚本命令可以同时在centos、debian、ubuntu执行?
ubuntu·centos·debian
智渊AI5 天前
Ubuntu 20.04/22.04 下通过 NVM 安装 Node.js 22(LTS 稳定版)
ubuntu·node.js·vim
The️5 天前
Linux驱动开发之Read_Write函数
linux·运维·服务器·驱动开发·ubuntu·交互
再战300年5 天前
Samba在ubuntu上安装部署
linux·运维·ubuntu
qwfys2005 天前
How to install golang 1.26.0 to Ubuntu 24.04
ubuntu·golang·install
木尧大兄弟5 天前
Ubuntu 系统安装 OpenClaw 并接入飞书记录
linux·ubuntu·飞书·openclaw
小虾爬滑丫爬5 天前
ubuntu上设置Tomcat 开机启动
ubuntu·tomcat·开机启动
老师用之于民5 天前
【DAY25】线程与进程通信:共享内存、同步机制及实现方案
linux·c语言·ubuntu·visual studio code
小虾爬滑丫爬5 天前
Ubuntu 上设置防火墙
ubuntu·防火墙
林开落L6 天前
解决云服务器内存不足:2 分钟搞定 Ubuntu swap 交换区配置(新手友好版)
运维·服务器·ubuntu·swap交换区