温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何远程发送Syslog日志

发布时间:2026-07-15 03:03:49 来源:亿速云 阅读:143 作者:小樊 栏目:系统运维

要实现远程发送 Syslog 日志,本质上就是把本地的 Syslog 日志通过网络发送到远程 Syslog 服务器(Receiver)。下面按原理 → 常见方式 → 配置示例 → 排错建议的顺序说明。


一、Syslog 远程发送的基本原理

Syslog 支持两种常见传输方式:

协议 端口 是否可靠 说明
UDP 514 否 默认、最常用,但可能丢包
TCP 514 是 更可靠,配置稍复杂
TLS(RFC 5425) 6514 是 加密传输,企业常见

生产环境推荐 TCP / TLS,测试环境可用 UDP。


二、常见场景与架构

+----------------+        UDP/TCP        +--------------------+
|  应用 / 主机    |  ---------------->   |  Syslog Server     |
|  (rsyslog /     |                      |  (rsyslog / syslog-ng) |
|  应用直接发送)  |                      +--------------------+
+----------------+

三、最常见方式:rsyslog 发送远程日志(Linux)

1️⃣ 确认 rsyslog 已安装

rsyslogd -v

2️⃣ 配置客户端(发送端)

编辑配置文件(常见路径):

vim /etc/rsyslog.conf
# 或
vim /etc/rsyslog.d/remote.conf

✅ UDP 方式(最简单)

*.* @192.168.1.100:514

@ 表示 UDP

✅ TCP 方式(推荐)

*.* @@192.168.1.100:514

@@ 表示 TCP

✅ 只发送指定日志(示例)

authpriv.* @@192.168.1.100:514

3️⃣ 重启 rsyslog

systemctl restart rsyslog

四、配置 Syslog 服务器(接收端)

1️⃣ 启用 UDP / TCP 接收

编辑 /etc/rsyslog.conf:

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

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

2️⃣ 按来源或级别存储

if $fromhost-ip startswith '192.168.1.' then /var/log/remote.log
& stop

3️⃣ 重启服务

systemctl restart rsyslog

五、使用 syslog-ng(另一种常见方案)

客户端

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

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

六、应用直接发送 Syslog(无需 rsyslog)

Python 示例

import logging
import logging.handlers

handler = logging.handlers.SysLogHandler(address=('192.168.1.100', 514))
logger = logging.getLogger()
logger.addHandler(handler)

logger.error("This is a remote syslog message")

七、防火墙与网络检查

# UDP
firewall-cmd --add-port=514/udp --permanent

# TCP
firewall-cmd --add-port=514/tcp --permanent

firewall-cmd --reload

八、验证是否成功

在接收端查看

tail -f /var/log/remote.log

或:

tcpdump -i eth0 port 514

九、常见问题排查

问题 原因
收不到日志 防火墙、端口、协议不匹配
日志乱码 编码问题(UTF-8)
丢日志 使用 UDP
权限问题 SELinux
setenforce 0   # 临时关闭 SELinux 测试

十、进阶建议

✅ 生产环境推荐:

  • TCP + 本地队列
  • 使用 TLS(rsyslog + stunnel / rsyslog-gtls)
  • 日志集中到 ELK / Splunk / Graylog

如果你愿意,可以告诉我:

  • ✅ 操作系统(CentOS / Ubuntu / 容器)
  • ✅ 是否已有 Syslog 服务器
  • ✅ 日志来源(系统 / 应用 / 网络设备)

我可以给你一份完全贴合你环境的配置方案。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手