在 Debian 系统上,“远程日志收集”通常指把多台 Debian 主机的系统日志(syslog)集中发送到一台日志服务器,方便统一分析和审计。下面按常见方案 + 实操步骤给你一个清晰指南。
Debian 默认使用 rsyslog,配置简单、稳定。
在集中日志服务器上:
sudo apt install rsyslog
编辑 /etc/rsyslog.conf 或新建:
sudo nano /etc/rsyslog.d/remote.conf
启用 UDP/TCP 接收:
# 使用 TCP(更安全)
module(load="imtcp")
input(type="imtcp" port="514")
# 或使用 UDP
# module(load="imudp")
# input(type="imudp" port="514")
按主机分目录存储:
template(name="RemoteLogs"
type="string"
string="/var/log/remote/%HOSTNAME%/%PROGRAMNAME%.log")
*.* ?RemoteLogs
重启服务:
sudo systemctl restart rsyslog
开放防火墙:
sudo ufw allow 514/tcp
编辑:
sudo nano /etc/rsyslog.d/remote.conf
添加:
*.* @@logserver.example.com:514
@ = UDP@@ = TCP重启:
sudo systemctl restart rsyslog
✅ 日志就会发送到服务器 /var/log/remote/
Debian 10+ 支持:
sudo apt install systemd-journal-remote
sudo systemctl enable --now systemd-journal-remote.socket
sudo journalctl -f --remote
适合 只使用 journald 的环境(不推荐混合 syslog)
如果你要做 ELK / Graylog / Loki:
sudo apt install filebeat
/etc/filebeat/filebeat.yml:
filebeat.inputs:
- type: log
paths:
- /var/log/*.log
output.logstash:
hosts: ["logserver:5044"]
适合:
✅ 使用 TCP + TLS ✅ 限制来源 IP(防火墙 / rsyslog ACL) ✅ 日志服务器单独部署 ✅ 保留时间策略(logrotate)
| 场景 | 推荐 |
|---|---|
| 简单集中 | rsyslog |
| 容器/云原生 | Filebeat / Vector |
| 纯 systemd | journal-remote |
| 审计合规 | rsyslog + TLS |
如果你愿意,我可以:
你目前是哪种环境?