syslog 协议可实现多系统日志集中监控,服务端用 rsyslog 启用 tcp 监听并按主机名分类存储,客户端配置转发规则,跨平台兼容 udp/tcp,再对接 elk/loki 等平台实现分析告警。

用 Syslog 协议把多系统日志集中到一个监控中心,核心是让所有设备“说话”,让中心服务器“听懂并存好”。不依赖商业软件,纯协议级对接就能跑通,关键是收发两端配置对齐、网络通、格式可控。
服务端:开启监听并分类存储
中心节点需主动接收日志,推荐用 rsyslog(多数 Linux 发行版默认)或 syslog-ng。以 rsyslog 为例:
- 启用 TCP 接收(比 UDP 更可靠,支持重传和连接管理):取消
/etc/rsyslog.conf中这两行的注释:module(load="imtcp")input(type="imtcp" port="514") - 按主机名隔离日志,避免混杂:添加模板规则
$template RemoteLogs,"/var/log/remote/%HOSTNAME%/%SYSLOGFACILITY-TEXT%.log"<br>*.* ?RemoteLogs
- 创建目录并授权:
sudo mkdir -p /var/log/remote && sudo chown -R syslog:adm /var/log/remote - 开放防火墙端口:
sudo ufw allow 514/tcp(Ubuntu)或sudo firewall-cmd --add-port=514/tcp --permanent && sudo firewall-cmd --reload(CentOS/RHEL)
客户端:统一转发且保留本地副本
每台待监控设备(Linux、网络设备、甚至部分 Windows 工具)都需配置发送规则:
- Linux 主机(rsyslog):在
/etc/rsyslog.d/99-remote.conf中写入*.* @@(o)192.168.10.100:514
其中@@表示 TCP,(o)跳过 TLS 主机名验证,192.168.10.100是中心服务器 IP - 网络设备(如 Cisco、华为交换机):在 CLI 中配置
logging 192.168.10.100,确保使用 TCP(部分型号需显式指定 transport tcp) - 无需额外操作即可保留本地日志——rsyslog 默认同时写本地文件和转发,不影响原有排查习惯
跨平台兼容:Windows 和嵌入式设备也能接入
Syslog 是标准协议,只要设备支持 UDP/TCP 发送,就能加入体系:
- Windows 系统可安装 Visual Syslog Server 作为接收端,或用第三方工具(如 Kiwi Syslog Server、nxlog)作为客户端转发日志到 Linux 中心节点
- 路由器、防火墙、打印机等网络设备,通常在“Logging”或“System Log”设置页填写中心服务器 IP 和端口(514),选择协议(建议优先试 TCP)
- 若设备只支持 UDP,服务端需同时启用 imudp 模块,并注意 UDP 无确认机制,高丢包环境建议搭配日志重发策略或改用 TCP
对接监控平台:不止于归档,更要可查可用
集中存储只是第一步,真正发挥价值需接入分析层:
- 直连 ELK:Logstash 配置
input { syslog { port => 514 } },自动解析时间、主机、程序名等字段,索引到 Elasticsearch,Kibana 建立仪表盘 - 轻量选型 Loki:Promtail 可采集
/var/log/remote/**/*下所有文件,打上host=xxx标签,推送到 Loki,Grafana 查询快、告警准 - 不做二次解析时,也可用 rsync 或 inotify 实时同步
/var/log/remote/目录到 SIEM 工具(如 Wazuh、Graylog)作原始日志分析











