Используя модуль CheckEventLog из NSClient++, как правильно фильтровать два разных типа событий?
У меня возникло странное количество проблем с определением правильного синтаксиса для "filter=in" двух типов событий: предупреждение и ошибка.
Я использую следующую строку:
CheckEventLog -a truncate=1023 MaxWarn=1 MaxCrit=1 file='DFS Replication' filter=in "filter.eventSource='DFS Replication'" "filter.eventSource='DFSR'" "filter.eventType==error" "filter.eventType==warning" "filter+generated=\<5m" descriptions unique syntax='%message%'
"Filter = in" означает "включать" все фильтры, перечисленные в условии; вместо "filter = out" значение исключает все фильтры, перечисленные в условии.
Синтаксис "filter*X" означает:
- '' необязательно (как логическое ИЛИ)
- Требуется '+' (например, логическое И)
- '-' не требуется (как логическое ИЛИ НЕ)
Эта информация собрана из документации.
Странно то, что для меня приведенный выше синтаксис означает: требовать присутствия перечисленных фильтров ('filter = in') из источника событий 'Репликация DFS' ИЛИ 'DFS R', включать в себя все события типа ИЛИ предупреждения или ошибок, которые произошли меньше чем 5 минут назад.
Однако приведенный выше синтаксис возвращает все eventTypes (включая ошибку, предупреждение, информацию) [из перечисленных источников событий (хотя я не доказал, что они явным образом являются "источниками событий", а не всеми источниками событий в журнале событий ("файл"). =')), что произошло менее 5 минут назад].
Кто-нибудь знает, как включить два разных фильтра eventType в команду CheckEventLog в NSClient++ v0.3.9?
1 ответ
Используйте новый синтаксис, который похож на SQL...
Новая команда примера содержит следующий фильтр:
..."filter=generated gt -2d AND severity NOT IN ('success', 'informational') AND source != 'SideBySide'"...
И в вашем случае, я думаю, вы хотите иметь...source = 'DFS Replication' ИЛИ source = 'DFSR'...