【问题标题】:syslog-ng multiple destinationssyslog-ng 多个目的地
【发布时间】:2015-01-26 05:19:19
【问题描述】:

我们正在使用syslog-ng 通过tcp 将访问日志文件发送到远程服务器。而且我已经知道可以配置多个目的地来完成这项工作,就像:

source s_xxx { file("/xxx/access.log"); };
destination d_one {tcp("1.2.3.4", port(1234));};  
destination d_two {tcp("1.2.3.5", port(1234));};
log {source(s_xxx); destination(d_one); destination(d_two);};

我要弄清楚的是如何将我的内容轮询到这两个目的地(例如循环)。换句话说,我的内容要么发送到d_oned_two,而不是两者。

非常感谢。

【问题讨论】:

    标签: linux syslog-ng


    【解决方案1】:

    我的场景非常相似:我有一个 syslog-ng 收集器,它将消息转发到分析应用程序。它变得超载,我需要分担负载。我对过滤的流量没有要求,也不想维护类型列表。我只是想按照您的要求逐个消息地进行循环。我决定使用 mod(%) 来实现这一点。

    Syslog-ng OSE v3.7.2:

    destination d_net_qr1 { network("ip1"); };
    destination d_net_qr2 { network("ip2"); };
    
    filter f_qr1     { "$(% ${RCPTID} 2)"  eq "0"  };
    filter f_qr2     { "$(% ${RCPTID} 2)"  eq "1"  };
    
    log { source(s_net); filter(f_qr1); destination(d_net_qr1); };    
    log { source(s_net); filter(f_qr2); destination(d_net_qr2); };
    

    【讨论】:

      【解决方案2】:

      syslog-ng 开源版目前没有直接的方式以循环方式发送消息。如果您想为负载平衡执行此操作,您可能会想出一个过滤器,使用 $SEC 宏每隔几秒在目标之间切换一次并比较宏值,请参阅http://www.balabit.com/sites/default/files/documents/syslog-ng-ose-3.6-guides/en/syslog-ng-ose-v3.6-guide-admin/html/filters-comparing.html

      HTH,

      问候,

      罗伯特

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-15
        • 2016-02-03
        • 1970-01-01
        相关资源
        最近更新 更多