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

Обзор

История и тренды — это два способа хранения собранных данных в Zabbix.

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

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

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

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

Все более старые данные будут удаляться housekeeper.

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

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

Чтобы получить хорошее представление о том, сколько места требуется для данных истории по сравнению с данными трендов, обратитесь к странице расчета размера базы данных.

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

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

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

Хранение трендов

Тренды — это встроенный механизм сокращения объема исторических данных, который сохраняет минимальное, максимальное, среднее значение и общее количество значений за каждый час для числовых типов данных.

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

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

Обычно тренды могут храниться значительно дольше, чем история. Все более старые данные будут удалены housekeeper.

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

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

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

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

Таблицы истории никак не участвуют в генерации трендов.

Если для трендов установлено значение '0', сервер Zabbix вообще не вычисляет и не сохраняет тренды.

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

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