一、为什么选 DSM 做日志服务器#
无需额外采购硬件,一台 NAS 即可 7×24 小时运行,而且 DSM 基于 Linux 内核,自带日志轮转、压缩、ACL 权限体系。
图形化解密,几分钟就可以完成配置,比手撸 rsyslog.conf 更方便,最重要的一点是满足 ISO 27001、等保 2.0 集中审计条款,最低要求——日志不落本地、集中存放 180 天。
二、底层原理(这些了解即可)#
- DSM 的「日志中心」套件底层就是 rsyslog 8.x,外加一个pg数据库用于索引与检索
- 默认监听 514/UDP,可手动再开 514/TCP 与 514/TLS,保证外网穿越不丢包
- 每条日志会被拆成 6 个字段:
facility.priority | timestamp | hostname | tag | msgid | message
并在 pg数据库里建立GIN索引,因此关键字检索速度在千万级数据量下仍能保持在 <2s。
三、如何把 DSM 变成 Rsyslog 服务器#
3.1 安装并启用套件#
- DSM 7.x:套件中心 → 搜索日志中心并进行安装。

- 打开日志中心 左侧 接收日志,新增规则

- 端口保持默认 514/UDP,如需外网穿越再勾「TCP」与「TLS」→ 应用。
3.2 创建独立共享文件夹存储日志数据(防爆盘)#
- 控制面板 → 共享文件夹 → 新建
logs。 - 配额建议:
- 纯文本 50 GB 可存约 2 亿条 300 字节日志,这个根据自身需求进行配置;
- 开启压缩还能再省 60%

- 创建完成后回到日志中心,存储空间 选择刚才的共享文件夹 → 启用自动归档以及压缩功能。

3.3 客户端指向 DSM#
Linux(rsyslog 客户端)#
# /etc/rsyslog.d/50-default.conf 末尾加一行
*.* @dsm ip:514 # 单 @ 代表 UDP;@@ 代表 TCP
# 重启
sudo systemctl restart rsyslog网络设备(以Ruijie为例)#
conf t
logging dsm ip
logging trap informational
end
wrWindows(可选)#
- 这里推荐使用一个开源软件,evtsys, 项目地址:https://github.com/zensquare/evtsys。
- 根据向导进行配置即可。
四、验证与排错#
4.1 实时查看#
打开 DSM「日志中心」→「概览」→ 右上角「实时日志」,应该立刻看到客户端 hostname 出现。
4.2 关键字检索#
搜索框输入 sshd Failed 回车,2 秒内即可定位所有 SSH 爆破来源 IP。
4.3 性能监控#
若接收速率持续 >3 000 条/秒,建议:
- 把 UDP 改成 TCP,防止拥塞丢包;
- 给 NAS 加 SSD 缓存,提高 PostgreSQL 写入 IO
4.4 常见故障表#
| 现象 | 原因 | 解决 |
|---|---|---|
| DSM 收不到日志 | 本地防火墙未放行 514 | 控制面板 → 安全性 → 防火墙 → 新增规则放行 514/UDP |
| 中文乱码 | 客户端与 DSM 字符集不一致 | 客户端 rsyslog 模板加 $EscapeControlCharactersOnReceive off |
| 磁盘爆满 | 未开自动归档 | 启用「按日期归档」+「压缩」+「配额」 |