使用非文件目标的模板修改消息格式

时间:2019-01-03 21:10:12

标签: syslog-ng

使用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}宏的帮助下标记消息。如果还有其他标记方法,请告诉我。

1 个答案:

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