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

如何将Syslog-NG输出JSON格式syslog的键转为小写?

问题

已成功配置Syslog-ng v3.38在514端口接收日志并转发至远程Kafka主题,且可添加自定义标签。但默认宏(如HOST、FACILITY等)的键为大写,需要将所有键转为小写(如HOST改为host),不关注值的大小写。尝试在format-json中添加--key lowercase --value lowercase等参数未成功,当前kafka.conf配置如下:

@define kafka-implementation kafka-c

options {                                                                 
keep-hostname(yes);
};

source s_net_kafka {
tcp(ip(0.0.0.0) port(514));
udp(ip(0.0.0.0) port(514) so_rcvbuf(26214400));
};
######################################################################################
destination d_kafka {
kafka(
bootstrap-servers("broker:9092")
topic("syslog")
message("$(format-json --scope rfc5424 --scope nv-pairs --pair ts=datetime($ISODATE) client=$(env clientid))")
);
};
######################################################################################
log {
source(s_net_kafka);
destination(d_kafka);
};

尝试过的配置:

  • message("$(format-json --scope rfc5424 --key lowercase --value lowercase --scope nv-pairs --pair ts=datetime($ISODATE) client=$(env clientid))")
  • message("$(format-json --scope selected-macros --key lowercase --value lowercase --exclude-unnamed --exclude-pairs .*=_.* --escape-special-chars --escape-newlines --escape-solidus --quotes-always --single-line --root .)\n")

询问是否可实现需求,以及正确配置方式。

解决方案

可以实现该需求,问题出在format-json的参数顺序上:--key lowercase这类转换参数需要放在所有--scope和--pair参数之前,否则参数不会生效。

修改后的destination d_kafka配置如下:

destination d_kafka {
kafka(
bootstrap-servers("broker:9092")
topic("syslog")
message("$(format-json --key lowercase --scope rfc5424 --scope nv-pairs --pair ts=datetime($ISODATE) client=$(env clientid))")
);
};

关键说明

  • --key lowercase必须作为format-json的前置参数,这样后续所有scope和pair生成的键都会被转为小写
  • 如果不需要修改值的大小写,可以去掉--value lowercase参数,只保留--key lowercase
  • 自定义的ts和client键本身就是小写,不受转换影响,会直接保留

修改后重启Syslog-ng服务即可生效,此时输出到Kafka的日志中,原大写的宏键(如HOST、FACILITY)都会转为小写形式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 01:20:28