首页/安全/取证与溯源速查/日志转发链完整性核查
日志溯源53 条

日志转发链完整性核查

集中化日志的前提是链路可靠:转发协议、队列与磁盘缓冲决定断链窗口,取证时要先确认"日志没有缺"。

取证与溯源速查安全更新于 2026-10-13

日志转发链要核查什么

集中化日志把“采集—传输—接收—存储”串成一条链,任一环节出问题都会形成盲区:agent 未启动、传输用 UDP 静默丢包、接收端队列溢出丢消息、磁盘缓冲写满、存储轮转过快。取证前必须先确认这条链是否完整,否则“日志里没有”很可能只是“日志没到”。核查顺序建议从应用侧(源日志是否存在)→ 传输配置(协议与队列)→ 接收侧(队列与写入)→ 存储(保留期与轮转),每一步都留下检查记录。

基本信息

适用平台rsyslog / syslog-ng / journald 转发、Windows 事件转发(WEF)等
关键配置转发动作(omfwd 或 @/@@ 写法)、队列类型与磁盘辅助队列、TLS 选项
常见丢数据原因UDP 传输、内存队列溢出、接收端磁盘满、日志级别过滤
核查入口/etc/rsyslog.conf 与 /etc/rsyslog.d/*.conf、/var/spool/rsyslog/ 队列文件、服务日志
输出要求断链时段需在报告中声明为证据盲区

典型使用场景

  • 确认告警缺失是“没发生”还是“没采集”,避免误判安全状况
  • 评估某段时间日志完整性的可信度,为结论划定边界
  • 排查集中化平台收不到日志的根因(网络、认证、磁盘)
  • 核对源端与集中端记录条数差异,量化丢失规模
  • 为加固提供依据:把易丢数据的配置改为带磁盘队列的可靠传输

核查点

核查点
# 1) 转发动作与协议:单 @ 为 UDP,双 @@ 为 TCP
grep -E '^\*\.\*|omfwd|action\(type' /etc/rsyslog.conf /etc/rsyslog.d/*.conf
# 2) 队列配置:是否使用磁盘辅助队列(丢消息的主要防线)
grep -Ei 'queue\.type|queue\.filename|ActionQueue' /etc/rsyslog.conf /etc/rsyslog.d/*.conf
# 3) 队列积压情况(有内容说明曾出现投递困难)
ls -lh /var/spool/rsyslog/ 2>/dev/null
# 4) 服务侧日志:连接失败、重试与丢弃记录
journalctl -u rsyslog -n 50
# 5) 与集中端对比条数,量化差异

环节对照

环节常见问题核查方式
采集端agent 未启动、级别过滤、规则丢弃查服务状态与配置文件中的过滤条件
传输UDP 丢包、TLS 握手失败确认协议写法与证书配置,检查失败日志
接收端队列内存队列溢出、磁盘队列满看队列文件与服务统计输出
存储保留期过短、轮转策略不当查存储保留策略与最早期记录时间
时间戳各环节时钟不同步对比源日志与集中日志的时间差
UDP 转发在网络拥塞或接收端缓慢时会静默丢包,关键主机建议改用 TCP 或带确认机制的可靠传输,并配置磁盘辅助队列。
队列积压恢复后会集中补传:集中端会出现时间戳连续但实际为延迟到达的记录,按接收时间判断事件顺序会得到错误结论,应以事件自身时间戳为准。

易错点

  • 把日志缺失当作没有活动:链路任一处故障都会造成空白,未核查链路就把“没记录”写进结论是常见错误
  • 忽略 UDP 传输:静默丢包不会留下错误日志,只有对比源端与集中端条数才能发现
  • 按集中端接收时间排序事件:补传会造成时间错位,排序必须用事件自带的时间戳
  • 不检查磁盘队列:磁盘满时队列会丢弃消息,且容易在事后被忽略,需查看队列文件与服务日志
  • 忘记在报告中声明盲区:断链时段未标注会让整份时间线的可信度被质疑

数据来源与参考

  • rsyslog 文档(queues 与 omfwd)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌