在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
通过删除转发时间戳
如何转发所需的格式?
答案 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);
};