Коллекторы
Библиотека готовых решений 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 и настройки коллектора вам потребуется:
- Создать и настроить доступ к бакету.
- Настроить подключение бакета в Cloudmaster. Инструкция здесь.
- Создать IAM сервисный аккаунт в консоли Cloud.ru Advanced для метрик. Назначить роли и создать ключи доступа. Инструкция здесь.
- Создать сервисный аккаунт в проекте Cloud.ru для биллинга. Назначить роли и создать ключи доступа. Инструкция здесь.
- Создать виртуальную машину и установить коллектор.
Бакет может быть размещен в любом облаке по вашему выбору. Можно использовать один сервисный аккаунт для коллектора и для подключения к 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 минуты (в зависимости от ширины интернет-канала).
- Загрузите скрипт для подключения необходимого репозитория Cloudmaster внутри целевой ВМ:
chmod 755 setup_cloudmaster_repo.sh
sudo ./setup_cloudmaster_repo.sh
# После завершения выполнения команды подключения репозитория терминал направит уведомление:
#
# Подключение публичного репозитория CloudMaster успешно завершено.
sudo apt update
# В итоговом отчёте убедитесь, что присутствует строка для репозитория Cloudmaster примерного вида:
# Hit:4 https://repo.cbi.cloudmaster.ru/repository/apt-public noble InRelease
# Автоматическая установка всех зависимостей
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. Файл находится по пути:
1. Идентификатор компании⚓︎
Укажите 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
Проверка работы⚓︎
Проверьте, что коллектор приступил к сбору данных. В бакете должны появиться вложенные папки:
/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 установите:
Просмотр журнала логов
Журналы работы приложения находятся в каталоге:
Удаление коллектора и всех его зависимостей
Информация для службы безопасности⚓︎
Результат установки
В процессе установки коллектора создаются:
-
Системный пользователь cloudmaster
-
Системная группа cloudmaster
-
Подкаталог
/opt/cloudmaster/services/cloudruadv-complex-collectorв этом подкаталоге установлены:
-
Java-приложение cm-cloudru-complexcollector.jar
-
конфигурационный файл application.yml
-
конфигурационный файл cm-cloudru-complexcollector.conf
-
подкаталог для лог-файлов logs
-
-
Системные unit-файлы для
systemd-сервиса cloudmaster-cloudruadv-complex-collector-/usr/lib/systemd/system/cloudmaster-cloudruadv-complex-collector.service -
Симлинк для
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.