Назначение документа
Данный мануал описывает корректную и воспроизводимую схему интеграции Zabbix с Abills с использованием Zabbix Agent и кастомных скриптов, без внесения изменений в ядро Abills и без нестандартных механизмов выполнения команд.
Решение предназначено для:
получения статистических данных из Abills;
дальнейшего расширения перечня метрик без изменения архитектуры;
централизованного мониторинга через Zabbix.
Документ ориентирован на системных администраторов и инженеров, которые настраивают Zabbix на стороне сервера Abills.
Общий принцип реализации
Интеграция построена по следующей логике:
Zabbix Server запрашивает значения у Zabbix Agent;
Zabbix Agent получает данные через заранее определённые локальные скрипты;
скрипты выполняются в файловой системе сервера Abills и возвращают числовые значения;
Zabbix Server сохраняет и отображает полученные данные.
Ключевые особенности подхода:
используется только Zabbix Agent, без remote execution;
вызовы скриптов жёстко зафиксированы (без параметров, передаваемых извне);
расширение набора метрик осуществляется добавлением новых скриптов и UserParameter;
архитектура подходит как для текущих, так и для будущих метрик.
Архитектурная схема (логическая)
Zabbix Server
│
│ (запрос значений)
▼
Zabbix Agent (localhost)
│
│ (выполнение фиксированных команд)
▼
Скрипты Abills (Perl)
│
│ (чтение данных)
▼
Abills / база данных
Подход к безопасности и стабильности
В процессе настройки используются стандартные механизмы Zabbix и Linux, без обходных решений:
Zabbix Agent работает от отдельного системного пользователя;
выполнение скриптов ограничено правами доступа и ownership;
запрещено удалённое выполнение произвольных команд;
сетевой доступ к агенту не используется;
Zabbix Web и права пользователей настраиваются отдельно.
Эти меры не усложняют дальнейшее расширение, но позволяют избежать типичных проблем при эксплуатации.
Область действия мануала
В документе описывается:
установка и базовая настройка Zabbix;
подготовка среды для кастомных метрик;
корректное подключение скриптов Abills;
импорт шаблонов и привязка к хостам;
настройка прав доступа в Zabbix.
В документе не фиксируется конкретный перечень данных, так как:
метод универсален;
набор метрик может расширяться без изменения базовой схемы.
Результат выполнения инструкции
После выполнения всех шагов:
Zabbix получает данные от Abills через Zabbix Agent;
значения корректно отображаются в интерфейсе Zabbix;
архитектура готова к добавлению новых метрик;
настройка соответствует рекомендуемой практике эксплуатации.
1. Предварительные требования и подготовка сервера
1.1. Общие требования
Перед началом настройки необходимо убедиться, что:
сервер Abills установлен и корректно функционирует;
доступ к серверу осуществляется с правами
root;операционная система — Linux (описание ориентировано на Ubuntu);
допустима установка Zabbix Server, Zabbix Agent и Web-интерфейса на том же сервере.
Интеграция реализуется без изменений в ядре Abills и не требует установки дополнительных модулей в Abills.
1.2. Общий принцип интеграции
Получение данных из Abills реализуется через:
кастомные локальные скрипты;
Zabbix Agent;
стандартный механизм
UserParameter.
Скрипты:
размещаются в файловой системе сервера;
выполняются локально;
возвращают числовые значения;
не принимают параметры извне.
1.3. Исходное состояние сервера
На момент начала настройки:
каталог
/usr/abills/misc/zabbixможет отсутствовать;скрипты для интеграции с Zabbix не входят в стандартную поставку Abills;
добавление скриптов выполняется вручную и контролируемо.
Это является нормальным и ожидаемым состоянием.
1.4. Подготовка каталога для скриптов
Для размещения скриптов создаётся отдельный каталог:
mkdir -p /usr/abills/misc/zabbix