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   # 输出为可读性文本
相关推荐
烛衔溟6 小时前
TypeScript 接口继承与混合类型
linux·ubuntu·typescript
Wireless_wifi613 小时前
QCN9274-Based 2.4G/5G/6G Wireless Modules Tri-Band WiFi 7
人工智能·物联网·5g·ubuntu
烛衔溟14 小时前
TypeScript 接口实战 —— 处理复杂嵌套对象
linux·ubuntu·typescript
坚持就完事了14 小时前
Ubuntu和Centos中安装软件的命令
linux·ubuntu·centos
大肥羊学校懒羊羊2 天前
FAST-LIVO2 一键复现教程(Ubuntu 20.04 / ROS Noetic )
linux·运维·ubuntu
郝亚军2 天前
libmodbus在Ubuntu 22.04上按arm64架构编译方法
linux·运维·ubuntu
学习是种信仰2 天前
复现conda环境及Python 项目路径(PYTHONPATH)问题——基于Ubuntu
python·ubuntu·conda
cen__y2 天前
Linux10(计算机网络01)
linux·运维·服务器·c语言·计算机网络·ubuntu
我先去打把游戏先2 天前
【虚拟机专用】Ubuntu 22.04 LTS 服务器版本镜像下载
linux·服务器·ubuntu
海盗船长没有船y2 天前
避坑指南:Ubuntu 启动报错 “Unable to mount root fs“ 的深层诱因与修复
linux·ubuntu·故障排除·dkms