4 История и динамика изменений

Обзор

История и динамика изменений - два пути хранения в Zabbix собранных данных.

В то время как история хранит каждое собранное значение, динамика изменений хранит усреднённую информацию за каждый час, что, следовательно, менее требовательно к ресурсам.

Хранение истории

Вы можете указать как много дней история будет храниться:

  • в диалоге свойств элемента данных
  • при массовом обновлении элементов данных
  • при настройке задач очистки истории

Любые более старые данные будут удалены с помощью автоматической очистки базы данных (Housekeeper).

Самый большой совет - хранить историю как можно меньшее количество дней и таким образом не перегружать базу данных большим количеством значений истории.

Вместо долговременного хранения истории, вы можете хранить больше данных динамики изменений. Например, вы можете хранить историю 14 дней и динамику изменений 5 лет.

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

При меньшем хранении истории, вы всё равно сможете просматривать старые данные на графиках, поскольку для отображения старых данных графики будут использовать значения динамики изменений.

Если история установлена в значение '0', то элемент данных будет обновлять только зависимые элементы данных и поля инвентаря. Функции триггера не будут вычисляться, так как триггерные вычисления основаны только на данных истории.

В качестве альтернативного подхода к хранению истории ознакомьтесь с функционалом экспорта истории в подгружаемых модулях.

Хранение динамики изменений

Динамика изменений является встроенным механизмом обработки данных истории, где для каждого часа хранятся значения минимума, максимума, усреднённое и общее количество значений по числовым типам данных.

Вы можете указать, как много дней будет храниться динамика изменений:

  • в диалоге свойств элемента данных
  • при массовом обновлении элементов данных
  • при настройке задач очистки истории

Обычно динамика изменений может храниться намного дольше чем история. Любые более старые данные будут удалены при помощи автоматической очистки базы данных (Housekeeper).

Во время работы, с приходом новых значений, Zabbix сервер собирает и хранит динамику изменений в специальном кэше динамики изменений. Сервер сбрасывает динамику изменения предыдущего часа каждого элемента данных в базу данных (при этом она становится доступным из веб-интерфейса) в следующих случаях:

  • сервер получает первое за текущий час значение элемента данных
  • до конца текущего часа остаётся 5 или менее минут и всё ещё не пришло ни одно значение элемента данных за текущий час
  • сервер останавливается

Таким образом, самое раннее, когда можно увидеть новое значение динамики изменения текущего часа в веб-интерфейсе - это начало следующего часа (если элемент данных обновляется регулярно) и самое позднее - конец следующего часа (если элемент данных обновляется редко), что даёт 2 часа максимум.

Если в момент сбрасывания значения динамики изменения сервер замечает, что значение за соответствующий час в базе данных уже имеется (например, сервер был перезапущен в середине часа), ему, возможно, придётся выполнять SQL инструкции обновления вместо вставки. Поэтому на больших инсталляциях, если необходим перезапуск сервера, постарайтесь спланировать его так, чтобы остановка сервера произошла в конце часа, а запуск - в начале следующего, чтобы избежать перекрытие данных динамики изменений.

При работе со значениями динамики изменения Zabbix сервер к таблицам истории базы данных не обращается.

Если динамика изменений установлена в значение '0', Zabbix сервер вообще не будет считать и хранить динамику изменений.

Динамика изменений вычисляется и сохраняется с использованием того же типа данных, что и оригинальные значения. В результате среднее значение вычисления значений целочисленных типов данных округляется и чем меньше интервал значений, тем меньше будет точность результата. Например, если элемент данных имеет значения 0 и 1, средним значением будет 0, а не 0.5.

Перезапуск сервера также может привести к потере точности вычисления усредненных значений у целочисленных типов данных за текущий час.