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

如何用syslog-ng为指定日志添加TCP标签后发送至远程日志收集器

修正syslog-ng配置:给指定日志添加TCP标签并发送到远程收集器

我来帮你搞定这个配置问题,先拆解下你原配置里的几个错误:

  • Filter语法错误:(info,err,warn,)末尾多了个逗号,而且facility(tcp)不是你需要的——你是要给特定文件的日志加标签,不是过滤系统里标记为tcp设施的日志。
  • Source里的tags用法错误:syslog-ng的source模块不能直接给日志加标签,标签需要通过rewrite规则在日志处理阶段添加。

下面是修正后的完整配置片段,完全满足你的需求:

# 读取指定的自定义日志文件,no-parse表示不解析标准syslog格式(因为这是你的业务日志)
source S_tcp { 
    file("/var/log/tcp/s.log" flags(no-parse)); 
};

# 定义rewrite规则:给匹配到的日志添加"TCP"标签
rewrite r_add_tcp_tag { 
    set_tag("TCP"); 
};

# 远程日志收集器的目标配置(这个你原来的是对的,保留即可)
destination logcollector { 
    udp("192.168.12.1" port(514)); 
};

# 日志流转路径:读取源日志 → 添加TCP标签 → 发送到远程收集器
log { 
    source(S_tcp); 
    rewrite(r_add_tcp_tag); 
    destination(logcollector); 
};

如果之后你需要过滤带TCP标签的日志做其他处理,还可以加个filter:

filter f_has_tcp_tag { tags("TCP"); };

然后在log路径里加入filter(f_has_tcp_tag);即可。

配置修改后,记得重启syslog-ng服务生效:

systemctl restart syslog-ng

内容的提问来源于stack exchange,提问作者Unixer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:40:33