温馨提示×

debian syslog怎么远程

小樊
59
2026-09-02 15:12:08
栏目: 智能运维

在 Debian 上把 syslog 远程发送/接收 通常有几种常见方式,最常用的是 rsyslog(Debian 默认)。

下面按场景给你说明。


一、Debian 作为 syslog 客户端(把日志发到远程)

1. 安装 rsyslog(一般已装)

sudo apt update
sudo apt install rsyslog

2. 配置发送远程日志

编辑配置:

sudo nano /etc/rsyslog.conf

在文件末尾添加(示例 UDP):

*.* @192.168.1.100:514

如果是 TCP:

*.* @@192.168.1.100:514

说明:

  • 一个 @ = UDP
  • 两个 @ = TCP
  • 192.168.1.100 是远程 syslog 服务器

3. 重启服务

sudo systemctl restart rsyslog

二、Debian 作为 syslog 服务器(接收远程日志)

1. 开启接收模块

编辑:

sudo nano /etc/rsyslog.conf

取消注释或添加:

UDP 接收

module(load="imudp")
input(type="imudp" port="514")

TCP 接收

module(load="imtcp")
input(type="imtcp" port="514")

2. 按来源存日志(可选)

template(name="RemoteLogs" type="string"
  string="/var/log/remote/%HOSTNAME%/%PROGRAMNAME%.log")

if ($fromhost != "localhost") then {
    action(type="omfile" fileCreateMode="0644" template="RemoteLogs")
}

3. 防火墙放行

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

4. 重启

sudo systemctl restart rsyslog

三、使用 syslog-ng(可选)

Debian 也支持 syslog-ng:

sudo apt install syslog-ng

客户端

destination d_remote { tcp("192.168.1.100" port(514)); };
log { source(s_src); destination(d_remote); };

服务端

source s_net { tcp(ip(0.0.0.0) port(514)); };
destination d_remote { file("/var/log/remote/${HOST}.log"); };
log { source(s_net); destination(d_remote); };

四、常见注意事项

  • 514 是默认端口,可改
  • 生产环境建议 TCP + TLS
  • 云服务器注意安全组
  • 日志量大会建议 logrotate

如果你能说明:

  • 是 发送还是接收
  • 用 UDP 还是 TCP
  • 是否 跨公网 / 内网

我可以直接给你一份可用配置文件。

0 踩