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

Коллекторы

Библиотека готовых решений Cloudmaster пополнилась специализированным модулем cloudruadv-complex-collector.

Комплексный коллектор Cloud.ru Advanced⚓︎

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

  • сбора данных из API Cloud.ru Advanced,

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

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

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

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

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

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

  • ОС: Ubuntu 24.04 LTS

  • CPU: 1 ядро 2GHz

  • RAM: 1 GB

  • Диск: 10 GB

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

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

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

  1. Создать и настроить доступ к бакету.
  2. Настроить подключение бакета в Cloudmaster. Инструкция здесь.
  3. Создать IAM сервисный аккаунт в консоли Cloud.ru Advanced для метрик. Назначить роли и создать ключи доступа. Инструкция здесь.
  4. Создать сервисный аккаунт в проекте Cloud.ru для биллинга. Назначить роли и создать ключи доступа. Инструкция здесь.
  5. Создать виртуальную машину и установить коллектор.

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

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

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

Поле в application.yml Где взять значение Описание Пример значения
cloudmaster.customer-id Cloudmaster Идентификатор компании из профиля пользователя 0987654a-ffff-1111-dddd-0987654321bc
bucket.name Облако по выбору Имя бакета cloudmaster-0987654321bc
bucket.access-key Облако по выбору Идентификатор ключа доступа сервисного аккаунта с правами на запись в бакет ajeY73McSRicJS53TEJe7MSoX
bucket.secret-key Облако по выбору Секрет ключа доступа сервисного аккаунта с правами на запись в бакет wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
bucket.region Облако по выбору Регион бакета из документации провайдера, часто присутствует в эндпоинте ru-moscow-1
bucket.endpoint Облако по выбору Эндпоинт S3-совместимого сервиса хранилища из документации провайдера https://obs.ru-moscow-1.hc.sbercloud.ru
cloud-ru.account-id Cloud.ru Advanced Account ID Cloud.ru Advanced в профиле пользователя > My Credentials (верхний правый угол) ff312315f1f94e589316cae104c80c4e
organizations.id Cloud.ru ID клиента Cloud.ru, залогиньтесь в Cloud.ru, в адресной строке браузера скопируйте параметр customerId 12345678-aaaa-bbbb-cccc-1234567890ab
organizations.name Cloud.ru Название вашей компании (каталог), раздел Администрирование ООО Южный берег
projects.id Cloud.ru ID Проекта из выпадающее меню вверху слева, ⋮ рядом с именем проекта открывают меню копирования ID 0987654a-ffff-1111-dddd-0987654321bc
projects.access-key Cloud.ru Advanced Данные сервисного аккаунта Cloud.ru Advanced (может совпадать с ключом бакета), сервис IAM ajeY73McSRicJS53TEJe7MSoX
projects.secret-key Cloud.ru Advanced Данные сервисного аккаунта Cloud.ru Advanced (может совпадать с ключом бакета), сервис IAM wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
projects.service-account-key-id Cloud.ru Идентификатор ключа доступа сервисного аккаунта в проекте Cloud.ru, раздел Пользователи > Сервисные аккаунты ajeY73McSRicJS53TEJe7MSoX
projects.service-account-secret Cloud.ru Секрет ключа доступа сервисного аккаунта в проекте в Cloud.ru, раздел Пользователи > Сервисные аккаунты wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
projects.cm-connection-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.cbi.cloudmaster.ru/repository/apt-public noble InRelease
4. Запустите установку комплексного коллектора данных Cloud.ru Advanced командами:
# Автоматическая установка всех зависимостей
apt install -y cloudmaster-cloudruadv-complex-collector
# Установка зависимостей с подтверждением
apt install cloudmaster-cloudruadv-complex-collector

# В результате будут установлены пакеты: alsa-topology-conf, alsa-ucm-conf, ca-certificates-java, 
# cloudmaster-cloudruadv-complex-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/cloudruadv-complex-collector/application.yml

1. Идентификатор компании⚓︎

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

cloudmaster:
  customer-id: <ID_КЛИЕНТА_UUID> # UUID из профиля пользователя Cloudmaster

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

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

bucket:
  name: <ИМЯ_БАКЕТА>
  access-key: DEC(<ACCESS_KEY>) # Идентификатор ключа сервисного аккаунта с правом на запись в бакет
  secret-key: DEC(<SECRET_KEY>) # Ключ сервисного аккаунта с правом на запись в бакет
  region: <РЕГИОН> # Из документации провайдера
  endpoint: <ЭНДПОИНТ> # Из документации провайдера

3. Параметры доступа к биллингу и метрикам Cloud.ru Advanced⚓︎

Заполните данные для доступа к облаку Cloud.ru Advanced. Используйте обертку DEC(...) для ключей доступа.

cloud-ru:
  account-id: <ACCOUNT_ID> # Из профиля пользователя My Credentials в Cloud.ru Advanced  https://console.hc.sbercloud.ru/
  organizations:
    - id: <ORGANIZATION_ID> # Из панели управления проектами Cloud.ru https://advanced.cloud.ru/
      name: <НАЗВАНИЕ_КОМПАНИИ> # Из панели управления проектами Cloud.ru https://advanced.cloud.ru/
      projects:
        - id: <PROJECT_ID> # Из панели управления проектами Cloud.ru https://advanced.cloud.ru/
          access-key: DEC(<IAM_SA_KEY_ID>) # Из сервиса IAM Cloud.ru Advanced  https://console.hc.sbercloud.ru/
          secret-key: DEC(<IAM_SA_SECRET>) # Из сервиса IAM Cloud.ru Advanced  https://console.hc.sbercloud.ru/
          service-account-key-id: DEC(<PROJECT_ACCESS_KEY>) # Из панели управления проектами Cloud.ru https://advanced.cloud.ru/
          service-account-secret: DEC(<PROJECT_SECRET_KEY>) # Из панели управления проектами Cloud.ru https://advanced.cloud.ru/
          cm-connection-id: <ID_ПОДКЛЮЧЕНИЯ_ИЗ_CLOUDMASTER> # Из раздела Мои подключения в Cloudmaster
Перезапустите сервис.

sudo service cloudmaster-cloudruadv-complex-collector restart

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

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

/customer-id/load/ cm-connection-cm-connection-id — появится через пару минут,

/customer-id/billing/ cm-connection-cm-connection-id — появится утром следующего дня.

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

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

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

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

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

Отключение сбора нагрузочных данных (метрик)

Если вам нужен только финансовый отчет (биллинг), в application.yml установите:

metric-collector:
  enable: false
Перезапустите сервис.

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

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

/opt/cloudmaster/services/cloudruadv-complex-collector/logs

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

apt purge --autoremove -y cloudmaster-cloudruadv-complex-collector

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

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

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

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

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

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

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

    • Java-приложение cm-cloudru-complexcollector.jar

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

    • конфигурационный файл cm-cloudru-complexcollector.conf

    • подкаталог для лог-файлов logs

  4. Системные unit-файлы для systemd-сервиса cloudmaster-cloudruadv-complex-collector - /usr/lib/systemd/system/cloudmaster-cloudruadv-complex-collector.service

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

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

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

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

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

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