You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将syslog-ng的日志转发至journald?

如何将syslog-ng的日志转发至journald?

当然没问题!你想把UDP端口收到的日志通过syslog-ng转发给journald,这个需求完全能实现,而且syslog-ng本身就自带对journald的支持,比第三方工具靠谱多了,还能用上你想要的TLS加密、过滤规则这些功能。我给你详细说下配置步骤:

1. 编辑syslog-ng配置文件

syslog-ng的主配置文件通常是/etc/syslog-ng/syslog-ng.conf,你也可以在/etc/syslog-ng/conf.d/目录下新建一个自定义配置文件(比如udp-to-journal.conf),这样更方便管理。

定义UDP源(监听514端口)

首先添加监听UDP 514端口的源配置:

source s_udp {
    udp(ip(0.0.0.0) port(514));
};

这里ip(0.0.0.0)表示监听所有网卡的514端口,如果你只想监听特定网卡,换成对应IP就行。

定义journald目标

syslog-ng有专门的journald()驱动,直接配置目标指向systemd-journald:

destination d_journal {
    journald();
};

创建日志转发路径

把刚才定义的源和目标关联起来,还可以按需添加过滤规则:

log {
    source(s_udp);
    # 可选:添加过滤规则,比如只转发local0设施的日志
    # filter(f_local0) { facility(local0); };
    # filter(f_local0);
    destination(d_journal);
};

2. 进阶:添加TLS加密支持

如果需要接收加密的syslog流量,你可以把源改成TLS监听的TCP端口(比如6514是标准加密syslog端口):

source s_tls {
    tcp(ip(0.0.0.0) port(6514)
        tls(
            key-file("/etc/syslog-ng/ssl/server.key")  # 你的私钥文件路径
            cert-file("/etc/syslog-ng/ssl/server.crt") # 你的证书文件路径
        )
    );
};

然后把日志路径里的source(s_udp)换成source(s_tls)即可。

3. 验证配置并重启服务

  • 先验证配置文件是否有语法错误:
syslog-ng -s

如果没有输出,说明配置没问题。

  • 重启syslog-ng服务使配置生效:
systemctl restart syslog-ng

4. 测试转发功能

用logger工具发送一条测试日志到UDP 514端口:

logger -n localhost -P 514 "Test message: Forwarded from syslog-ng to journald"

然后用journalctl实时查看journald日志,应该能看到这条测试消息:

journalctl -f

备注:内容来源于stack exchange,提问作者avi9526

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 12:39:36