facility 与 severity 的分流逻辑
rsyslog 按 facility(消息来源类别)与 severity(严重程度)把日志分流到不同文件,例如认证相关的 authpriv 写入 secure 或 auth.log,计划任务写入 cron,内核消息写入 kern.log。理解这层映射才能解释为什么某类事件出现在某个文件里,也才能解释为什么某个文件里什么都没有。规则中的排除写法会让对应日志在特定目标中缺失,这一点在取证时需要专门记录,否则会把规则造成的缺失误判为记录被清除。
基本信息
| facility | authpriv 认证、cron 计划任务、kern 内核、user 用户进程 |
|---|---|
| severity | 从 emerg 到 debug 共八级,可设置阈值 |
| 规则示例 | authpriv.* /var/log/secure |
| 注意 | 规则中可能出现排除写法,导致某类日志缺失 |
典型使用场景
- 解释某类事件的日志为什么落在特定文件中
- 判断日志文件缺失是配置分流还是记录被清除
- 核对规则改动时间与日志分布变化的关系
- 确认内核与认证日志是否被转发到同一目标
- 为日志采集清单提供依据,避免漏采整个类别
查看分流规则
查看分流规则
grep -vE '^\s*#|^\s*$' /etc/rsyslog.conf | head -20 # 主配置中的有效规则
ls /etc/rsyslog.d/ # 附加规则文件列表
grep -RIn 'authpriv\|cron\.\|kern' /etc/rsyslog.d/ 2>/dev/null | head -20
rsyslogd -N1 2>&1 | tail -5 # 校验配置语法并查看加载情况
ls -l /var/log/secure /var/log/cron /var/log/messages 2>/dev/null # 目标文件实际存在情况facility 对照
| facility | 覆盖范围 | 常见落地文件 |
|---|---|---|
| authpriv | 认证与授权类消息 | secure(RHEL 系)、auth.log(Debian 系) |
| cron | 计划任务执行消息 | cron 或 syslog 中的 cron 条目 |
| kern | 内核消息 | messages、kern.log,也进内核环缓冲 |
| user | 普通用户进程消息 | messages 或 syslog |
同一事件可能同时被多条规则写入不同文件,统计事件数量时要注意去重,否则会出现同一事件被计两次的情况。
severity 阈值设置过高会把低级别事件直接丢弃,日志中看不到某类记录时先检查规则里的阈值,再考虑记录是否被人为清除。
修改日志分流规则会影响后续所有记录的落点,取证阶段如需调整应先留存当前配置与目标文件的现状。
本地分流与远程转发可以并存:同一事件既写入本地文件,也可能被转发到集中服务器,两侧的时间戳与字段并不完全一致,交叉验证前先确认转发链路的完整性。