syslog-ng несколько направлений

Мы используем 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_one, либо d_two, но не обоим сразу.

Спасибо большое.


person CobbLiu    schedule 26.01.2015    source источник


Ответы (2)


Мой сценарий очень похож: у меня есть сборщик 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); };
person Leo    schedule 09.12.2015

syslog-ng Open Source Edition в настоящее время не имеет прямого способа отправки сообщений в циклическом режиме. Если вы хотите сделать это для балансировки нагрузки, вы, вероятно, можете придумать фильтр, который переключается между пунктами назначения каждые несколько секунд, используя макрос $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

ХТХ,

С уважением,

Роберт

person Robert Fekete    schedule 26.01.2015