温馨提示×

Debian syslog如何远程

小樊
47
2026-07-19 04:02:07
栏目: 智能运维

在 Debian 上实现 syslog 远程日志,常见有两种方式:
rsyslog 远程(TCP/UDP)syslog-ng 远程
下面以 rsyslog(Debian 默认) 为主,给你一套完整可落地方案


一、架构说明

  • 日志发送端(Client):Debian 服务器
  • 日志接收端(Server):集中日志服务器
  • 协议:UDP 514(默认)或 TCP 514(推荐)

二、Server 端配置(接收远程 syslog)

1️⃣ 安装 rsyslog

sudo apt update
sudo apt install rsyslog

2️⃣ 启用 UDP / TCP 接收模块

编辑配置文件:

sudo nano /etc/rsyslog.conf

取消注释(或添加):

# 提供 UDP syslog 接收
module(load="imudp")
input(type="imudp" port="514")

# 提供 TCP syslog 接收(推荐)
module(load="imtcp")
input(type="imtcp" port="514")

3️⃣ 按来源 IP 分目录存储(推荐)

编辑:

sudo nano /etc/rsyslog.d/remote.conf

内容示例:

$template RemoteLogs,"/var/log/remote/%FROMHOST-IP%/%PROGRAMNAME%.log"
*.* ?RemoteLogs
& stop

4️⃣ 重启服务

sudo systemctl restart rsyslog

5️⃣ 防火墙放行

sudo ufw allow 514/tcp
sudo ufw allow 514/udp

三、Client 端配置(发送 syslog)

1️⃣ 编辑 rsyslog 配置

sudo nano /etc/rsyslog.conf

或新建:

sudo nano /etc/rsyslog.d/remote.conf

2️⃣ 添加远程日志服务器

UDP:

*.* @192.168.1.10:514

TCP(推荐):

*.* @@192.168.1.10:514

说明:

  • @ UDP
  • @@ TCP

3️⃣ 重启 rsyslog

sudo systemctl restart rsyslog

四、验证远程 syslog

在 Server 上查看

ls /var/log/remote/
tail -f /var/log/remote/192.168.1.20/some.log

在 Client 上生成测试日志

logger "remote syslog test"

五、常见问题排查

✅ 端口是否监听

ss -lntp | grep 514

✅ 防火墙

sudo ufw status

✅ SELinux(Debian 一般无)

getenforce

✅ rsyslog 状态

systemctl status rsyslog
journalctl -u rsyslog

六、进阶方案(企业常用)

需求 方案
加密传输 rsyslog + TLS
高可靠 TCP + 队列
日志分析 ELK / Graylog
审计合规 远程 + 本地双写
替代 syslog systemd-journal-remote

七、syslog-ng 简要(可选)

配置文件:

/etc/syslog-ng/syslog-ng.conf

示例:

source s_network {
    tcp(ip(0.0.0.0) port(514));
};

destination d_remote {
    file("/var/log/remote/${HOST}/${PROGRAM}.log");
};

log { source(s_network); destination(d_remote); };

八、推荐生产配置

TCP + 目录分存 + 本地保留副本
✅ 日志服务器单独部署
✅ 关键业务日志使用 tag 标识


如果你愿意,我可以:

  • ✅ 给你 防火墙 + 加密 TLS 完整配置
  • ✅ 针对 Debian 11/12 / Proxmox / Docker 特殊场景
  • ✅ 给你 ELK / Graylog 接 rsyslog

直接告诉我你的 使用场景 即可。

0