使用syslog-ng(v3.3)配置时,如何使用非文件目标的模板修改消息格式。我希望能够执行以下操作:
destination d_syslog_to_agent {
syslog( host.name.company.com transport("udp") port(12345) template("${ISODATE} ${TAGS} ${HOST} ${MESSAGE}\n"));
};
我想在此处启用模板的原因是因为我想在$ {TAGS}宏的帮助下标记消息。如果还有其他标记方法,请告诉我。
答案 0 :(得分:1)
您编写的配置应该可以完成工作。
如果您想在日志消息中添加标签,则可以使用set-tag()
重写规则。
例如:
source s_net8888
{
network(
ip("localhost")
port(8888));
};
destination d_syslog_to_agent
{
syslog(
"localhost"
transport("tcp")
port(12345)
template("${ISODATE} ${TAGS} ${HOST} ${MESSAGE}\n"));
};
log
{
source(s_net8888);
rewrite
{
set-tag(".mytags.test-TAG");
};
destination(d_syslog_to_agent);
};
将日志消息发送到localhost:8888将在localhost:12345上生成以下输出:
338 <38>1 2019-01-09T13:16:13+01:00 localhost prg00000 1234 - - 2019-01-09T13:16:13+01:00 .mytags.test-TAG,.source.s_net8888 localhost seq: 0000000000, thread: 0000, runid: 1547036173, stamp: 2019-01-09T13:16:13 PADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADD