ПРИЛОЖЕНИЯ

Приложение 1. Примеры файлов конфигураций

Файл конфигурации spectrum-api (пример для KeyCloak)

# Параметры подключения к БД Спектра
[database_config]
host_db=127.0.0.1
port_db=5432
dbname=spectrum
username_db=admin


[bottle]
# Путь к модулям управления кластером
modules_dir=/opt/skala-r/spectrum/modules
# Путь к файлам дашбордов
dashboards_dir=/opt/skala-r/spectrum/dashboards

# Параметры API Генома-У
[genome_config]
host=192.168.190.90
port=50888
base_url=/api/genome/v001/spectrum
# Параметры подключения к БД Сервисов кластера
username_db=genome

# Пути к сертификатам для обращения к Геному-У, по умолчанию закомментированы символом ';' или '#' в начале строки
cert=/opt/skala-r/spectrum/certs/ca.crt
client_cert=/opt/skala-r/spectrum/certs/client.crt
client_key=/opt/skala-r/spectrum/certs/client.key

# Параметры Визион
[vision_config]
host=192.168.190.133
port=8428
base_url=/vision/victoriametrics/api/v1
# Пути к сертификатам для обращения к Визиону, по умолчанию закомментированы символом ';' или '#' в начале строки
cert=/opt/skala-r/spectrum/certs/ca.crt
client_cert=/opt/skala-r/spectrum/certs/client.crt
client_key=/opt/skala-r/spectrum/certs/client.key

# Параметры API Агента Спектра
[agent_config]
port=9000
# Пути к сертификатам для обращения к агенту Спектра, по умолчанию закомментированы символом ';' или '#' в начале строки
cert=/opt/skala-r/spectrum/certs/ca.crt
client_cert=/opt/skala-r/spectrum/certs/client.crt
client_key=/opt/skala-r/spectrum/certs/client.key

# Параметры конфигурации для аутентификации, по умолчанию закомментированы символом ';' или '#' в начале строки
[auth]
auth_server=https://192.168.1.2:8080
realm=spectrum
client_id=spectrum-users
client_secret=xxx
cert=/opt/skala-r/spectrum/certs/keycloak-chain.pem
enabled=1

Файл конфигурации spectrum-tasks

[app]
# Путь к модулям управления кластером
modules_dir=/opt/skala-r/spectrum/modules
# Уровень логирования
log_level=DEBUG

# Параметры подключения к БД сервисов в кластере
[database_config]
database_config.dbname=postgres
database_config.username_db=genome

# Параметры доступа к API Спектра
[spectrum_api]
host=localhost
port=8000
# Пути к сертификатам для обращения к API Спектра, по умолчанию закомментированы символом ';' или '#' в начале строки
cert=/opt/skala-r/spectrum/certs/ca.crt
client_cert=/opt/skala-r/spectrum/certs/client.crt
client_key=/opt/skala-r/spectrum/certs/client.key

# Параметры доступа к Агенту Спектра
[agent_config]
# Пути к сертификатам для обращения к Агенту Спектра, по умолчанию закомментированы символом ';' или '#' в начале строки
cert=/opt/skala-r/spectrum/certs/ca.crt
client_cert=/opt/skala-r/spectrum/certs/client.crt
client_key=/opt/skala-r/spectrum/certs/client.key

Файл конфигурации spectrum-scheduler

[app]
# Путь к модулям управления кластером
modules_dir=/opt/skala-r/spectrum/modules
# Уровень логирования log_level=DEBUG

# Параметры подключения к БД сервисов в кластере
[database_config]
database_config.dbname=postgres
database_config.username_db=genome

# Параметры доступа к API Спектра [spectrum_api]
host=localhost
port=8000
# Пути к сертификатам для обращения к API Спектра, по умолчанию закомментированы символом ';' или '#' в начале строки
cert=/opt/skala-r/spectrum/certs/ca.crt
client_cert=/opt/skala-r/spectrum/certs/client.crt
client_key=/opt/skala-r/spectrum/certs/client.key

# Параметры доступа к Агенту Спектра
[spectrum_agent]
port=9000
# Пути к сертификатам для обращения к Агенту Спектра, по умолчанию закомментированы символом ';' или '#' в начале строки
cert=/opt/skala-r/spectrum/certs/ca.crt
client_cert=/opt/skala-r/spectrum/certs/client.crt
client_key=/opt/skala-r/spectrum/certs/client.key

Файл конфигурации spectrum-agent

{
     "log": {
         "level": "debug",
         "type": "file",
         "path": "/var/log/spectrum/"
     },
     "host": {
         "port": "9000"
     },
     "status": {
         "frequency": 5
     },
     "cert": {
         "server_cert": "",
         "server_key": "",
         "ca_cert": ""
     }
}

Описание полей файла конфигурации:

Поле файла конфигурации Описание поля

log

Параметры логирования

log.level

Уровень логирования

log.type

Тип логирования. В примере используетя логирование в файл

log.path

Путь к каталогу, в котором располагаются файлы логов Агента "Спектра"

host.port

Порт, на котором запущен Агент "Спектра"

status.frequency

Частота расчета конфигурации кластера в секундах

cert

Параметры сертификатов Агента Спектра

cert.server_cert

Путь к серверному сертификату. Может быть пустым

cert.server_key

Путь к ключу серверного сертификата. Может быть пустым

cert.ca_cert

Путь к корневому сертификату. Может быть пустым

Файл .vault_store с зашифрованными секретами

spectrum_db_pass: xx
password_db: x
client_secret: xxx
variable: value

Файл конфигурации Агента уведомлений "Спектра"

{
     "spectrum_host": "192.168.186.136",
     "spectrum_port": "8092",
     "cluster_id": "cc83acb8-e553-44ce-adb4-a30c75a3af2c",  "proto": "https"
     ,"ca_cert": "/opt/skala-r/spectrum/certs/ca.crt"
     ,"cert": "/opt/skala-r/spectrum/certs/client.crt",
     "key": "/opt/skala-r/spectrum/certs/client.key"
}

Описание полей файла конфигурации:

Поле файла конфигурации Описание поля

spectrum_host

IP-адрес Спектра, на который будут отправляться уведомления о событиях кластера

spectrum_port

Порт, на котором запущен API Спектра

cluster_id

ID кластера в Спектре, для которого настраиваются уведомления

proto

Протокол, с помощью которого будут отправляться уведомления. Может принимать значения https или http

ca_cert

Путь к корневому сертификату. Поле может отсутствовать в файле конфигурации

cert

Путь к серверному сертификату. Поле может отсутствовать в файле конфигурации

key

Путь к ключу серверного сертификата. Поле может отсутствовать в файле конфигурации

Приложение 2. Настройка KeyCloak

Пользовательский интерфейс консоли администратора KeyCloak может отличаться от приведенного в данном руководстве.

Для работы со "Спектром" при включенной авторизации необходимо настроить пользователей в KeyCloak.

  1. Выбрать нужный Realm (рабочее пространство) в выпадающем списке над меню или создать новый (на скриншоте ниже выбрано значение "test-docs-realm"). После задания нужного Realm перейти в раздел "Клиенты" (Clients) и нажать кнопку Создать клиента (Create client):

    image$admin keycloak web
  2. В поле "Client ID" нужно ввести идентификатор клиента и нажать кнопку "Далее" (Next). Заданный ID клиента будет в дальнейшем использоваться в параметрах конфигурации “Спектра”.

  3. На следующей странице:

    • включить переключатель "Аутентификация клиента" (Client authentication),

    • выставить флаг "Standart Flow",

    • выставить флаг "Direct access grants", и далее нажать кнопку "Сохранить" (Save).

      Эти параметры позднее можно изменить в настройках клиента.

  4. Перейти во вкладку "Настройки" (Settings), в поле "Валидация URI перенаправления" (Valid redirect URIs) добавить IP-адрес "Спектра" в формате:

    PROTO://IP:XXXX/*

    где

    • PROTO - http или https, в зависимости от настроек SSL "Спектра" (см. п. 3.3);

    • IP - IP адрес "Спектра";

    • XXXX - порт "Спектра" для доступа к веб-интерфейсу.

      Нажать кнопку Сохранить (Save).

  5. Во вкладке "Учетные данные" (Credentials) есть поле "Секрет" (Client secret), значение которого будет в дальнейшем использоваться в параметрах конфигурации "Спектра". Значение можно скопировать в буфер обмена, нажав на соответствующую кнопку возле поля.

  6. Перейти во вкладку "Роли" (Roles), нажать кнопку "Создать роль (Create role).

  7. На экране создания роли ввести имя роли и нажать "Сохранить" (Save). В примере, приведенном в данном руководстве, должны быть созданы две роли: "spectrum-ro" и "spectrum-rw".

  8. Перейти в пункт меню "Пользователи" (Users) и на странице "Пользователи" (User list) нажать кнопку Создать пользователя (Create new user).

  9. На экране создания пользователя:

    • ввести желаемое имя пользователя,

    • включить "E-mail подтвержден" (Email verified),

    • нажать кнопку Создать (Create).

      В примере, приведенном в данном руководстве, будет создано два пользователя: "sprtest" и "sprtest-rw".

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

  11. Перейти во вкладку "Учетные данные" (Credentials), нажать кнопку Установить пароль (Set password).

  12. В появившемся окне задать пароль, повторить пароль и выключить признак "Временный" (Temporary), если не требуется смена пароля пользователем при первом входе. Нажать кнопку Сохранить (Save).

  13. Перейти во вкладку "Сопоставление ролей" (Role mapping), нажать кнопку Назначить роль (Assign role).

  14. На экране назначения ролей:

    (1) в выпадающем списке фильтра выбрать "Отсортировать по клиентам" (Filter by client),

    (2) ввести полностью или частично имя необходимой роли / общей части имени ролей, созданной ранее,

    (3) выбрать роли для назначения данному пользователю, выставив соответствующие флаги,

    нажать кнопку Назначить (Assign).

    image$admin assign roles

    В примере, приведенном в данном руководстве, пользователю sprtest назначается роль spectrum-ro, а пользователю sprtest-rw — spectrum-ro и spectrum-rw.

  15. После настройки включить настроенный Realm, если этого не было сделано ранее. Для этого перейти в пункт меню "Настройки реалма" (Realm settings) и включить переключатель "Включен" (Enabled)в правом верхнем углу окна.

Приложение 3. Настройка Avanpost FAM

Пользовательский интерфейс консоли администратора Avanpost может отличаться от приведенного в данном руководстве.

  1. Создать приложение — перейти во вкладку "Приложения" и нажать кнопку Добавить приложение.

  2. В окнах 1–3 выбрать / указать следующие данные:

    • Выбрать Open ID;

    • Указать secret;

    • Указать необходимые Redirect URLs (их можно будет изменить в дальнейшем);

    • В разделе "Allowed grant types" активировать пункты "Authorization code", "Refresh token".

    • В разделе "Scope" (default) указать "openid profile email permissions groups".

      В результате будет создано приложение, которое отобразится в списке на странице "Приложения". Пример настроенного приложения Spectrum, с возможностью запускать веб-приложение на localhost:

      image$admin customized spectrum app
  3. Нажать на имя приложения и перейти на вкладку "Модель доступа", где задать следующие параметры:

    • Код

    • Описание

    • Права.

      Нажать кнопку Сохранить.

  4. Перейти на вкладку "Сервис", в раздел "Настройка ролей и прав" и нажать кнопку + Добавить.

  5. Указать наименование и описание.

  6. Для создаваемой роли выбрать необходимые права.

  7. Создать группы для добавления пользователей: перейти на вкладку "Группы" и нажать кнопку Добавить группу.

  8. На вкладке "Приложения" указать приложение, для которого будет активна создаваемая группа.

  9. На вкладке "Роли" выбрать роли, которыми будут обладать пользователи, входящие в создаваемую группу.

  10. Создать пользователя: перейти на вкладку "Пользователи", нажать кнопку Добавить пользователя и указать следующие данные:

    • Логин

    • Фамилия

    • Имя

    • Адрес электронной почты

      Нажать кнопку Сохранить.

  11. Настроить пароль: перейти на вкладку "Пользователи" и нажать имя требуемого пользователя.

    Перейти на вкладку "Безопасность" и нажать ссылку "Задать новый пароль". Ввести новый пароль, подтверждение пароля и нажать кнопку Сохранить.

  12. Добавить пользователя в созданную группу: перейти на вкладку "Группы" и нажать на имя созданной группы.

    Отобразится вкладка "Пользователи" созданной группы.

    Нажать кнопку Добавить пользователей, выбрать в списке требуемого пользователя и нажать кнопку Сохранить.

  13. Проверка.

    Перейти во вкладки "Приложения" и "Группы и роли" и убедиться, что добавленный пользователь присутствует в созданных приложении и группе.