在Linux系统安全审计中,syslog-ng与rsyslog作为主流的日志处理工具,在内核日志处理方面存在显著差异。本文将通过具体配置案例分析两者在内核日志接收、过滤和存储方面的行为差异。
环境准备
- CentOS 7系统,内核版本3.10.0
- 安装syslog-ng和rsyslog
配置步骤:
- rsyslog配置(/etc/rsyslog.conf):
# 接收内核日志
kern.* /var/log/kern.log
# 过滤内核错误
:kernel:err /var/log/kernel.err
- syslog-ng配置(/etc/syslog-ng/syslog-ng.conf):
source s_kernel {
unix-dgram("/dev/log");
unix-stream("/dev/log");
};
filter f_kernel { facility(kern); };
destination d_kernel {
file("/var/log/kern.log");
};
log { source(s_kernel); filter(f_kernel); destination(d_kernel); };
验证方法:使用logger -p kern.err "test message"测试内核日志处理。通过dmesg和journalctl可观察到两者在日志格式解析上的差异。
实际测试中发现,rsyslog对内核日志的过滤更灵活,而syslog-ng在高并发场景下性能表现更优。建议根据业务需求选择合适的日志处理方案,并定期审查安全配置以防止日志投毒攻击。

讨论