У меня проблема с получением удаленных журналов из syslog-ng OSE в syslog-ng OSE. Я настраиваю loghost и сейчас - я не понимаю, что делаю не так. Похоже, что фильтры не работают для журналов, полученных с удаленных хостов.
Это часть моей конфигурации, относящейся к loghost:
Клиент (syslog-ng 3.3.5) (он работает хорошо, потому что журналы достигают хоста - я запустил его в режиме отладки, поэтому я смог это подтвердить)
destination d_net { syslog("10.20.8.2" transport ("tcp") port(514) ); };
filter f_auth { facility(auth, authpriv) and not filter(f_debug); };
log { source(s_src); filter(f_auth); destination(d_net); };
и сервер (syslog-ng 3.2.5 - мой сервер syslog-ng.conf часть:
source s_network { tcp(); udp(); };
destination d_loghost_auth { file("/opt/logs/sys/$YEAR-$MONTH-$DAY/auth.log" create_dirs(yes) ); };
filter f_loghost_auth { facility(auth) or facility(authpriv) };
log { source(s_network); filter(f_loghost_auth); destination(d_loghost_auth); };
поэтому, когда я запускаю сервер в режиме отладки и подробной информации и тестирую его с помощью регистратора (от клиента):
logger -n 10.20.8.2 -p auth.info "auth.info test syslog"
я получаю это:
Incoming log entry; line='95 <38>1 2014-12-17T13:03:16+01:00 ibanez logger - - [meta sequenceId="65"] auth.info test syslog'
Filter rule evaluation begins; filter_rule='f_loghost_auth'
Filter node evaluation result; filter_result='not-match', filter_type='facility'
Filter node evaluation result; filter_result='not-match', filter_type='facility'
Filter node evaluation result; filter_result='not-match', filter_type='OR'
Filter rule evaluation result; filter_result='not-match', filter_rule='f_loghost_auth'
Не думаю, что причина в несовпадении версий. Буду признателен за любую помощь!
Проблема заключалась в том, что я использовал исходный драйвер tcp () и udp () [формат BSD] вместо syslog () [формат IETF]. Теперь работает.