如何移除Logstash Syslog输出插件添加的多余时间戳
解决Logstash向rsyslog发送数据时添加多余时间戳的问题
你当前的Logstash管道在向rsyslog服务器发送数据时,消息开头被自动添加了多余的时间戳(示例中Sep 22 04:47:20部分),但原始消息本身已经包含了所需的时间戳(22-09-2022 05:47:20.875),需要移除这个额外生成的时间戳。
原因分析
你使用的syslog输出插件会严格遵循配置的RFC标准(这里是rfc5424)生成完整的syslog报文,其中默认包含时间戳、主机名等头部字段。即便你设置了codec => plain { format => "%{message}" },插件仍会自动添加syslog协议要求的头部信息,这就是多余时间戳的来源。
解决方案
改用tcp输出插件直接发送原始的message内容,同时保留SSL相关配置以保证传输安全。修改后的输出配置如下:
output { # TEST ACTIVITY Logs being sent via TCP to Logreceiver if [ec_part] == "AWS_TEST" { tcp { host => "10.119.140.206" port => "10514" ssl_enable => true ssl_cacert => "/etc/logstash/ca.crt" ssl_cert => "/etc/logstash/server.crt" ssl_key => "/etc/logstash/server.key" codec => plain { format => "%{message}" } } } }
配置说明
- 替换
syslog插件为tcp插件,避免生成syslog协议头部 - 启用
ssl_enable参数,保留原有的SSL证书配置,确保传输安全 - 保持
codec => plain { format => "%{message}" },只发送原始消息内容
这样修改后,发送到rsyslog的消息就不会包含多余的时间戳,只会保留原始的message内容。
内容的提问来源于stack exchange,提问作者abhisheknayak777
相关产品推荐
相关产品推荐

