0

0

Linux journald 与 syslog 使用技巧

舞姬之光

舞姬之光

发布时间:2026-02-26 11:32:59

|

528人浏览过

|

来源于php中文网

原创

journalctl查不到开机前日志是因为journald默认未启用持久化,日志仅存于内存或/volatile目录;需创建/var/log/journal并重启journald服务才能保存跨重启日志。

linux journald 与 syslog 使用技巧

journalctl 查不到开机前日志?先确认持久化是否启用

默认情况下,journald 日志只存在内存或 /run/log/journal/(volatile),重启即清空。所谓“查不到上次关机前的日志”,不是命令用错了,而是根本没存下来。

  • 检查是否已启用持久化:ls /var/log/journal/ —— 若报错“No such file”,说明还没开启
  • 启用步骤三步走:sudo mkdir -p /var/log/journalsudo systemd-tmpfiles --create --prefix /var/log/journalsudo systemctl restart systemd-journald
  • 注意:启用后首次重启才会开始记录前序启动日志;此前的开机记录依然不可恢复
  • 权限陷阱:若 journalctl -b -1 仍报 No journal files were found,大概率是 /var/log/journal/ 所有者不是 root:systemd-journal,用 sudo chown root:systemd-journal /var/log/journal 修正

rsyslog 为什么收不到 journald 日志?重点看 imjournal 和组权限

rsyslog 默认不直接读取 /dev/log,而是通过 imjournal 模块从 journald 的二进制日志中拉取数据。模块没加载、用户没加组、journald 没跑稳,三者任一缺失都会导致日志断流。

  • 确认模块已启用:grep "imjournal" /etc/rsyslog.conf 应返回 $ModLoad imjournal;若被注释,取消注释并重启服务
  • 检查 syslog 用户是否在 systemd-journal 组:getent group systemd-journal;若无 syslog,执行 sudo usermod -a -G systemd-journal syslog
  • 验证 journald 是否运行:systemctl is-active systemd-journald 必须返回 active;若为 inactiversyslog 就是空转
  • 常见现象:/var/log/messages 有内容但 /var/log/secure 为空?很可能是 authpriv.* 规则被其他配置覆盖,或 imjournal 未启用导致认证日志压根没进 rsyslog 流水线

日志级别和设施过滤别硬背,用 journalctl 原生字段更准

传统 rsyslogauthpriv.info 这类写法,在 journalctl 里并不直接对应——它用的是结构化字段,比如 SYSLOG_FACILITYPRIORITY,且优先级数值反直觉(0=emerg,7=debug)。

瑞宝通JAVA版B2B电子商务系统
瑞宝通JAVA版B2B电子商务系统

瑞宝通B2B系统使用当前流行的JAVA语言开发,以MySQL为数据库,采用B/S J2EE架构。融入了模型化、模板、缓存、AJAX、SEO等前沿技术。与同类产品相比,系统功能更加强大、使用更加简单、运行更加稳 定、安全性更强,效率更高,用户体验更好。系统开源发布,便于二次开发、功能整合、个性修改。 由于使用了JAVA开发语言,无论是在Linux/Unix,还是在Windows服务器上,均能良好运行

下载
  • 查 SSH 登录失败(含 PAM 认证拒绝):journalctl SYSLOG_IDENTIFIER=sshd PRIORITY=3(3=err)比 -u sshd 更精准,后者可能漏掉 pam_faillock 等独立单元日志
  • 过滤所有认证相关日志(含 sudo、su、login):journalctl _COMM=pam_faillock _COMM=sudo _COMM=login 或直接 journalctl SYSLOG_FACILITY=10(10=auth)
  • 避免误区:journalctl -p err 只过滤 PRIORITY=3,但有些关键警告(如证书过期)记为 PRIORITY=4(warning),需显式写 PRIORITY=4 或用 PRIORITY=3..7
  • 性能提示:加 --no-pager--quiet 可显著加快大范围过滤速度,尤其在脚本中

rsyslog 规则中 mail.none 之类排除项,实际影响的是 journal→rsyslog 的转发粒度

很多人以为 mail.none 是让 journald 不记邮件日志,其实它只控制 rsyslogimjournal 接收后“要不要落盘到 /var/log/maillog”。journald 本身照单全收,只是 rsyslog 主动丢弃了这部分转发请求。

  • 想彻底禁用某类日志采集?得去改 journald 配置:/etc/systemd/journald.conf 中设 ForwardToSyslog=no 或调整 MaxLevelStore=
  • 典型误配:*.info;mail.none /var/log/messages + mail.* /var/log/maillog 表面合理,但如果 imjournal 未启用,mail.* 规则就完全失效——/var/log/maillog 会一直为空
  • 调试技巧:临时加一条 *.* /var/log/all.log,再对比 journalctl -o json | jq '.SYSLOG_IDENTIFIER',能快速确认哪些标识符实际在 journal 中产生,避免规则写错对象

最常被忽略的一点:journald 和 rsyslog 是两个独立服务,各自有缓存、队列、权限模型。出问题时别默认“配置文件改了就行”,先分别确认 systemctl status systemd-journaldsystemctl status rsyslog 的 Active 状态、Latest log line 时间戳、以及 journalctl -u rsyslog -n 20 里有没有 module load error 或 permission denied。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

448

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

544

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

324

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

81

2025.09.10

scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

391

2023.10.18

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

348

2023.10.25

mysql标识符无效错误怎么解决
mysql标识符无效错误怎么解决

mysql标识符无效错误的解决办法:1、检查标识符是否被其他表或数据库使用;2、检查标识符是否包含特殊字符;3、使用引号包裹标识符;4、使用反引号包裹标识符;5、检查MySQL的配置文件等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

198

2023.12.04

Python标识符有哪些
Python标识符有哪些

Python标识符有变量标识符、函数标识符、类标识符、模块标识符、下划线开头的标识符、双下划线开头、双下划线结尾的标识符、整型标识符、浮点型标识符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

310

2024.02.23

batoto漫画官网入口与网页版访问指南
batoto漫画官网入口与网页版访问指南

本专题系统整理batoto漫画官方网站最新可用入口,涵盖最新官网地址、网页版登录页面及防走失访问方式说明,帮助用户快速找到batoto漫画官方平台,稳定在线阅读各类漫画内容。

331

2026.02.25

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 9.7万人学习

Git 教程
Git 教程

共21课时 | 3.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号