rsyslog 集中收集是什么
rsyslog 是 Linux 上主流的日志服务,既写本地文件也支持把日志转发到远端服务器。集中收集的意义有两层:一是防篡改,本机日志被清理后服务器仍有副本;二是长期留存,满足法规对网络日志留存期限的要求。客户端做转发配置,服务器按主机与程序分类落盘。
基本信息
| 适用平台 | Linux 各发行版(RHEL / CentOS / Ubuntu / Debian 等) |
|---|---|
| 客户端配置 | /etc/rsyslog.d/ 下的转发规则文件 |
| 服务器配置 | 按主机名与程序名分目录存储 |
| 传输方式 | UDP 514 简单但易丢包,生产建议 TCP 并叠加 TLS |
| 权限要求 | 修改服务配置需 root,服务端目录仅日志账号可写 |
| 留存要求 | 网络日志按法规与内部制度保存,通常不少于六个月 |
典型使用场景
- 等保整改中落实网络日志集中留存与防篡改要求
- 多台主机日志汇聚到一台日志服务器,便于关联分析
- 安全事件调查时比对本地与服务器副本,判断日志是否被清理
- 把认证日志单独转发到审计库,供日常审阅与告警规则使用
- 日志服务器与业务主机物理或账号隔离,降低被一并攻陷的风险
客户端转发配置
客户端转发配置
# /etc/rsyslog.d/50-remote.conf
*.* @@10.0.0.10:514 # @@ 表示 TCP;生产建议叠加 TLS 传输
# 单独转发认证日志可提高可读性
authpriv.* @@10.0.0.10:514
# 改完先校验再重载,避免日志中断
rsyslogd -N1 && systemctl reload rsyslog服务端落盘配置
服务端落盘配置
# /etc/rsyslog.d/10-remote.conf
$template RemoteLogs,"/var/log/remote/%HOSTNAME%/%PROGRAMNAME%.log"
*.* ?RemoteLogs
& stop配置项与含义
| 配置项 | 含义 | 注意点 |
|---|---|---|
| @@host:port | 使用 TCP 转发日志 | 单 @ 为 UDP,丢包且明文 |
| authpriv.* | 设施选择器,认证与授权类日志 | 审计重点,建议单独转发 |
| $template | 定义落盘路径模板 | 路径含主机名便于溯源 |
| & stop | 匹配后不再继续后续规则 | 避免日志重复落盘 |
| /var/log/remote | 服务端接收目录 | 权限最小化,仅日志账号可写 |
服务器侧目录权限最小化,仅日志服务账号可写;本地删除不影响服务器副本,形成交叉验证。也可以用 journald 转发或专门日志平台替代,思路一致。
验证方式:在客户端用 logger 写一条测试日志,确认服务器目录出现对应记录,并把验证日期记入日志源台账。