插件窝 干货文章 Centos系统中journalctl

Centos系统中journalctl

journalctl 日志 bash 查看 695    来源:    2025-05-11

journalctl 命令详解 - CentOS 系统日志管理工具

journalctl 是 systemd 提供的日志查看工具,用于查询和显示 systemd 日志(journal)中的内容。在 CentOS 7 及更高版本中,它取代了传统的 syslog 服务,成为系统日志的主要管理工具。

基本用法

查看全部日志

journalctl

查看内核日志

journalctl -k
# 或
journalctl --dmesg

查看指定服务的日志

journalctl -u service_name.service
# 例如查看 sshd 服务日志
journalctl -u sshd.service

查看最近日志并实时刷新

journalctl -f
# 类似于 tail -f

常用选项

时间过滤

# 查看今天日志
journalctl --since today

# 查看指定时间范围的日志
journalctl --since "2023-01-01 00:00:00" --until "2023-01-02 12:00:00"

# 查看最近1小时日志
journalctl --since "1 hour ago"

日志级别过滤

# 只显示错误信息
journalctl -p err

# 可用级别: emerg(0), alert(1), crit(2), err(3), warning(4), notice(5), info(6), debug(7)

其他常用选项

# 显示完整时间戳
journalctl -o verbose

# 只显示最新的10行
journalctl -n 10

# 显示磁盘使用情况
journalctl --disk-usage

# 清理旧日志
journalctl --vacuum-size=500M
journalctl --vacuum-time=1months

高级用法

查看特定进程的日志

journalctl _PID=1234

查看特定用户的日志

journalctl _UID=1000

组合查询

journalctl -u nginx.service _PID=1234 --since yesterday

导出日志

# 导出为文本文件
journalctl > journal.log

# 导出为二进制文件(可重新导入)
journalctl --output=export > journal.export

日志持久化配置

默认情况下,journal 日志存储在 /run/log/journal/ 中,重启后会丢失。要启用持久化存储:

  1. 创建存储目录:
mkdir -p /var/log/journal
  1. 设置权限:
chown root:systemd-journal /var/log/journal
chmod 2755 /var/log/journal
  1. 重启 systemd-journald 服务:
systemctl restart systemd-journald

常见问题解决

日志文件过大

# 限制日志大小
vim /etc/systemd/journald.conf
# 修改以下参数:
SystemMaxUse=500M
RuntimeMaxUse=100M

# 然后重启服务
systemctl restart systemd-journald

查看特定时间启动失败的单元

journalctl --since "1 hour ago" --no-pager | grep -i "failed"

journalctl 是管理现代 Linux 系统日志的强大工具,熟练掌握它可以大大提高系统故障排查的效率。