logcheck是一个轻量级linux日志审计工具,用于从/var/log/标准日志中过滤识别normal、warning、error三类条目,通过邮件报告异常,需配置logfiles路径并配合journalctl等命令闭环排查。

logcheck 是一个轻量、专注的 Linux 日志审计工具,它不替代 syslog 服务本身,而是作为“守门人”帮助你从海量日志中快速识别异常、可疑或高风险条目。它本身不修复 syslog 故障,但能显著提升你发现 syslog 异常行为的效率——比如日志突然中断、重复错误爆发、权限异常写入等。
logcheck 的核心作用是过滤与分类
它读取 /var/log/ 下的标准日志(如 syslog、messages、auth.log),按预定义规则将内容划分为三类:
- Normal:常规操作(如服务启动、定时任务完成)
- Warning:需关注但未必紧急(如磁盘空间低于 85%、NTP 同步偏差大)
-
Error:明确失败或异常(如
rsyslogd: could not bind to address 0.0.0.0:514: Address already in use、syslog-ng: Configuration file syntax error)
如何部署并让它真正帮上忙
-
安装后默认配置已覆盖常见场景,但需确认其监控范围包含你的 syslog 主日志路径:
- Ubuntu/Debian 系统通常监控
/var/log/syslog - RHEL/CentOS 系统多指向
/var/log/messages - 若使用 syslog-ng 或自定义 rsyslog 输出路径,需编辑
/etc/logcheck/logcheck.conf中的LOGFILES变量,显式添加对应文件
- Ubuntu/Debian 系统通常监控
-
logcheck 默认每天凌晨运行一次,输出通过本地邮件发送。若未收到报告,先检查:
-
systemctl status logcheck是否处于 active(running) -
sudo journalctl -u logcheck -n 20查看最近执行日志,常见失败原因包括:mail 命令不可用、日志文件权限不足(logcheck 运行用户需有读取权)、路径不存在
-
-
报告中出现 Warning 或 Error 条目时,不要直接忽略。例如:
Warning: rsyslogd[1234]: imuxsock: Could not open /dev/log: No such file or directory
表明 Unix 域套接字缺失,可能因 rsyslog 崩溃后未重建,此时应立即执行sudo systemctl restart rsyslog并检查/dev/log是否存在
配合基础排查形成闭环
logcheck 是“预警器”,不是“诊断器”。一旦它标出异常,你需要立刻跟进:
- 对应时间点查
journalctl -u rsyslog --since "2 hours ago"或sudo tail -n 50 /var/log/syslog - 验证服务状态:
sudo systemctl is-active rsyslog和sudo systemctl is-failed rsyslog - 检查配置语法:
sudo rsyslogd -N1(rsyslog)或sudo syslog-ng -s(syslog-ng) - 确认端口占用:
sudo ss -tuln | grep ':514'(UDP/TCP syslog 端口)
它不会告诉你“为什么 syslog 不工作”,但它会第一个告诉你“syslog 刚刚报了严重错误”。











