Если у меня есть запись в syslog-ng
log {
source (src);
filter (filter1);
filter (filter2);
filter (filter3);
filter (filter4);
destination (all_log)
}
И скажи filter4
это очень разрешительный фильтр и filter3
это фильтр для уничтожения пары надоедливых хостов. Если filter2
и / или filter1
разрешить один из этих надоедливых хостов, он будет зарегистрирован?
Из руководства администратора syslog-ng (версия 2.0 устарела, но используется вами)
Когда оператор журнала включает несколько операторов фильтра, syslog-ng отправляет сообщение в пункт назначения, только если для сообщения верны все фильтры. Другими словами, фильтры связаны логическим оператором И. В следующем примере сообщение не приходит к месту назначения, потому что фильтры являются исключительными (имя хоста клиента не может быть example1 и example2 одновременно).
Так что это имеет смысл, это было бы слишком сложно и недокументировано, если бы все работало по-другому. Так что вам нужно будет найти другой способ добиться того, что вы пытаетесь сделать!
Похоже, что, в общем, вы хотели бы исключить хост, используя not host('HOSTNAME') or (host('HOSTNAME') and level(...) )
как ваш фильтр.