Перейти к содержанию

Zabbix

Коллектор Zabbix⚓︎

Коллектор данных об использовании вычислительных ресурсов, размещённых в любой IaaS/PaaS инфраструктуре, предназначенный для ежедневного:

  • сбора данных из API Zabbix,

  • генерации нагрузочных (метрики) отчётов за прошедшие сутки в виде CSV-файлов,

  • загрузки этих CSV-файлов в заданный бакет объектного (S3) хранилища.

Системные требования⚓︎

Коллектор представляет собой одно Java-приложение. Поэтому для его работы подойдёт любое уже имеющееся Java-окружение версии 21 и старше на основе Ubuntu версии 24.

Возможно использование выделенной виртуальной машины со следующими минимальными техническими характеристиками:

  • ОС: Ubuntu 24.04 LTS

  • CPU: 1 ядро 2GHz

  • RAM: 1 GB

  • Диск: 10 GB

  • Сеть: 1Gbit интерфейс, доступ к API Zabbix и S3-хранилищу

Предварительные требования⚓︎

Для создания подключения в Cloudmaster и настройки коллектора вам потребуется:

  1. Создать и настроить доступ к бакету.
  2. Настроить подключение бакета в Cloudmaster. Инструкция здесь.
  3. Получить URL Zabbix, а также логин и пароль от учетной записи. Учетная запись должна иметь доступ на чтение к группам хостов, по которым будет производиться анализ.
  4. Создать виртуальную машину и установить коллектор Zabbix.

Бакет может быть размещен в любом S3-совместимом объектном хранилище в любом облаке (провайдере) по вашему выбору. Cloudmaster и коллектор Zabbix должны иметь сетевой доступ по HTTPS-протоколу (TCP, 443 порт) к этому бакету.

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

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

Параметры для файла конфигурации⚓︎

Поле в application.yml Где взять значение Описание Пример значения
zabbix.api.url Администратор Zabbix Cетевой адрес (URL) API вашего мониторинга Zabbix https://zbx.mycompany.ru/api_jsonrpc.php
zabbix.api.username Администратор Zabbix Логин учетной записи в Zabbix user
zabbix.api.password Администратор Zabbix Пароль учетной записи в Zabbix p@S6w0rd
s3.path-style-access-enabled Облако по выбору По умолчанию: true. Большинство провайдеров автоматически определяют формат адреса: virtual host или path-style true
s3.bucket Облако по выбору Имя бакета cloudmaster-0987654321bc
s3.access-key Облако по выбору Идентификатор ключа доступа сервисного аккаунта с правами на запись в бакет ajeY73McSRicJS53TEJe7MSoX
s3.secret-key Облако по выбору Секрет ключа доступа сервисного аккаунта с правами на запись в бакет wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
s3.region Облако по выбору Регион бакета из документации провайдера, часто присутствует в эндпоинте ru-moscow-1
s3.endpoint Облако по выбору Эндпоинт S3-совместимого сервиса хранилища из документации провайдера https://obs.ru-moscow-1.hc.sbercloud.ru
app.customer-id Cloudmaster Идентификатор компании из профиля пользователя 0987654a-ffff-1111-dddd-0987654321bc
app.сonnection-id Cloudmaster ID вашего подключения в Cloudmaster из раздела Мои подключения 1234

Установка⚓︎

Примерное время загрузки и установки ― 2 минуты (в зависимости от ширины интернет-канала).

  1. Загрузите скрипт для подключения необходимого репозитория Cloudmaster внутри целевой ВМ:

curl https://io.cloudmaster.ru/setup_cloudmaster_public_repo.sh > setup_cloudmaster_repo.sh
2. Установите права на полученный скрипт и запустите подключения репозитория Cloudmaster командами:

chmod 755 setup_cloudmaster_repo.sh
sudo ./setup_cloudmaster_repo.sh

# После завершения выполнения команды подключения репозитория терминал направит уведомление:
#
# Подключение публичного репозитория CloudMaster успешно завершено.
3. Выполните обновление списков доступных пакетов и их зависимостей из всех подключённых репозиториев командой:
sudo apt update

#  В итоговом отчёте убедитесь, что присутствует строка для репозитория Cloudmaster примерного вида: 
#  Hit:4 https://repo.demo.cloudmaster.ru/repository/apt-public noble InRelease
4. От имени суперпользователя запустите установку коллектора данных Zabbix командами:
# Автоматическая установка коллектора Zabbix и всех зависимостей
apt install -y cloudmaster-zabbix-metric-collector

# Установка коллектора Zabbix и  зависимостей с ручным подтверждением
apt install cloudmaster-zabbix-metric-collector

# В результате будут установлены пакеты: alsa-topology-conf, alsa-ucm-conf, ca-certificates-java, 
# cloudmaster-zabbix-metric-collector, java-common, libasound2-data, libasound2t64, libavahi-client3, libavahi-common-data,  
# libavahi-common3, libcups2t64, libgraphite2-3, libharfbuzz0b, liblcms2-2, libpcsclite1, openjdk-21-jre-headless
# Перечень пакетов примерный, точный список будет определён утилитой apt-get в момент установки на основе построенного 
# дерева зависимостей.

Настройка⚓︎

После успешной установки откройте и отредактируйте конфигурационный файл application.yml. Файл находится по пути:

/opt/cloudmaster/services/zabbix-metric-collector/application.yml

1. Доступ к Zabbix⚓︎

Укажите URL сервиса Zabbix, логин и пароль учетной записи.

zabbix:
   api:
      url: https://<IP-адрес или домен>/api_jsonrpc.php        # сетевой адрес (URL) API вашего мониторинга Zabbix
      username: DEC(<LOGIN>)                           # логин для доступа к API вашего мониторинга
      password: DEC(<PASSWORD>)                       # пароль для доступа к API вашего мониторинга

2. Параметры S3-бакета⚓︎

Укажите данные для загрузки отчетов. Здесь и далее используйте обертку DEC(...) для ключей доступа — после первого запуска сервиса они будут автоматически зашифрованы.

s3:
  path-style-access-enabled: true # Определяет формат адреса, по которому идут запросы к бакету: 
                                  #  false - по virtual host <ИМЯ_БАКЕТА>.<ЭНДПОИНТ>, 
                                  #  true - по path-style <ЭНДПОИНТ>/<ИМЯ_БАКЕТА> 
                                  #  В большинстве случаев провайдер автоматически выбирает нужный формат с параметром 
                                  #  по умолчанию true. Параметр важен для успешной записи данных в бакет.
  bucket: <ИМЯ_БАКЕТА>
  access-key: DEC(<ACCESS_KEY>) # Идентификатор ключа сервисного аккаунта с правом на запись в бакет
  secret-key: DEC(<SECRET_KEY>) # Ключ сервисного аккаунта с правом на запись в бакет
  region: <РЕГИОН> # Из документации провайдера
  endpoint: <ЭНДПОИНТ> # Из документации провайдера

Если у вашего провайдера нет явно заданных регионов, то обычно используется значение "default"

  region: default   # Из документации провайдера

3. Идентификатор компании и подключения⚓︎

Укажите UUID вашей компании из профиля пользователя в Cloudmaster.

app:
  customer-id: <ID_КЛИЕНТА_UUID> # UUID из профиля пользователя Cloudmaster
  connection-id: <ID_ПОДКЛЮЧЕНИЯ_ИЗ_CLOUDMASTER> # Из раздела Мои подключения в Cloudmaster
Перезапустите сервис.

sudo systemctl restart cloudmaster-zabbix-metric-collector

Проверка работы⚓︎

Для проверки работы в SSH-консоли выполните команду вида

curl -X POST http://127.0.0.1:8101/api/metrics/collect?date=2026-05-20

Проверьте, что коллектор выполнил сбор данных и запись файла в бакет. В бакете должны появиться вложенные «папки»:

/customer-id/load/ cm-connection-cm-connection-id

С этими префиксами (в эти папки) в заданный бакет автоматически будут загружаться объекты (csv-файлы) с метриками за прошедшие 30 дней (настраивается в конфигурационном файле application.properites).

В интерфейсе Cloudmaster данные и рекомендации стоит ожидать на следующий день после подключения.

Эксплуатация коллектора⚓︎

Запуск, останов, перезапуск

# Запуск
sudo service cloudmaster-zabbix-metric-collector start
# Останов
sudo service cloudmaster-zabbix-metric-collector stop
# Перезапуск (обязателен после правки application.yml)
sudo service cloudmaster-zabbix-metric-collector restart

Просмотр журнала логов

Журналы работы приложения находятся в каталоге:

/opt/cloudmaster/services/zabbix-metric-collector/logs

Удаление коллектора и всех его зависимостей

apt purge --autoremove -y cloudmaster-zabbix-metric-collector

Информация для службы безопасности⚓︎

Результат установки

В процессе установки коллектора создаются:

  1. Системный пользователь cloudmaster

  2. Системная группа cloudmaster

  3. Подкаталог /opt/cloudmaster/services/zabbix-metric-collector

в этом подкаталоге установлены:

 - Java-приложение cm-zabbix-metriccollector.jar

 - конфигурационный файл application.yml

 - конфигурационный файл cm-zabbix-metriccollector.conf

 - подкаталог для лог-файлов logs
  1. Системные unit-файлы для systemd-сервиса cloudmaster-zabbix-metric-collector - /usr/lib/systemd/system/zabbix-metric-collector.service

  2. Симлинк для systemd-сервиса cloudmaster-zabbix-metric-collector - /etc/systemd/system/multi-user.target.wants/zabbix-metric-collector.service

Шифрование ключей доступа

В файле application.yml используйте обертку DEC(<НЕКОТОРОЕ-НЕШИФРОВАННОЕ-ЗНАЧЕНИЕ>) для ключей доступа. Это позволяет хранить «секреты» в зашифрованном виде.

После первого запуска сервиса cloudmaster-zabbix-metric-collector все параметры, обернутые в DEC(), будут автоматически зашифрованы и храниться в конфигурационном файле application.yml в формате вида: ENC(5iBu.......0Mlmd10cuw==).

Ключ шифрования находится внутри бинарного файла Java-приложения cm-zabbix-metriccollector.jar.

Читайте также⚓︎