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

时间:2018-10-31 16:48:34

标签: linux logging syslog syslog-ng

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

上述配置能够转发消息,如下所示(额外的标头以粗体显示):

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 个答案:

答案 0 :(得分:0)

如果您要转发已发送的消息,则$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);
};
相关问题