rsyslog 当日志服务器
rsyslog 是 Linux 上最常用的日志接收组件,安全设备通过 syslog 把日志送到它这里。要把它用好无非三件事:监听方式与端口、按来源与时间分文件存储、轮转与保留策略;同时限制来源地址,避免任意主机都能写入日志。
UDP 还是 TCP
UDP 开销小、配置简单,但网络拥塞时日志会丢且不会告警;TCP 可靠,但要维护连接,设备侧的断线重连行为也要实测。多数环境用 UDP 接收常规日志、对关键设备改用 TCP,并对丢失量做估算,避免把「没收到」误判为「没产生」。
基本信息
| 配置要点 | 监听方式(UDP/TCP)、按来源或主机分文件、轮转策略 |
|---|---|
| 安全要求 | 限制来源地址,避免任意主机写入伪造日志 |
| 验证方式 | 从设备发送测试日志,确认已落盘 |
| 部署位置 | 通常放在内网日志区,配合集中检索与归档 |
| 常见坑 | 单文件过大、磁盘写满、来源未限制 |
典型使用场景
- 自建日志服务器接收防火墙与 IPS 日志
- 按设备分目录存储,便于单独检索与导出
- 日志量增长后调整轮转与保留策略
- 排查日志写入失败、权限或磁盘问题
- 满足合规要求的日志集中留存与检索
- 为 SIEM 或日志平台提供统一接收入口
rsyslog 配置示例
rsyslog 配置示例
module(load="imudp")
input(type="imudp" port="514")
template(name="perHost" type="string" string="/var/log/remote/%HOSTNAME%/%$YEAR%-%$MONTH%.log")
*.* ?perHost
# 用防火墙或 rsyslog 自身规则限制允许写入的来源地址
# 配合 logrotate 设置保留周期与压缩,避免磁盘写满配置项与作用
| 配置项 | 作用 |
|---|---|
| 监听方式 | UDP 简单但会丢包,TCP 可靠但需要维护连接 |
| 分文件模板 | 按主机与月份分文件,便于检索与轮转 |
| 来源限制 | 防止任意主机写入伪造日志,保证日志可信 |
| 轮转策略 | 控制单文件大小与保留周期,防止磁盘写满 |
按主机与月份分文件:全部写进单个文件,既影响检索速度,也让轮转与压缩变得困难。
未限制来源时任意主机都可以写日志,日志可能被伪造,审计价值大打折扣。
接收端口只需对内网设备区开放:把日志接收端口暴露在更大范围,等于给攻击者留下写入与探测面。