20 Расширения

Обзор

Хотя Zabbix предлагает множество функций, всегда есть место для дополнительных функций. Расширения — это удобный способ изменения и увеличения возможностей мониторинга при помощи Zabbix без изменения исходного кода.

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

В этом разделе представлен обзор со ссылками на все варианты расширения Zabbix.

Сбор данных с помощью пользовательских команд

Траппер элементы данных

Траппер элементы данных — это элементы, которые принимают входящие данные, а не запрашивают их. Траппер элементы данных полезны для отправки определенных данных на сервер Zabbix, например, периодические данные о доступности и производительности в случае длительных пользовательских сценариев. Вы можете сделать это с помощью утилиты командной строки Zabbix sender или путем реализации коммуникационного протокола на основе JSON (аналогично тому, что используется в Zabbix sender).

Внешние проверки

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

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

Пользовательские параметры

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

system.run[] Элементы агента Zabbix

system.run[] Zabbix элемент агента это элемент для определяемой пользователем команды (связанный с предопределенным ключом system.run[], например system.run[myscript.sh]), который может быть выполнен на узле сети, где запущен агент Zabbix.

Примечание. Элементы system.run[] отключены по умолчанию и, если они используются, должны быть включены (разрешены) и определены в конфигурационном файле Zabbix агента или Zabbix агента 2 (параметр конфигурации AllowKey).

Пользовательские команды в таких элементах, как внешние проверки, пользовательские параметры и элементы Zabbix агента system.run[] выполняются от пользователя ОС, который используется для запуска компонентов Zabbix. Для выполнения этих команд этот пользователь должен иметь необходимые разрешения.

элементы HTTP-агента

Элемент HTTP-агента — это элемент для выполнения запросов данных через HTTP/HTTPS. Элементы HTTP-агента полезны для отправки запросов к конечным точкам HTTP для получения данных из таких сервисов, как Elasticsearch и OpenWeatherMap, для проверки статуса Zabbix API или статуса веб-сервера Apache или Nginx и т. д.

Скриптовые элементы данных

Скриптовый элемент данных — это элемент для выполнения пользовательского кода JavaScript, который получает данные через HTTP/HTTPS. Скриптовые элементы данных полезны, когда функциональности, предоставляемой элементами HTTP-агента, недостаточно. Например, в сложных сценариях сбора данных, требующих нескольких шагов или сложной логики, скриптовый элемент данных можно настроить для выполнения HTTP-вызова, а затем обработки полученных данных, с последующей передачей преобразованного значения второму HTTP-вызову.

Элементы HTTP-агента и скриптовые элементы данных поддерживаются Zabbix-сервером и прокси-сервером, и не требуют наличия агента, работающего на отслеживаемом узле сети.

Продвинутые расширения

Загружаемые модули

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

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

Загружаемые модули особенно полезны при сложной настройке мониторинга. При мониторинге встроенных систем наличие большого количества отслеживаемых параметров или тяжелые сценарии со сложной логикой или длительным временем запуска, расширения, такие как пользовательские параметры, элементы агента system.run[] Zabbix и внешние проверки, будут влиять на производительность. Загружаемые модули предлагают способ расширения функциональности Zabbix без ущерба для производительности.

Плагины

Плагины предоставляют альтернативу загружаемым модулям (написанным на языке C). Однако плагины — это способ расширения только Zabbix агента 2.

Плагин — это пакет Go который определяет структуру и реализует один или несколько интерфейсов плагина (Экспортер, Коллектор, Конфигуратор, Runner, Watcher). Поддерживаются два типа плагинов Zabbix агента 2:

См. список встроенных плагинов.

Инструкции и учебные пособия по написанию собственных плагинов см. в центре разработчиков.

Настройка оповещений

Вебхуки

Вебхук это способ оповещения Zabbix, который позволяет расширить возможности оповещения Zabbix к внешнему программному обеспечению, такому как системы службы поддержки, чаты или мессенджеры. Подобно элементам сценария, вебхуки полезны для выполнения HTTP-вызовов с использованием специального кода JavaScript, например, для отправки уведомлений на различные платформы, такие как Microsoft Teams, Discord и Jira. Также возможно вернуть некоторые данные (например, о созданных заявках в службу поддержки), которые затем отображаются в Zabbix.

Доступны существующие вебхуки в Zabbix Git repository. Для разработки собственного вебхука см. [Руководство по разработке веб-перехватчиков] (https://www.zabbix.com/documentation/guidelines/en/webhooks).

Пользовательские скрипты оповещений

Пользовательский скрипт оповещения это способ оповещения Zabbix, который предоставляет возможность создать альтернативный способ (скрипт) оповещений Zabbix. Пользовательские скрипты оповещений полезны, если вас не устраивают существующие способы оповещения в Zabbix.

Кастомизация веб-интерфейса

Пользовательские темы

Можно изменить внешний вид веб-интерфейса Zabbix, используя пользовательские темы. См. инструкции по созданию и применению собственных тем.

Внешние модули

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

Глобальные скрипты

глобальный скрипт это определяемый пользователем набор команд, которые могут быть выполнены на объекте мониторинга (с помощью интерпретатора оболочки (/bin/sh)), в зависимости от настроенной области и прав пользователя. Глобальные скрипты можно настроить для следующих действий:

Глобальные сценарии полезны во многих случаях. Например, если настроены операции действий или действия хоста вручную, вы можете использовать глобальные сценарии для автоматического или ручного выполнения удаленных команд, например, перезапуск приложения (веб-сервера, промежуточного программного обеспечения, CRM и т. д.) или освобождение места на диске (удаление старых файлов, очистка /tmp и т. д.). Или другой пример, если настроено действие по событиям вручную: вы можете использовать глобальные сценарии для управления заявками о проблемах во внешних системах.

Глобальные скрипты могут выполняться Zabbix-сервером, Zabbix-прокси или агентом.

Пользовательские команды выполняются от пользователя ОС, который используется для запуска компонентов Zabbix. Для выполнения этих команд этот пользователь должен иметь необходимые разрешения.

Zabbix API

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

  • Программное получение и изменение конфигурации Zabbix.
  • Импорт и экспорт конфигурации Zabbix.
  • Доступ к историческим и трендовым данным Zabbix.
  • Настройка приложений для работы с Zabbix.
  • Интеграция Zabbix со сторонним программным обеспечением.
  • Автоматизация рутинных задач.

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