Стандартная операционная процедура (SOP) управления макросами/переменными Zabbix

Обзор

Эта SOP документирует информацию и шаги по управлению макросами Zabbix как из веб-интерфейса, так и из Ansible.

Контактная информация

Владелец

Команда инфраструктуры Fedora

Контакты

#fedora-admin, sysadmin-main, sysadmin-noc

Назначение

Убедитесь, что конфигурация мониторинга хранится в системе управления конфигурацией для последующего (повторного) использования.

Обзор

Zabbix может ссылаться на переменные (называемые макросами) при определении необходимости срабатывания триггера или при определении того, какое устройство/файл/порт и т. д. необходимо проверить для элемента. Подробности см. в документации Zabbix по макросам [1].

Макросы определяются либо на уровне шаблона (наиболее часто), либо на уровне хоста (обычно как переопределение макроса шаблона, но иногда и самостоятельно). Это похоже на group_vars и host_vars в Ansible, где хост наследует значения макроса по умолчанию из шаблона, если макрос хоста не определён.

На этой странице подробно описано, как устанавливать их как в веб-интерфейсе, так и через Ansible.

Установка макроса в веб-интерфейсе

  1. Откройте страницу конфигурации хоста, который вы хотите обновить.

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

  2. Нажмите на вкладку «Макросы».

  3. Если вы переопределяете макрос шаблона (скорее всего), нажмите кнопку «Наследуемые и макросы хоста».

    1. Найдите имя макроса для переопределения (поля поиска нет, используйте поиск на странице вашего браузера).

    2. Нажмите «Изменить» и отредактируйте значение.

  4. Если вы редактируете существующее переопределение, найдите его в разделе «Макросы хоста» и отредактируйте.

  5. Если вы создаёте новый макрос на уровне хоста, нажмите «Добавить» в разделе «Макросы хоста», укажите имя и значение.

  6. Сохраните изменения хоста.

Это хорошо для тестирования изменений, однако не гарантирует их постоянства. Ansible не выполняет никаких операций типа «state:absent» для неуправляемых макросов, поэтому новые записи, вероятно, сохранятся, но чтобы быть уверенным, добавьте их в Ansible, как описано ниже.

Установка макроса в Ansible

Макросы могут быть установлены на уровне group_vars или host_vars — в Zabbix они всегда будут на уровне хоста. Решите, что вы хотите установить:

  • переопределение на уровне группы (например, для хостов SMTP может быть большее количество застрявших писем) или

  • переопределение на уровне хоста (например, у хоста медленный диск, и ему требуется более высокий порог чтения/записи)

Затем выполните следующие шаги:

  1. Откройте файл inventory/group_vars или inventory/host_vars (в зависимости от ситуации)

  2. Найдите (или добавьте) словарь zabbix_macros

  3. Добавьте ключ с именем макроса (без частей {$ …​ }, только имя) и значение

    • например, 'SWAP.PFREE.MIN.WARN': 0 установит допустимый свободный объём подкачки перед оповещением в 0

  4. Сохраните и зафиксируйте изменение в git как обычно

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

  • Заключите обнаруженное имя в двойные кавычки, а весь ключ — в одинарные:

    • например, 'VFS.FS.PUSED.MAX.WARN:"/srv/nfs/copr-be"': 95 установит уровень предупреждения о заполнении на 95% для тома /srv/nfs/copr-be, но не затронет другие точки монтирования

Чтобы применить изменение (если необходимо, вы уже могли протестировать запись в веб-интерфейсе), запустите любой плейбук для хоста(ов) с -t zabbix_api, так как необходимая задача находится в роли base.

Ресурсы