- PVSM.RU - https://www.pvsm.ru -
Привет. Продолжаем освещать нововведения Zabbix 3.4. Сегодня поговорим об использовании макросов в интервалах обновления и других временных периодах.
Пользовательские макросы [1] – давно зарекомендовавший себя механизм, используемый в Zabbix повсеместно и дающий системе мониторинга необходимую ей гибкость. По сути это переменные, которые вы можете назначать с глобальным уровнем видимости, шаблона или узла сети. Использование макросов всячески приветствуется и рекомендуется, например в шаблонах, что делает их настраиваемыми в других окружениях и другими пользователями.
Выглядят пользовательские макросы следующим образом, вы их наверняка уже встречали:
{$MACRO}
Zabbix позволяет гибко настраивать время опроса метрик: у каждой метрики может быть свой собственный интервал.
Обновления каждой метрики также могут быть "гибкими"(см. Пользовательские интервалы [2]), а значит происходить по определенному расписанию ("раз в сутки ночью" или "в 9:00 утра в будни").
Аналогичным образом мы можем определить время хранения истории и трендов для каждого элемента данных отдельно.
Подобная тонкость настройки нужна далеко не всегда, поэтому использование макросов дает пару новых идей по настройке этих параметров.
Во-первых, интервалы обновления метрик (как обычные, так и пользовательские интервалы), о которых сказано выше, теперь поддерживают пользовательские макросы. Во-вторых, использовать макросы можно и в интервалах хранения истории и трендов. В итоге это выглядит вот так:
Просто задайте значения этих макросов глобально, а потом переназначайте на уровне шаблона или узла сети, если требуется:
В общем, для интервалов обновлений можно создать небольшой глобальный набор макросов, которые затем использовать по умолчанию для всех новых элементов данных, в зависимости от их типа и важности. Например:
Это позволит не тратить каждый раз время на обдумывание "я хочу собирать эту метрику раз в 60 или раз в 61 секунду? или может раз в 5 минут будет достаточно?", а просто использовать принятые на вашем сервере и проекте правила по сбору и хранению элементов данных, зафиксированные в глобальных макросах. Хотя, возможно, такой вариант подойдет не всем :)
Поддерживается и контекст макросов [3], что может быть очень полезно, например, при LLD [4].
Представьте, что мы собираем трафик сетевых интерфейсов на множестве устройств. Чтобы не нагружать Zabbix, мы бы хотели сделать следующим образом:
Для начала определим глобальные макросы {$DELAY_IF}, {$HISTORY_IF}, {$TREND_IF}:
Затем используем их в прототипе элемента данных интерфейса, но уже с контекстом (в данном случае это будет имя интерфейса ifName):
Уже на уровне узла сети укажем новое значение макроса с контекстом для ключевого интерфейса (для примера возьмем Gi0/0.114):
Теперь посмотрим частоту обновления и время хранения для различных интерфейсов в "Последних данных". Как видно, у нашего очень важного Gi0/0.114 теперь свои правила хранения и сбора:
Если же мы захотим изменить общий интервал или увеличить частоту опроса или времени хранения еще одного интерфейса — нам нужно будет просто переназначить макросы на уровне хоста. Изменять шаблон, прототип и ждать обнаружения не потребуется — все применится сразу. На самом деле, даже доступ на запись к шаблону не требуется.
А еще макросы теперь можно применять в других ситуациях, где нужно было указывать время или период. Например, в действиях:
или указать через макрос время доступности инженера для автоматических уведомлений:
С точным списком мест, в которых возможно применение макросов, можно ознакомиться здесь [5].
Новые возможности макросов в 3.4 открывают парочку неплохих возможностей: с одной стороны — для более тонкой настройки (для LLD), а с другой стороны — для централизации и управления временем опроса и хранения. И кстати, в интервалах времени появилась поддержка суффиксов s,m,h,d,w — мелочь, а удобно :)
До встречи!
P.S. Статья также доступна в нашем блоге [6]на английском языке.
Автор: Виталий
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/open-source/270519
Ссылки в тексте:
[1] Пользовательские макросы: https://www.zabbix.com/documentation/3.4/ru/manual/config/macros/usermacros
[2] Пользовательские интервалы: https://www.zabbix.com/documentation/3.4/ru/manual/config/items/item/custom_intervals
[3] контекст макросов: https://www.zabbix.com/documentation/3.4/ru/manual/config/macros/usermacros#%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BA%D1%81%D1%82_%D0%BC%D0%B0%D0%BA%D1%80%D0%BE%D1%81%D0%BE%D0%B2
[4] LLD: https://www.zabbix.com/documentation/3.4/ru/manual/discovery/low_level_discovery
[5] здесь: https://www.zabbix.com/documentation/3.4/manual/appendix/macros/supported_by_location_user
[6] блоге : http://blog.zabbix.com/using-macros-for-time-periods-management/
[7] Источник: https://habrahabr.ru/post/344492/?utm_source=habrahabr&utm_medium=rss&utm_campaign=344492
Нажмите здесь для печати.