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

Zabbix: Как мне настроить триггер, который будет проверять, было ли изменено конкретное значение за последние 10 минут?

Мне дали задание отслеживать конкретное значение в некоторой базе данных сервера MySQL, мне нужно поднять уведомление, если значение не было изменено за последние 10 минут.

Я добавил в UserParameter_mysql.conf следующая строка:

UserParameter=mysql.query, echo "select id from resolved_clicks order by id desc limit 1" | mysql -N -u zabbix -pPASSWORD aggregator

И при запуске проверки с Zabbix сервера возвращает значение правильно:

[root@zabbix ~]# zabbix_get -s IP -k mysql.query
7957178672
[root@zabbix ~]#

Следующим шагом было создание элемента, который я уже сделал, и теперь я пытаюсь настроить триггер. У триггера должно появиться уведомление, если значение не обновлялось за последние 10 минут. Как я могу настроить триггер, чтобы он отражал это условие? Спасибо!

Изменить №1: Вот последние данные из только что созданного триггера: Мои вопросы:

1. What's the meaning of change? 
2. How can I know from looking on the Change row how many seconds 
   have passed since the last 2 checks?
3. How can I test that the trigger is operating successfully without
   having to reproduce the problem?

Ваш вопрос не на 100% ясен, поэтому я рассмотрел обе возможности:


Если вы хотите проверить, не поступают ли данные от Zabbix агента, используйте nodata функция.

Возврат:
1 - если данные не поступали за период времени в секундах. Период не должен быть меньше 30 секунд.
0 - иначе

Например, триггер, который сработает, если данные не были получены в течение 10 минут:

{mysql.query.nodata(600)}=1

Если вы хотите проверить, не изменилось ли значение, используйте delta.

Возвращает разницу между максимальным и минимальным значениями за период ('max ()' минус 'min ()'). Период задается в секундах или как количество собранных значений (перед которым стоит решетка #) в первом параметре.

Например, триггер, который сработает, если значение не изменилось в течение 10 минут:

{mysql.query.delta(600)}=0

Наконец, вы, вероятно, захотите переименовать свой предмет. mysql.query является очень общим и уже используется в распространенных шаблонах MySQL. Что-то вроде aggregator.highest_click_id может быть более подходящим.