Zabbix 3.4: Макросы в интервалах времени

    Привет. Продолжаем освещать нововведения Zabbix 3.4. Сегодня поговорим об использовании макросов в интервалах обновления и других временных периодах.



    Пару слов о макросах


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


    {$MACRO}

    Интервалы обновления и хранения истории


    Zabbix позволяет гибко настраивать время опроса метрик: у каждой метрики может быть свой собственный интервал.



    Обновления каждой метрики также могут быть "гибкими"(см. Пользовательские интервалы), а значит происходить по определенному расписанию ("раз в сутки ночью" или "в 9:00 утра в будни").


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


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


    Варианты использования


    Интервалы обновления и длительность хранения собранных данных


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



    Просто задайте значения этих макросов глобально, а потом переназначайте на уровне шаблона или узла сети, если требуется:



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



    Это позволит не тратить каждый раз время на обдумывание "я хочу собирать эту метрику раз в 60 или раз в 61 секунду? или может раз в 5 минут будет достаточно?", а просто использовать принятые на вашем сервере и проекте правила по сбору и хранению элементов данных, зафиксированные в глобальных макросах. Хотя, возможно, такой вариант подойдет не всем :)


    В низкоуровневом обнаружении


    Поддерживается и контекст макросов, что может быть очень полезно, например, при LLD.
    Представьте, что мы собираем трафик сетевых интерфейсов на множестве устройств. Чтобы не нагружать Zabbix, мы бы хотели сделать следующим образом:


    • ключевые интерфейсы, транки и прочие аплинки — забирать данные раз в 1 минуту, хранить историю 30 дней, а тренды 1 год.
    • остальные интерфейсы — опрашивать раз в 5 минут, хранить историю 3 дня, а тренды 1 месяц.

    Для начала определим глобальные макросы {$DELAY_IF}, {$HISTORY_IF}, {$TREND_IF}:



    Затем используем их в прототипе элемента данных интерфейса, но уже с контекстом (в данном случае это будет имя интерфейса ifName):



    Уже на уровне узла сети укажем новое значение макроса с контекстом для ключевого интерфейса (для примера возьмем Gi0/0.114):



    Теперь посмотрим частоту обновления и время хранения для различных интерфейсов в "Последних данных". Как видно, у нашего очень важного Gi0/0.114 теперь свои правила хранения и сбора:



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


    Где еще?


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



    или указать через макрос время доступности инженера для автоматических уведомлений:



    С точным списком мест, в которых возможно применение макросов, можно ознакомиться здесь.


    В итоге


    Новые возможности макросов в 3.4 открывают парочку неплохих возможностей: с одной стороны — для более тонкой настройки (для LLD), а с другой стороны — для централизации и управления временем опроса и хранения. И кстати, в интервалах времени появилась поддержка суффиксов s,m,h,d,w — мелочь, а удобно :)


    До встречи!


    P.S. Статья также доступна в нашем блоге на английском языке.

    • +13
    • 5,4k
    • 6
    Zabbix 48,96
    Компания
    Поделиться публикацией
    Похожие публикации
    Комментарии 6
    • 0
      для примера возьмем Gi0/0.114

      Я что-то упускаю или Вы научили Заббикс понимать не только макросы с заглавными именами?
      Увидел, это контекст может быть любым.
    • 0
      Макрос и в 3.2 был только заглавными буквами ))
      Про интервалы — спасибо за идею.
      отдельный вопрос — как там с графиками и комплексными экранами из шаблона? Переход на новую версию мы пока не сделали, поэтому не в курсе. Спасибо.
      • 0
        Вы про стандартные шаблоны? В 3.4 появились новые шаблоны сетевых устройств — в них есть базовые графики, остальные шаблоны пока прежние.
        • 0
          я наверное напутал. То ли графики, то ли комплексные экраны неудачно наследовались узлом от шаблона. Они не отображались в общем списке, а только при заходе на узел сети. В некоторых ситуациях это было неудобно.

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

      Самое читаемое