如何删除转发时间戳? OSE 版本 Syslog-NG

Posted

技术标签:

【中文标题】如何删除转发时间戳? OSE 版本 Syslog-NG【英文标题】:How to remove forwarding timestamp? OSE version Syslog-NG 【发布时间】:2018-10-31 16:48:33 【问题描述】:

关注answer,

我已尝试使用以下配置在 Syslog-NG 3.17 OSE version 中进行更改,

@version: 3.17

@include "scl.conf"

options 
;

source s_network_to_forward 
        network(
                flags(no-parse)
                transport(udp)
                port(514)
                keep-timestamp(no)
                persist-name("somekey")
        );
;


template forward_template 
        template($RAWMSG);
        template_escape(no);
;

destination forward_to_syslog2
        network("1.2.3.4" transport(udp)  port(514) template(forward_template));
;

log 
        source(s_network_to_forward);
        destination(forward_to_syslog2);
;

要转发的消息:Oct 31 16:44:29.071 UTC: %SYS-3-DUP_TIMER: Same tty2 in linewatch_timers, type 2

以上配置可以转发消息,如下图(额外的header为粗体):

10 月 31 日 12:44:29 X.X.X.X 5277586: Oct 31 16:44:29.071 UTC: %SYS-3-DUP_TIMER: Same tty2 in linewatch_timers, type 2

X.X.X.X 显示实际发件人地址(如预期)、进程 ID(5277586)和转发时间戳Oct 31 12:44:29

但是

希望只转发Oct 31 16:44:29.071 UTC: X.X.X.X 5277586: %SYS-3-DUP_TIMER: Same tty2 in linewatch_timers, type 2

通过删除转发时间戳


如何转发需要的格式?

【问题讨论】:

【参考方案1】:

如果您想在消息发送时转发消息,$RAWMESSAGE 宏是个好主意,但默认情况下它是空的(因为它会使消息内存占用更大)。

您必须在源配置中添加一个额外的标志flags(...,store-raw-message)。 (见相关documentation)

您的配置将如下所示:

@version: 3.17

@include "scl.conf"

options 
;

source s_network_to_forward 
        network(
                flags(no-parse,store-raw-message)
                transport(udp)
                port(514)
                keep-timestamp(no)
                persist-name("somekey")
        );
;


template forward_template 
        template("$RAWMSG");
        template_escape(no);
;

destination forward_to_syslog2
        network("1.2.3.4" transport(udp)  port(514) template(forward_template));
;

log 
        source(s_network_to_forward);
        destination(forward_to_syslog2);
;

【讨论】:

以上是关于如何删除转发时间戳? OSE 版本 Syslog-NG的主要内容,如果未能解决你的问题,请参考以下文章

如何将日志从 docker 容器转发到主机 journald/syslog 服务?

使用 docker-compose 将 json 写入 syslog

Spring MVC @Controller中转发或者重定向到其他页面的信息怎么携带和传递(Servlet API对象)HttpServletRequestHttpServletRespose

Fluentd:将 syslog 事件转发到 sensu

Spring MVC @Controller中转发或者重定向到其他页面的信息怎么携带和传递(Servlet API对象)HttpServletRequestHttpServletRespose(代码片

Syslog-ng配置ElasticSearch