Назад | Перейти на главную страницу

Zabbix триггер последние N текстовых значений соответствует регулярному выражению

Я проверяю, произошла ли ошибка, проверяя, соответствует ли последнее значение регулярному выражению.

({myhost.com:my.item.regexp(^ERROR$)})#0

Мне нужна некоторая терпимость, проверяя не последние, а последние N значений на соответствие регулярному выражению, то есть последние 2-3 значения.

Как я могу этого добиться?

В соответствии с Документация по функциям Zabbix, функция regexp () принимает второй параметр - количество секунд или значений для анализа. К сожалению, он вернет 1, если хотя бы одно из значений совпадает, а это не то, что вам нужно - вам нужно, чтобы все значения совпадали.

Поэтому, если ваше регулярное выражение достаточно простое, рассмотрите возможность использования функции count () с операторами «eq» или «like»:

{host:item.count(#3,ERROR,eq)} = 3
{host:item.count(#3,ERROR,like)} = 3

Также существует запрос функции, позволяющий использовать регулярные выражения в функции count (), и он отслеживается в ZBXNEXT-1250.

Хотел бы что-нибудь

({myhost.com:my.item.regexp(^ERROR$).max(#3)}=0)

работать на вас? Если нет, просто используйте встроенный конструктор выражения триггера в веб-интерфейсе Zabbix, он упрощает, если не упрощает, такие вещи.