Zabbix 3.0: Прогнозирование проблем
В большой обзорной статье мы бегло рассказали об основных возможностях Zabbix 3.0. Теперь хотим предложить вашему вниманию серию мини-обзоров новых возможностей Zabbix 3.0, начнем с прогнозирования проблем.
Почему мы смотрим прогноз погоды? Чтобы в солнечный казалось бы день, выбравшись в парк, не оказаться застигнутым врасплох под проливным дождем. Точный прогноз погоды помогает нам принять контрмеры: взять зонт, плащ, или вообще отправиться в кино вместо парка.
В новой версии Zabbix добавилась возможность также делать прогнозы, чтобы узнать будет ли шторм на сети или в серверной стойке, и когда это может произойти.
Zabbix смотрит историю собранных данных и предсказывает, как будут развиваться события в дальнейшем. Затем триггеры могут быть настроены на срабатывание еще до наступления будущей проблемы с последующим запуском таких действий, как уведомления ответственных или автоматический запуск скриптов, удаленных команд. Чтобы визуализировать предсказание на графике, Вы выбираете элемент данных (например, кол-во свободного места на жестком диске) и создаете новый вычисляемый элемент данных (назовем его 30m linear forecast) на его основе с использованием функции forecast. Указываете временной интервал в прошлом, который использовать для статистического анализа (например, 30 минут) и указываете как далеко строить прогноз (тоже допустим, 30 минут). Далее Zabbix делает расчет, находит лучший вариант и возвращает вам его:
forecast(host:item,30m,,30m)
Проблема только в том, что forecast будет отображать на графике не в будущем, а значение прогноза будет привязано к времени, когда он был рассчитан. Чтобы увидеть прогноз на графике в будущем, используем другой вычисляемый элемент данных (назовем его 30m linear forecast shifted), который будет просто смещать значение прогноза на 30 минут вперед, используя доступную для всех функций возможность timeshift:
last(host:item_forecast,#1,30m)
Возможность прогнозировать может быть полезна при контроле свободного места на дисках.
Триггер с простым порогом в 1ГБ или 10% не учитывает один очень серьезный нюанс — диски могут заполняться с совершенно различной скоростью. Поэтому он будет срабатывать либо слишком рано, либо (что хуже) слишком поздно, когда мы уже на нуле.
А Триггер с использованием статистической функции timeleft даст нам 1 час чтобы очистить или расширить диск:
{host:vfs.fs.size[/,free].timeleft(30m,,0)} < 1h
И он будет работать для всех дисков, в независимости от их размеров.
К тому же, для сложных случаев, Zabbix предлагает на выбор функции линии тренда, которые Вы могли использовать в привычном табличном процессоре:
Точный прогноз погоды спасает нас от необходимости таскать зонт, когда он просто не нужен, и от возможности промокнуть, когда велика вероятность, что дождь будет.
Функции прогнозирования в Zabbix помогут инфраструктуре работать как можно с наименьшим количеством сбоев, а сервисам оставаться доступными. Ведь предотвратить будущую проблему легче, чем уже свершившуюся.
Перевод статьи из нашего блога.