Руководство по установке#

В руководстве приведены инструкции по установке компонента Indicator (INDA) продукта Platform V Monitor (OPM)

Термины и определения#

С основными терминами и определениями можно ознакомиться в документации продукта Platform V Monitor (OPM).

Термин/определение

Определение

DDL

Data Definition Language — команды языка SQL для создания и изменения объектов БД.

LiquiBase

JDBC это библиотека Java для работы с базами данных, включая PostgreSQL и Pangolin.

SSL

Secure Sockets Layer — уровень защищенных сокетов.

Secret

Сущность контейнерной инфраструктуры для хранения защищенных данных, например: логинов и сертификатов

SAN

Расширение сертификата Subject Alternative Name (SAN). В этом расширении позволяет использовать несколько дополнительных имен для сертификата.

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

Настройки безопасности окружения и перечень платформенных (дополнительных внешних) продуктов, используемых для установки, настройки и контроля в конечной информационной системе (далее — ИС), выбираются клиентом при разработке конечной ИС, исходя из характера обрабатываемой в ней информации и иных требований информационной безопасности (далее — ИБ), предъявляемых к ней.

Системное программное обеспечение#

Категория ПО

Обязательность установки*

Наименование ПО

Версия

Продукт, функциональная совместимость с которым подтверждена **

Назначение категории ПО

Операционная система

Да

ОС Альт 8 СП

8.2 и выше

Рекомендовано

ОС контейнеров для запуска модулей компонента

Red Hat Enterprise Linux

7.9 / 3.10.0-1160.25.1.el7.x86_64 и выше

Опционально

Среда контейнеризации

Да

Kubernetes

1.21.0 и выше

Рекомендовано

Платформа контейнеризации для запуска компонентов сервиса

Red Hat OpenShift

1.19.0 + d856161 и выше

Опционально

Средство контейнеризации

Да

Docker CE

Рекомендовано

Инструмент для автоматизации работы с контейнерами

Инструмент сборки, тестирования, развертывания контейнеризированных приложений

Да

Jenkins

2.319.3 и выше

Рекомендовано

Сервер автоматизации, используемый для внедрения непрерывной интеграции и непрерывной доставки (CI/CD) для проектов программного обеспечения

Java-машина

Да

OpenJDK

1.8.0_292 и выше

Рекомендовано

Окружение для работы модулей компонента

Система управления базами данных (СУБД)

Да

PostgreSQL

PostgreSQL SE version: 04.005.00 и выше

Рекомендовано. Правообладателем АО «СберТех» также рекомендована СУБД, основанная на PostgreSQL, – Platform V Pangolin SE, см. раздел «Платформенные зависимости»

ПО, взаимодействующее с конечными пользователями, приложениями и базой данных для сбора и анализа данных

Nginx

1.20.1 и выше

Рекомендовано

Сервер для балансировки внешних и внутренних запросов между сервисами

Браузер

Да

Яндекс

19.10 и выше

Рекомендовано

Браузер для входа в UI

Google Chrome

96.0 и выше

Опционально

Брокер сообщений

Да

Kafka

2.5.2 и выше

Рекомендовано. Правообладателем АО «СберТех» также рекомендован брокер сообщений, основанный на Kafka, – Platform V Corax, см. раздел «Платформенные зависимости»

Событийный обмен сообщениями между модулями компонента

Инструмент управления проектом

Да

Apache Maven

3.8.3 и выше

Рекомендовано

Фреймворк для автоматизации сборки проектов на основе описания их структуры в файлах на языке POM

Сервис централизованного хранения репозиториев артефактов (хранилище артефактов)

Да

Nexus-Public

3.37.0-01 и выше

Рекомендовано

Интегрированная платформа для проксирования, хранения и управления зависимостями Java (Maven), образами, а также распространения ПО

Сервис централизованного хранения репозиториев исходного кода

Да

GitLab Community Edition

12.5 и выше

Рекомендовано

Хранение конфигураций при автоматизированной установке

Bitbucket

7.8.1 и выше

Опционально

Сервис интеграции и оркестрации микросервисов в облаке

Да

Istio

1.12 и выше

Рекомендовано. Правообладателем АО «СберТех» также рекомендован сервис интеграции и оркестрации микросервисов в облаке, основанный на Istio, – Platform V Synapse Service Mesh, см. раздел «Платформенные зависимости»

Сервис интеграции микросервисов в облаке

Да

LDAP (Lightweight Directory Access Protocol

3 и выше

Опционально

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

Платформенные зависимости#

Для настройки, контроля и функционирования компонента реализована интеграция с программными продуктами, правообладателем которых является АО «СберТех»:

(перечень продуктов, версия, обязательность установки и аналог других производителей – приведены условно, при разработке документации их нужно актуализировать под свой компонент):

Наименование продукта

Код

Версия продукта

Код и наименование компонента

Обязательность установки (да/нет)***

Описание

Аналог других производителей****

Platform V Audit SE

AUD

1.1

AUDT Аудит

Нет

Сервис для аудирования событий

Сервис успешно прошел испытания и подтвердил свою работоспособность с компонентом AUDT. С аналогами других производителей не тестировался

Platform V IAM SE

IAM

1.2

AUTH IAM Proxy

Да

Сервис выполняет функции аутентификации/авторизации запросов и реализует Policy Enforcement Point (PEP). Взаимодействует с KCSE/AUTZ или другими провайдерами аутентификации/авторизации

Любой OIDC провайдер

Platform V Monitor

OPM

1.2

LOGA Журналирование

Нет

Сервис для хранения лог-файлов

Любой сервис сбора записей о событиях, совместимый с fluent-bit, например: Elasticsearch, InfluxDB

MONA Объединенный мониторинг Unimon

Нет

Сервис для сбора прикладных и инфраструктурных метрик и отправки их в целевую систему хранения

Prometheus 2.21.0

LGDB Abyss

Да

Druid 1.3

COTE Collector

Да

Prometheus 2.21.0

Platform V Pangolin SE

PSQ

4.6.0

PSQL Platform V Pangolin

Да

Система управления базами данных, основанная на PostgreSQL

PostgreSQL 11

Platform V DevOps Tools

DOT

1.2

CDJE Deploy tools

Нет

Сервис для развертывания и обновления компонентов Платформы и приложений потребителей, для настройки и обслуживания инфраструктуры Платформы

Ручное развертывание

Platform V Synapse Service Mesh

SSM

1.12

POLM Управление политиками

Нет

Панель управления с открытым исходным кодом, служащая для взаимодействия, мониторинга и обеспечения безопасности контейнеров в среде контейнеризации Kubernetes

Istio control plane 1.12

IGEG Граничный прокси

Нет

Сервис для обеспечения управляемого вызова интеграционных сервисов прикладной части

Istio proxy 1.12

Platform V Backend

#BD

4.3.0

OTTS One-Time Password (OTP) / OTT

Нет

Сервис для аутентификации и авторизации межсервисных взаимодействий

<Наименование и номер версии ПО-аналога стороннего производителя>

Platform V Corax

KFK

5.1

KFKA Kafka Sber Edition

Нет

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

Kafka 2.7.0

Пре реквизиты установки#

При использовании Jenkins для установки pipeline (опциональный способ), дополнительно:

  • Должен быть доступ в Jenkins и созданы необходимые сущности в нем;

  • Все узлы сервиса Platform V Monitor Indicator должны быть доступны для вызова со стороны Jenkins;

  • Должен быть доступ в репозиторий и создан в нем проект для помещения ролей и inventory.

Инструмент установки#

Установка дистрибутива производится с использованием одного из вариантов:

  • Ручная установка без использования скриптов развертывания

  • Ручная установка с использованием инструмента установки Platform V Monitor, расположенного в дистрибутиве по пути package/bh/installer/deploy-pvm.zip (инструкция по его использованию находится внутри архива

  • Автоматическая установка (опционально) компонентом Deploy tools в составе Platform V DevOps Tools версии не ниже release/D-01.038.1031-743

Среда контейнеризации#

Для установки компонентов сервиса в рекомендуемой конфигурации требуется наличие двух (в раздельных георезервированных ЦОД) собственных namespace в среде контейнеризации Kubernetes или OpenShift (опционально) с одинаковыми квотами и следующими пререквизитами:

  1. Подключен Platform V Synapse Service Mesh (Istio)

  2. Заполнен файл multiClusters.json в common репозитории с указанием обоих кластеров, для каждого из которых обязательно заданы (названия одинаковы для обеих сред контейнеризации):

    1. openshiftCluster - адрес для API запросов к кластеру

    2. openshiftProjectName - название namespace

    3. openshiftSATokenCred - имя credential с типом Secret Text, в котором сохранен токен Service Account для данного namespace с ролью edit

    4. openshiftAppsDomain - домен для Ingress (в формате apps…домен.ru)

  3. Создан секрет с типом "Image Pull Secret", содержащий логин и пароль для загрузки образов из registry.

Аппаратные требования#

В качестве базовой единицы КТС будет использоваться вариант min2_CPU/2GB_RAM.

CPU (core)

RAM, Gb

HDD, Gb

IOPS

Прочие

2

2

30

> 5

Предустановленный postgreSQL не ниже версии ver.11.6 или СУБД Platform V Pangolin

Состав дистрибутива#

Компонент дистрибутива

Описание

package/conf/k8s/

манифесты Kubernetes и параметры конфигурации с рекомендуемыми значениями

package/conf/parameters/**

файлы с параметрами конфигурации с рекомендуемыми значениями

package/conf/openshift/

манифесты Openshift и параметры конфигурации с рекомендуемыми значениями

package/conf/openshift/indicator/**

файлы для развертывания

documentation/**

файлы с документацией

Здесь и далее поддерживаемой системой приложений-контейнеров Kubernates или OSE, в именах и параметрах системы могут встречаться названия систем контейнеризации.

Установка#

Настройка программного и аппаратного обеспечения среды функционирования#

В качестве платформа виртуализации используется среды контейнеризации Kubernetes или Red Hat OpenShift 4+

Необходимо подготовить пространство (проект) в платформе контейнеризации в соответствии с минимальными требованиями по квотам сервиса. Проект платформы виртуализации должен быть подключен к service mesh - Istio Прописан global.ufs.synapse.controlPlane.project=(проект) в common репозитории

Настройки интеграции для компонент Platform V Synapse Service Mesh и Istio proxy (IGEG) описаны в файле indicator.istio.all.conf

Ручная установка#

Ручная установка с помощью инструмента установки#

Настроить инструмент установки Platform V Monitor в соответствии с его инструкцией, а затем выполнить в консоли следующие команды:

cd ansible; ./deploy-<id_дистрибутива>.sh

Ручная установка без использования инструмента#

Для установки сервиса Platform V Monitor Indicator вручную необходимо:

  1. Получить дистрибутив сервиса Platform V Monitor Indicator;

  2. Заказать схему БД Postgres или СУБД Platform V Pangolin для Platform V Monitor Indicator;

  3. Создать секреты:

    • Для файлов вида *-certs.yaml, необходимо вручную создать yaml;

  4. Во всех файлах .yaml расположенных в директориях заполнить значения переменных.

  5. Подготовить ConfigMaps, создать файлы, которые необходимо заполнить нужными значениями параметров:

    • Внести изменения в файл indicator-logger.conf и indicator.istio.all.conf

    • Для настройки интеграции с Platform V Monitor Журналирование необходимо внести изменения в файл indicator-logger.conf.r4.yaml.

    • Для настройки интеграции внешних API. внести изменения в файл indicator.istio.all.conf.r4.yaml.

  6. Если namespace подключен к Istio и требуется выводить трафик через Deployment Egress необходимо:

    • создать секреты:

      • istio-egressgateway-ca-certs secret-istio-egressgateway-ca-certs.yaml

      • istio-egressgateway-certs secret-istio-egressgateway-certs.yaml

    • заполнить значения переменных для всех файлов .yaml из директории istio.

  7. В случае если, namespace подключен к Istio и НЕ требуется выводить трафик через Deployment Egress необходимо заполнить только файлы:

    • egress-se-http-logger serviceentry-egressgateway-logger-monitoring-r3.yaml

  8. Далее необходимо установить все заполненные файлы .yaml в платформе приложений-контейнеров с помощью команды.

Kubernetes

kubectl apply -f <имя_файла.yaml>

Для OpenShift

oc apply -f <имя_файла.yaml>

Установка с использованием DevOps Tools#

  1. Подготовить pipeline для установки (Выполнить миграцию компонент JOB или сделать свой pipeline).

  2. Подготовить сертификаты и secrets. Для этого необходимо создать JKS файл indicator.jks (должен содержать корневой сертификат, сертификат-сервер, ключ), затем разместить его в папку ** ansible/files/ssl ** в common репозитории.

Для правильной настройки нужно сразу проставить сертификатам alias: root, cert, key.

Файл необходим для работы АС с БД SMTP LDAP Kafka и так далее c Вашими сертификатами. При использовании SSL подключения к базе данных, на сервере БД должен использоваться сертификат с Subject Alternate Name (SAN).

Также в common репозитории добавить параметры в файл ssl.conf имя файла пароль(ссылается на параметр из passwords.conf).

Пример заполнения файл ssl.conf переменными для создания Secret из JKS файла.

ssl.ose.certs.jks.file=ansible/files/ssl/indicator.jks ssl.ose.certs.jks.pass=ssl.inda.keyStore.pass
ssl.ose.jks.cacert.alias=root ssl.ose.jks.cert.alias=cert ssl.ose.jks.key.alias=key
ssl.ose.ott.module.file=ansible/files/ssl/indicator.p12
ssl.ose.ott.trust.file=ansible/files/ssl/sigma_ott_trust.p12

в переменной "ssl.ose.jks.cacert.alias" добавлена возможность перечисления alias сертификатов, которые будут загружены в truststore istio.

Также для использования сертификатов межсервисного взаимодействия через ISTIO необходимо проверить настройки данного пункта:

##########################
# Параметры istio INDA
##########################
ssl.ose.istio.keyStore.ingress.CertAlias=istio
ssl.ose.istio.keyStore.ingress.KeyStoreFromFile=ansible/files/ssl/istio-nightly.jks
ssl.ose.istio.keyStore.egress.CertAlias=istio
ssl.ose.istio.keyStore.egress.KeyStoreFromFile=ansible/files/ssl/istio-nightly.jks
ssl.ose.istio.keyStore.ingress.password=ssl.inda.keyStore.pass
ssl.ose.istio.keyStore.egress.password=ssl.inda.keyStore.pass
ssl.ose.istio.keyStore.RootCertAlias=root

# k8s/base/secrets
ssl.ose.inda.certs.jks.file=ansible/files/ssl/istio-nightly.jks
ssl.ose.inda.certs.jks.pass=ssl.inda.keyStore.pass
ssl.ose.inda.jks.cacert.alias=root
ssl.ose.inda.jks.cert.alias=istio
ssl.ose.inda.jks.key.alias=istio
# k8s/base/istio/secrets (egress)
ssl.ose.inda.egress.certs.jks.file=ansible/files/ssl/istio-nightly.jks
ssl.ose.inda.egress.certs.jks.pass=ssl.inda.keyStore.pass
ssl.ose.inda.egress.jks.cacert.alias=root
ssl.ose.inda.egress.jks.cert.alias=istio
ssl.ose.inda.egress.jks.key.alias=istio
# k8s/base/istio/secrets (ingress)
ssl.ose.inda.ingress.certs.jks.file=ansible/files/ssl/istio-nightly.jks
ssl.ose.inda.ingress.certs.jks.pass=ssl.inda.keyStore.pass
ssl.ose.inda.ingress.jks.cacert.alias=root
ssl.ose.inda.ingress.jks.cert.alias=istio
ssl.ose.inda.ingress.jks.key.alias=istio

Если настройки Istio не идут в составе дистрибутива тогда необходимо перенастроить файл с манифестами Openshift.

global.poddisruptionbudget.minAvailable=50% global.poddisruptionbudget.maxUnavailable=50%
global.ufs.synapse.envoy.image=путь_registry

registry=ваш_registry.space registry_path_inda=/folder_dev/ci90000061_inda_dev
registry_path_loga=/folder/ci90000078_loga registry_path_aiom=/folder/ci90000102_aiom_dev

Произвести настройку secrets в файле _passwords.conf на основе параметров которые есть distrib.yml, файл находится в составе дистрибутива.

Пример заполнения файла _passwords.conf.

Имя параметра

Примеры значений

ssl.inda.keyStore.pass

PAssWord!1

jdbc.INDICATOR.user

PAssWord!2

jdbc.INDICATOR.password

PAssWord!3

GRAFANA_SMTP_PASS

PAssWord!4

GRAFANA_LDAP_BIND_PASSWORD

PAssWord!5

GRAFANA_DATASOURCE_ABYSS_PASSWORD

PAssWord!6

GRAFANA_ADMIN_USER

PAssWord!7

GRAFANA_ADMIN_PASS

PAssWord!8

GF_SECURITY_SECRET_KEY

PAssWord!9

OTT_TRUST_STORE_PWD

PAssWord!9

OTT_CERTSTORE_PWD

PAssWord!9

OTT_CERTSTORE_PRIVATE_KEY_PWD

PAssWord!9

Здесь и далее в именах и параметрах системы могут встречаться названия системы jdbc. JDBC это библиотека Java для работы с базами данных, включая PostgreSQL и Pangolin

Где, GF_SECURITY_SECRET_KEY – это ключ, которым будут шифроваться данные пользовательских конфигураций в БД.

Если все заполнено правильно, тогда при Deploy создастся secret в платформе приложений-контейнеров с сертификатами:

TEMPLATE

  {% if aiom.ose.secrets.export.certificates.from.jks == true %}
apiVersion: v1
kind: Secret
metadata:
  name: indicator.certs.${distrib.release.version}
type: Opaque
data:
  cacert.pem: >-
    {{ lookup('jks', configCommon.currentName + '/' + (certsFileJks | default(vars['ssl.ose.certs.jks.file'])), password_variable_name=caCertFilePass | default(vars['ssl.ose.certs.jks.pass']), alias=rootCertAlias | default(vars['ssl.ose.jks.cacert.alias']), type='certificate') }}
  cert.pem: >-
    {{ lookup('jks', configCommon.currentName + '/' + (certsFileJks | default(vars['ssl.ose.certs.jks.file'])), password_variable_name=caCertFilePass | default(vars['ssl.ose.certs.jks.pass']), alias=CertAlias | default(vars['ssl.ose.jks.cert.alias']), type='certificate') }}
  cert-key.pem: >-
    {{ lookup('jks', configCommon.currentName + '/' + (certsFileJks | default(vars['ssl.ose.certs.jks.file'])), password_variable_name=caCertFilePass | default(vars['ssl.ose.certs.jks.pass']), alias=keyAlias | default(vars['ssl.ose.jks.key.alias']), type='key') }}
  {% endif %}

Пример готового Secret в платформе приложений-контейнеров:

apiVersion: v1
kind: Secret
metadata:
  name: indicator.certs.pvm
type: Opaque
data:
  cacert.pem: >-
    base64_encoded_text
  cert.pem: >-
    base64_encoded_text
  cert-key.pem: >-
    base64_encoded_text

2.Внести изменения в файл indicator-logger.conf и indicator.istio.all.conf.

Для настройки интеграции с Platform V Monitor Журналирование необходимо внести изменения в файл indicator-logger.conf в пункт:

#Параметры брокеров и топика куда отбрасывается лог
fluent-bit.ose.configmaps.fluent-bit.data.brokers=host
fluent-bit.ose.configmaps.fluent-bit.data.topics=IDR.Indicator
fluent-bit.ose.configmaps.fluent-bit.data.security.protocol=SSL

Для настройки интеграции внешних API. внести изменения в файл indicator.istio.all.conf в пунктах:

#параметры egress для взаимодействия APP UI — c внешним бэкендом
indicator.ose.istio.egress.common.internal-port=11085
#unimon-backend
indicator.ose.istio.egress.unimon-backend.enabled=true
indicator.ose.istio.egress.serviceentry.unimon-backend.hosts=host
indicator.ose.istio.egress.unimon-backend.port=443
indicator.ose.istio.egress.serviceentry.unimon-backend.protocol=HTTPS
#almgr-backend
indicator.ose.istio.egress.almgr-backend.enabled=true
indicator.ose.istio.egress.serviceentry.almgr-backend.hosts=host
indicator.ose.istio.egress.almgr-backend.port=443
indicator.ose.istio.egress.serviceentry.almgr-backend.protocol=HTTPS
#aiom-backend
indicator.ose.istio.egress.aiom-backend.enabled=true
indicator.ose.istio.egress.serviceentry.aiom-backend.hosts=host
indicator.ose.istio.egress.aiom-backend.port=443
indicator.ose.istio.egress.serviceentry.aiom-backend.protocol=HTTPS

С полным описанием настроек можно ознакомиться в файле.

Выполнить настройки external.

#параметры egress для взаимодействия APP UI — c внешним бэкендом
||||
|#unimon.external
|indicator.ose.istio.egress.unimon.external.enabled|false или true||
|indicator.ose.istio.egress.serviceentry.unimon.external.hosts|host||
|indicator.ose.istio.egress.unimon.external.port|443||
|indicator.ose.istio.egress.redirect.https.unimon|2029||
|indicator.ose.istio.egress.serviceentry.unimon.external.protocol|HTTPS||
||||
|#almgr.external
|indicator.ose.istio.egress.almgr.external.enabled|false или true||
|indicator.ose.istio.egress.serviceentry.almgr.external.hosts|host||
|indicator.ose.istio.egress.almgr.external.port|443||
|indicator.ose.istio.egress.redirect.https.almgr|2030||
|indicator.ose.istio.egress.serviceentry.almgr.external.protocol|HTTPS||
||||
|#aiom.external||
|indicator.ose.istio.egress.aiom.external.enabled|false или true||
|indicator.ose.istio.egress.serviceentry.aiom.external.hosts|host||
|indicator.ose.istio.egress.aiom.external.port|443||
|indicator.ose.istio.egress.redirect.https.aiom|2031||
|indicator.ose.istio.egress.serviceentry.aiom.external.protocol|HTTPS||

Если внешние или смежные Platform V Monitor, сервис (Abyss) будут за балансировщиком в таком случае можно в конфигурации Indicator отключить избыточные конфигурации «…. Enabled=true» потому что достаточно одного созданного туннеля до HOST для любых взаимодействий с этим HOST.

Для настройки георезервирования См. подробнее раздел Настройка георезервирования в Руководстве по системному администрированию

3.Настроить конфигурационный файл /conf/config/parameters/ необходимо указать значения в indicator.conf для переменных:

Имя параметра

Примеры значений

Описание

# Параметры для INDICATOR

# Изменить имя Deployment,Service,HPA,Route - запрещено использовать спецсимволы и "_" валидный пример new-name, если это не нужно использовать в значение ${distrib.release.version}

CHANGE_NAME_DEPLOYMENT

${distrib.release.version}

#параметры server (для настройки IAM Proxy)

GRAFANA_SERVER_DOMAIN

${global.platform.iam.core.host}

Глобальная переменная. Этот параметр используется только как часть параметра rooturl. Для настройки proxy указывается domain proxy (Ваш_url.Вашдомен.ru)

GRAFANA_SERVER_ROOT_URL

https://%(domain)s/indicator

Это полный URL-адрес, используемый для доступа к indicator из веб-браузера. Для настройки proxy указывается ссылка на proxy (https://%(domain)s/indicator/)

GRAFANA_SERVER_SUB_PATH

false или true

true если в root_url указан sub path (в примере выше /indicator/)

# Возможны значения "debug", "info", "warn", "error", "critical"

GRAFANA_LOGGING_LEVEL

info

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

#Параметры для подключения к БД (Grafana)

GRAFANA_DB_TYPE

PostgreSQL или sqlite3

Тип базы данных

# Используем внутренний порт для egress из файла indicator.istio.all.conf - соответсвующий первому хосту

GRAFANA_DB_HOST

${EFS_PSTGR_DB_HOST}:${EFS_PSTGR_DB_PORT}

Глобальная переменная. IP и port подключения к БД. Если если выбран тип базы sqlite3, то параметр принимает значение например 100.0.0.0:3306

GRAFANA_DB_NAME

${EFS_PSTGR_DB_NAME}

Глобальная переменная.Имя БД

#При GRAFANA_DB_SSL_MODE=disable параметры: ?prepareThreshold=0&binary_parameters=yes, при GRAFANA_DB_SSL_MODE=verify-full параметр: ?binary_parameters=yes

GRAFANA_DB_PARAMETERS

?binary_parameters=yes

# При GRAFANA_DB_SSL_MODE=verify-full не забываем перевести параметр в true (indicator.ose.deployment.spec.template.spec.containers.indicator.change.permission.for.key=true см.внизу файла)

GRAFANA_DB_SSL_MODE

verify-full

Для Postgres, использовать или disable, или require ,или verify-full. При GRAFANA_DB_SSL_MODE=disable параметры: ?prepareThreshold=0&binary_parameters=yes, при GRAFANA_DB_SSL_MODE=verify-full параметр: ?binary_parameters=yes GRAFANA_DB_PARAMETERS=?binary_parameters=yes. При GRAFANA_DB_SSL_MODE=verify-full не забываем перевести параметр в true (indicator.ose.deployment.spec.template.spec.containers.indicator.change.permission.for.key=true см.внизу файла)

INDICATOR_DB_SKIP_MIGRATIONS

false или true

GRAFANA_DB_CA_CERT_PATH

${indicator.ose.deployment.spec.template.spec.containers.indicator.volumeMounts.mountPath.sslcerts}/cacert.pem

Глобальная переменная.Путь к используемому сертификату

GRAFANA_DB_CLIENT_KEY_PATH

${indicator.ose.deployment.spec.template.spec.containers.indicator.volumeMounts.mountPath.sslcerts}/cert-key.pem

Глобальная переменная.Путь к ключу клиента

GRAFANA_DB_CLIENT_CERT_PATH

${indicator.ose.deployment.spec.template.spec.containers.indicator.volumeMounts.mountPath.sslcerts}/cert.pem

Глобальная переменная. Путь к сертификату клиента

GRAFANA_DB_SERVER_CERT_NAME

Имя используемого сертификата

#Проверяет соответствие установленной через liquibase версии БД

INDICATOR_EXPECTED_LIQUIBASE_TAG

v.4.1.0

INDICATOR_LIQUIBASE_TABLENAME

liq_databasechangelog

GRAFANA_SMTP_ENABLED

false или true

Включение функционала для отправки Email

GRAFANA_SMTP_SKIP_VERIFY

false или true

Если GRAFANA_SMTP_SKIP_VERIFY=true то оставить пустым параметр -> GRAFANA_SMTP_CERT_FILE=${indicator.ose.deployment.spec.template.spec.containers.indicator.volumeMounts.mountPath.sslcerts}/cert.pem. Если GRAFANA_SMTP_SKIP_VERIFY=true то оставить пустым параметр -> GRAFANA_SMTP_KEY_FILE=${indicator.ose.deployment.spec.template.spec.containers.indicator.volumeMounts.mountPath.sslcerts}/cert-key.pem

GRAFANA_SMTP_HOST

hostname

Сервер для подключения к SMTP

GRAFANA_SMTP_USER

username

УЗ для подключения к SMTP

GRAFANA_SMTP_FROM_ADDR

address@email.com

Адрес, используемый при отправке электронных писем

GRAFANA_SMTP_FROM_NAME

indicator

Имя, которое будет использоваться при отправке электронных писем

# ЕСЛИ GRAFANA_SMTP_SKIP_VERIFY=true то оставить пустым параметр -> GRAFANA_SMTP_CERT_FILE=${indicator.ose.deployment.spec.template.spec.containers.indicator.volumeMounts.mountPath.sslcerts}/cert.pem

# ЕСЛИ GRAFANA_SMTP_SKIP_VERIFY=true то оставить пустым параметр -> GRAFANA_SMTP_KEY_FILE=${indicator.ose.deployment.spec.template.spec.containers.indicator.volumeMounts.mountPath.sslcerts}/cert-key.pem

GRAFANA_SMTP_CERT_FILE

см. значение GRAFANA_SMTP_SKIP_VERIFY

Глобальная переменная. Путь к файлу сертификата для SMTP

GRAFANA_SMTP_KEY_FILE

см. значение GRAFANA_SMTP_SKIP_VERIFY

Глобальная переменная. Путь к файлу ключу для SMTP

#Параметры security

GRAFANA_SECURITY_COOKIE_SAMESITE

lax или none

Устанавливает атрибут SameSite cookie и запрещает браузеру отправлять этот файл cookie вместе с меж сайтовыми запросами. Для того чтобы ключ IAM Proxy передавался в iframe и Grafana его принимала требуется указать none

GRAFANA_SECURITY_ALLOW_EMBEDDING

false или true

Если параметр принимает значение значение false, то HTTP-заголовок X-Frame-Options: deny будет установлен в HTTP-ответах Grafana. Чтобы Grafana можно было использовать через Iframe нужно указать true

GRAFANA_SECURITY_CSP_ENABLED

false или true

Установите значение true, чтобы добавить заголовок Content-Security-Policy в запросы. CSP позволяет контролировать ресурсы, которые может загружать агент пользователя, и помогает предотвращать атаки XSS.

# пример для iframe (перечислять url через пробел) GRAFANA_SECURITY_CSP_TEMPLATE=frame-src https://host1 https://host2:18082;

GRAFANA_SECURITY_CSP_TEMPLATE

frame-src https://host1 https://host2:18082;

Шаблон Content-Security-Policy, используемый при добавлении заголовка Content-Security-Policy в ваши запросы.

#Параметры для подключения к LDAP

GRAFANA_LDAP_ENABLED

false или true

Включение аутентификации через LDAP

GRAFANA_LDAP_HOST

ИмяВашегоСервера.ru

Сервер для подключения к LDAP

GRAFANA_LDAP_PORT

333

Порт для подключения к LDAP

GRAFANA_LDAP_BIND_DN

ИмяВашейУЗ@.ru

УЗ для подключения

GRAFANA_LDAP_SEARCH_BASE_DNS

["DC=ru"]

Массив базовых DNS для поиска

GRAFANA_LDAP_ALLOW_SIGN_UP

false или true

GRAFANA_LDAP_USE_SSL

false или true

GRAFANA_LDAP_START_TLS

false или true

GRAFANA_LDAP_SSL_SKIP_VERIFY

GRAFANA_LDAP_ROOT_CA_CERT

CA cert. для LDAP

GRAFANA_LDAP_CLIENT_CERT

Сертификат клиента TLS для LDAP

GRAFANA_LDAP_CLIENT_KEY

Клиентский ключ TLS для LDAP

#Параметры auth

GRAFANA_AUTH_LOGIN_FORM

false или true

Установите значение true, чтобы отключить (скрыть) форму входа в систему

GRAFANA_AUTH_SIGNOUT_MENU

false или true

Установите значение true, чтобы отключить ссылку выхода из бокового меню

GRAFANA_AUTH_SIGNOUT_REDIRECT_URL

${rest_entry_point}/openid-connect-auth/logout

#Параметры auth.proxy

GRAFANA_AUTHPROXY_ENABLED

false или true

Включение функционала auth proxy например для работы через Platform V IAM SE

GRAFANA_AUTHPROXY_HEADER_NAME

Auth-Svc-User

Имя заголовка HTTP, которое будет содержать имя пользователя или адрес электронной почты

GRAFANA_AUTHPROXY_HEADER_PROPERTY

username

Свойство заголовка HTTP

GRAFANA_AUTHPROXY_AUTO_SIGN_UP

false или true

Установите значение "true", чтобы включить автоматическую регистрацию пользователей, которые не существуют в базе данных Grafana

GRAFANA_AUTHPROXY_KEY_URL

${global.platform.iam.jwks.core.url}

Глобальная переменная. Url на jwks iam для получения публичного ключа. Работает только через HTTP

GRAFANA_AUTHPROXY_CACHE_KEY

false или true

GRAFANA_AUTHPROXY_FIELD_NAME

preferred_username

Имя поля(в jwt токене) из которого берется имя пользователя.

GRAFANA_AUTHPROXY_PROJECTID_FIELD_NAME

Имя поля(в jwt токене) из которого берутся роли по projectId, по данному полю также составляется список projectId.

GRAFANA_BASICAUTH_ENABLED

# Default UI theme ("dark" or "light")

GRAFANA_USER_DEFAULT_THEME

light или dark

Выбор темы по умолчанию

#alerting

GRAFANA_ALERTING_ENABLED

false или true

Включение/отключение алертинга

#explore

GRAFANA_EXPLORE_ENABLED

false или true

Включение/отключение explore

#Параметры для подключения к Abyss (Datasource Indicator)

GRAFANA_DATASOURCE_ABYSS_NAME

Indicator-Abyss

GRAFANA_DATASOURCE_ABYSS_URL

https://:/api/v1/ или http://Ваш_url.ru:29099

URL для подключения к Abyss API или URL Druid в зависимости от параметра WORK_MODE

GRAFANA_DATASOURCE_ABYSS_WORK_MODE

abyss

Режим работы Datasource

GRAFANA_DATASOURCE_ABYSS_PROJECT

unimon

Наименование проекта в Abyss

GRAFANA_DATASOURCE_ABYSS_USER

grafana-external

Пользователь для подключения к Abyss

GRAFANA_DATASOURCE_ABYSS_HEADERNAMESLIST

Authorization

Список заголовков Header которые нужно пробрасывать в запросах от Backend Datasource(через запятую без пробелов)

GRAFANA_DATASOURCE_ABYSS_TLS_CA_ENABLED

false или true

Включите аутентификацию TLS с помощью CA cert

GRAFANA_DATASOURCE_ABYSS_TLS_AUTH_ENABLED

false или true

Включите аутентификацию TLS с помощью клиентского сертификата

GRAFANA_DATASOURCE_ABYSS_TLS_SERVER_NAME

Необязательный. Управляет именем сервера, используемым для проверки общего имени сертификата/альтернативного имени субъекта. По умолчанию используется URL-адрес источника данных

GRAFANA_DATASOURCE_ABYSS_SKIP_TLS_VERIFY

false или true

Определяет, проверяет ли клиент цепочку сертификатов сервера и имя хоста

GRAFANA_DATASOURCE_ABYSS_TLS_CA_CERT

${indicator.ose.deployment.spec.template.spec.containers.indicator.volumeMounts.mountPath.sslcerts}/cacert.pem

Корневой сертификат. Указывать если GRAFANA_DATASOURCE_ABYSS_TLS_CA_ENABLED=true

GRAFANA_DATASOURCE_ABYSS_TLS_CLIENT_CERT

${indicator.ose.deployment.spec.template.spec.containers.indicator.volumeMounts.mountPath.sslcerts}/cert-key.pem

Сертификат клиента TLS для исходящих запросов. Указывать если GRAFANA_DATASOURCE_ABYSS_TLS_AUTH_ENABLED=true

GRAFANA_DATASOURCE_ABYSS_TLS_CLIENT_KEY

${indicator.ose.deployment.spec.template.spec.containers.indicator.volumeMounts.mountPath.sslcerts}/cert.pem

Клиентский ключ TLS для исходящих запросов. Указывать если GRAFANA_DATASOURCE_ABYSS_TLS_AUTH_ENABLED=true

#Имя таблицы в Abyss для работы дашбордов 3 поколения платформы

GRAFANA_DRUID_TABLE_NAME

custodian

Имя таблицы для дашбордов (provisioning) 3 поколения

#Имя таблицы в Abyss для работы дашбордов 4 поколения платформы

GRAFANA_DRUID_TABLE_UNIMON_NAME

unimon_task

Имя таблицы для дашбордов (provisioning) 4 поколения

#Имя таблицы в Abyss для работы дашбордов инфры

GRAFANA_DRUID_TABLE_INFRA

unimon_task

Имя таблицы в Abyss для работы дашбордов инфры

#Имя таблицы в Abyss для метрик самомониторинга Indicator

GRAFANA_DRUID_TABLE_INDICATOR_STATS

unimon_task

Имя таблицы в Abyss для работы дашбордов инфры

#Имя таблицы в Abyss для метрик Единого коллектора

GRAFANA_DRUID_TABLE_COLLECTOR

collector_table_name

Имя таблицы в Abyss для работы дашбордов с метриками Osiris

#Имя датасорса для дашборда Indicator Metrics для метрик самомониторинга Indicator

GRAFANA_DRUID_TABLE_INDICATOR_STATS

unimon_task

Имя таблицы в Abyss для метрик самомониторинга Indicator

#Имя датасорса для дашборда Indicator Metrics для метрик инфраструктурных

GRAFANA_DASH_DATASOURCE_INDA_STATS

Indicator-Abyss

Имя таблицы в Abyss для метрик самомониторинга Indicator

#Имя датасорса для дашборда Indicator Metrics для метрик инфраструктурных

GRAFANA_DASH_DATASOURCE_IFRA

Indicator-Abyss

Имя датасорса для дашборда Indicator Metrics для инфраструктурных метрик

#Имя датасорса для дашборда Единого коллектора

GRAFANA_DASH_DATASOURCE_COLLECTOR

Abyss telemetry-collector

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

GF_PATHS_LOGS

/fluent-bit/etc/logs/

#Ограничение в размере полученных данных датасорсом от поставщика данных

GRAFANA_DATASOURCES_DATA_LIMIT_PER_ONE_QUERY

10000000

При превышении этого значения выходит ошибка #INDA-0008 DS_DATASIZE_OUT_OF_LIMIT. по умолчанию настройка равна 0 — ограничение отсутствует.

#Поддержка старых сертификатов интеграции с SM

GODEBUG=x509ignoreCN

#Параметры для управления статистикой

INDICATOR_DATASOURCE_METRICS_PUBLISH_ENABLED

false или true

Параметр включает публикацию метрик статистики

INDICATOR_DATASOURCE_METRICS_WRITE_IN_TABLE

false или true

INDICATOR_DATASOURCE_METRICS_MAX_QUERY_LIMIT

100

INDICATOR_DATASOURCE_METRICS_KEEP_STATISTICS_DAYS

7

#Параметры аудита

INDICATOR_AUDIT_ENABLED

false или true

Признак включения аудита

INDICATOR_AUDIT_BLOCK_OPERATION

false или true

Блокировка операции при недоступности PV.AUDIT

INDICATOR_AUDIT_SEND_AUDIT_EVENT_BEFORE_OPERATION

false или true

Разрешение отправлять в аудит событие до совершения операции

INDICATOR_AUDIT_USE_CHANGEABLE_PARAMETERS

false или true

Выделение изменяемых параметров в событии аудита в отдельную группу false — proxy audit api v4.1 true — proxy audit api v4.2

INDICATOR_AUDIT_SEND_ONLY_CHANGED_PARAMS

false или true

Если параметр use_changeable_parameters включен, то передаются параметры, которые изменились (экономия трафика). Не передаются только параметры специфические для события, общие передаются всегда.

INDICATOR_AUDIT_WRITE_TO_FILES

false или true

Разрешение писать события аудита в файлы

INDICATOR_AUDIT_SEND_TO_PV_AUDIT

false или true

Разрешение отправлять события аудита в PV.Audit

INDICATOR_AUDIT_PROXY_URL

http://{audit-host}:7070

url audit proxy, по которому идет отправка событий аудита, только http!

INDICATOR_AUDIT_PROXY_MODULE_NAME

indicator

Название модуля при отправке событий в pv audit

INDICATOR_AUDIT_REGISTER_METAMODEL

false или true

Разрешение на регистрацию метамодели при старте подсистемы аудита

INDICATOR_AUDIT_METAMODEL_VERSION

1

Версия метамодели

INDICATOR_AUDIT_EVENT_MODE

speed или reliability

speed — быстрая отправка, в редких случаях при сбоях возможна потеря. Proxy-приложение проверяет сообщение, дополняет технической информацией и отправляет в Kafka. Возвращает ответ клиенту об успешной регистрации сразу же после удачной записи первой реплики события. Алгоритм регистрации в этом режиме может быть изменен в будущем без согласования с потребителями.reliability — надежная отправка. Proxy-приложение проверяет сообщение, дополняет технической информацией и отправляет в kafka. Возвращает ответ клиенту об успешной регистрации только при записи минимального количества реплик события (зависит от серверных настроек Kafka)

INDICATOR_AUDIT_RETRY_CNT

3

Кол-во попыток отправки события в audit proxy

INDICATOR_AUDIT_RETRY_SLEEP

100

Пауза в ms — задержка, при неудачной попытки отправки события в audit proxy

#список полей через запятую, которые не будут передаваться в аудит

INDICATOR_AUDIT_DATASOURCE_BACK_HIDE_FIELDS

headers

#Параметры подключения к Сервис авторизации (PVMSecure)

INDICATOR_PVMSECURE_ENABLED

false или true

включен режим работы с Platform V MonitorAuthorization service

INDICATOR_PVMSECURE_HOST

http://host:port

хост на котором запущен Platform V MonitorAuthorization service

INDICATOR_PVMSECURE_INDICATOR_NAMESPACE

INDICATOR

namespace где находится ресурс индикатор в pvm secure

INDICATOR_PVMSECURE_ADMINS_NAMESPACE

PVM_ADMINS

namespace СуперАдмин

INDICATOR_PVMSECURE_API_VERSION

1

версия api pvm secure

INDICATOR_PVMSECURE_LOGIN

login

имя пользователя под которым индикатор будет ходить в Platform V MonitorAuthorization service

INDICATOR_PVMSECURE_ADMIN_ROLE

INDA_ORG_ADMIN

название permission в Platform V MonitorAuthorization service, при котором будет выдаваться роль администратора организации

INDICATOR_PVMSECURE_EDITOR_ROLE

INDA_ORG_EDITOR

название permission в Platform V MonitorAuthorization service, при котором будет выдаваться роль редактора в организации

INDICATOR_PVMSECURE_VIEWER_ROLE

INDA_ORG_VIEWER

название permission в Platform V MonitorAuthorization service, при котором будет выдаваться роль просмотра в организации

INDICATOR_PVMSECURE_CACHE_EXPIRATION

300

время хранения информации (permission) из Platform V MonitorAuthorization service в indicator

INDICATOR_PVMSECURE_CREATE_USER_ON_MIGRATION

false или true

При включенной настройке перед выдачей прав пользователю идет попытка его создания, ошибка создания пользователя (что он уже создан) игнорируется

#Параметры настроек для Frontend

INDICATOR_FRONTEND_PARAMS_INSTANCE_NAME

PVM

INDICATOR_FRONTEND_PARAMS_HELP_LINK

INDICATOR_FRONTEND_PARAMS_QUESTIONNAIRE_LINK

#index-pvm - новый UI, index - старый grafana UI (только для страницы аутентификации)

INDICATOR_FRONTEND_INDEX_TEMPLATE

index-pvm

#Параметры сервисов Indicator

INDICATOR_SERVICES_REFRESH_TIMEOUT

60

INDICATOR_SWAGGER_STATUS

false

#INDICATOR_MAX_HTTP_BODY_SIZE_FROM_CLIENT - максимальный размер body запроса от внешнего клиента(браузера) в байтах, 0 -> неограничен

INDICATOR_MAX_HTTP_BODY_SIZE_FROM_CLIENT

10485760

Параметр для максимального размера body запроса от внешнего клиента(браузера) в байтах, 0 -> неограничен

##########################

##########################

# SPEC OF DEPLOYMENTS

# Параметры Docker Image Indicator

# Параметры Docker Image Indicator

indicator.ose.deployment.spec.template.spec.image.pull.secret

registry

indicator.ose.deployment.spec.template.spec.containers.indicator.docker-registry

Ваш_docker-registry

indicator.ose.deployment.spec.template.spec.containers.indicator.app-name

ci01976100/ci02696395_indicator/indicator_core/indicator

indicator.ose.deployment.spec.template.spec.containers.indicator.docker-image

url_registry/${indicator.ose.deployment.spec.template.spec.containers.indicator.app-name}

Глобальная переменная.

indicator.ose.deployment.spec.template.spec.containers.indicator.container-port

3000

#Параметры Init контейнера

indicator.ose.deployment.spec.template.spec.containers.indicator-init.app-name

/registry_redhat_io/rhel7:7.6

indicator.ose.deployment.spec.template.spec.containers.indicator-init.docker-image

${dockerRegistry}${indicator.ose.deployment.spec.template.spec.containers.indicator-init.app-name}

Глобальная переменная.

# Создать Secret (conf/openshift/secrets/secret-inda-certs.yaml) с сертификатами которые экспортируются из JKS файла indicator.jks (Common repository ansible/files/ssl/indicator.jks)

# Необходимы для взаимодействия Fluent-bit sidecar с Kafka, PostgreSQL

indicator.ose.secrets.export.certificates.from.jks

true или false

Параметр установки сертификатов из JKS файла

# cert-key.pem для изменения прав на 600(-rw-------) использовать если GRAFANA_DB_SSL_MODE=verify-full

indicator.ose.deployment.spec.template.spec.containers.indicator.change.permission.for.key

true или false

Изменять права для ключа (по умолчанию openshift добавляет права на чтение файлу, приложение может из этого не стартовать)

#Параметры для определения каталога с ssl сертификатами

indicator.ose.deployment.spec.template.spec.containers.indicator.volumeMounts.mountPath.sslcerts

/certificates/security/ssl

# Каталог в который будет помещен только cert-key.pem для изменения прав на 600(-rw-------) использовать если GRAFANA_DB_SSL_MODE=verify-full

indicator.ose.deployment.spec.template.spec.containers.indicator.volumeMounts.mountPath.sslcerts.from.jks

/indicator-certificates

Каталог в который будет помещен только cert-key.pem для изменения прав на 600(-rw-------) использовать если GRAFANA_DB_SSL_MODE=verify-full

# Параметры для пода Indicator который запускается в K8S

indicator.ose.deployment.spec.template.spec.containers.indicator.kubernetes.deploy

false

indicator.ose.deployment.spec.template.spec.containers.indicator.securityContext.runAsUser

472

indicator.ose.deployment.spec.template.spec.containers.indicator-init.securityContext.runAsUser

1001

#Параметры для автоскейлинга

indicator.openshift.autoscaling.max_replicas

6

Макс значение автоскейлинга

indicator.openshift.autoscaling.min_replicas

1

Мин значение автоскейлинга

indicator.openshift.autoscaling.targetCPUUtilizationPercentage

80

Пороговое значение автоскейлинга

#Параметры лимитов и запросов для Indicator Grafana

indicator.ose.deployment.spec.template.spec.containers.indicator.resources.limits.cpu

150m

Лимит cpu

indicator.ose.deployment.spec.template.spec.containers.indicator.resources.limits.memory

600Mi

Лимит memory

indicator.ose.deployment.spec.template.spec.containers.indicator.resources.requests.cpu

100m

Лимит cpu

indicator.ose.deployment.spec.template.spec.containers.indicator.resources.requests.memory

400Mi

Лимит memory

#RollingUpdate

indicator.ose.deployment.spec.strategy.activeDeadlineSeconds

21600

indicator.ose.deployment.spec.strategy.intervalSeconds

1

indicator.ose.deployment.spec.strategy.maxSurge

1

indicator.ose.deployment.spec.strategy.maxUnavailable=

25%

indicator.ose.deployment.spec.strategy.timeoutSeconds

600

indicator.ose.deployment.spec.strategy.updatePeriodSeconds

1

# Параметры Liveness & Readness Prob's

# Liveness

indicator.ose.deployment.spec.template.spec.containers.indicator.liveness.path

/healthz

indicator.ose.deployment.spec.template.spec.containers.indicator.liveness.failureThreshold

3

indicator.ose.deployment.spec.template.spec.containers.indicator.liveness.initialDelaySeconds

30

indicator.ose.deployment.spec.template.spec.containers.indicator.liveness.periodSeconds

5

indicator.ose.deployment.spec.template.spec.containers.indicator.liveness.successThreshold

1

indicator.ose.deployment.spec.template.spec.containers.indicator.liveness.timeoutSeconds

10

# Readness

indicator.ose.deployment.spec.template.spec.containers.indicator.readness.path

/api/health

indicator.ose.deployment.spec.template.spec.containers.indicator.readness.failureThreshold

3

indicator.ose.deployment.spec.template.spec.containers.indicator.readness.initialDelaySeconds

60

indicator.ose.deployment.spec.template.spec.containers.indicator.readness.periodSeconds

5

indicator.ose.deployment.spec.template.spec.containers.indicator.readness.successThreshold

1

indicator.ose.deployment.spec.template.spec.containers.indicator.readness.timeoutSeconds

10

# PodDisruptionBudget

inda.ose.poddisruptionbudget.enabled

false

indicator.ose.poddisruptionbudget.spec.minAvailable

${global.poddisruptionbudget.minAvailable}

##########################

  1. Запустить созданный PIPELINE, указав параметры:

  • SUBSYSTEM: INDICATOR;

  • DISTRIB_VERSION: <выбрать необходимую версию>;

  • Репозиторий\ветка с настройками ФП: branch R1;

  • Установить флаг в параметр: — OPENSHIFT_DEPLOY и Migration_FP_Conf.

    MIGRATION_FP_CONF — загрузит конфиг файл/ы в дистрибутив OPENSHIFT_DEPLOY — развернет Indicator в среде контейнеризации. Если ставить одну галочку MIGRATION_FP_CONF работает наоборот. Из дистрибутива параметры будут переданы в FP репозиторий для дальнейшего их ручной корректировки.

Если нужна интеграция с Istio, необходимо выбрать параметр OPENSHIFT_INGRESS_EGRESS_DEPLOY

Перед установкой нового релиза необходимо удалить Deployment Config из проекта OpenShift.

  1. Дождитесь завершения работы Pipeline CD.

    Если ошибок не возникло, Indicator установлен.

Обновление#

Перед обновлением рекомендуется выполнить архивацию и сохраYfcнение БД (backup) для возможности использования дашбордов предыдущей версии. Обновление Indicator представляет собой установку новой версии релиза через Jenkins. Необходимые настройки сервиса будут осуществлены при установке дистрибутива через Jenkins. Дополнительных настроек не требуется.

При обновлении с версии 2 до версии 3 обратить внимание при заполнении переменной в файле indicator.conf.

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

Например, для переменных сертификата:

Имя параметра

Примеры значений

GRAFANA_DATASOURCE_ABYSS_TLS_CA_CERT

${indicator.ose.deployment.spec.template.spec.containers.indicator.volumeMounts.mountPath.sslcerts}/cacert.pem

GRAFANA_DATASOURCE_ABYSS_TLS_CLIENT_CERT

${indicator.ose.deployment.spec.template.spec.containers.indicator.volumeMounts.mountPath.sslcerts}/cert-key.pem

GRAFANA_DATASOURCE_ABYSS_TLS_CLIENT_KEY

${indicator.ose.deployment.spec.template.spec.containers.indicator.volumeMounts.mountPath.sslcerts}/cert.pem

GRAFANA_DB_CA_CERT_PATH

${indicator.ose.deployment.spec.template.spec.containers.indicator.volumeMounts.mountPath.sslcerts}/cacert.pem

GRAFANA_DB_CLIENT_KEY_PATH

${indicator.ose.deployment.spec.template.spec.containers.indicator.volumeMounts.mountPath.sslcerts}/cert-key.pem

GRAFANA_DB_CLIENT_CERT_PATH

${indicator.ose.deployment.spec.template.spec.containers.indicator.volumeMounts.mountPath.sslcerts}/cert.pem

Также исправить путь к сертификатам fluent-bit. Сертификаты подключаются как том из Secret — kafka-cert.yaml

fluent-bit.ose.configmaps.fluent-bit.data.key.location=/fluent-bit/cert/cert-key.pem fluent-bit.ose.configmaps.fluent-bit.data.certificate.location=/fluent-bit/cert/cert.pem fluent-bit.ose.configmaps.fluent-bit.data.ca.location=/fluent-bit/cert/cacert.pem

Во втором релизе была переменная (в indicator.conf): docker.registry=ваш_registry.ru

В третьем релизе перешли на глобальную переменную: ${dockerRegistry}, а docker.registry была удалена.

В связи с этим нужно будет заменить ${docker.registry} на ${dockerRegistry} в тех переменных, где есть ссылка на переменную.

При изменении параметра ссылки геороута, сервис будет недоступен до завершения обновления.

Перед установкой нового релиза необходимо удалить Deployment Config из проекта OpenShift.

Запуск DDL скриптов (Liquibase)#

Для создания объектов в схеме с помощью liquibase скриптов рекомендуется использовать учетную запись администратор АС.

Начиная с версии 4.1 для обновления используются скрипты LiquiBase.

Для обновления схемы БД до текущей версии выполните следующие действия:

  • Выполнить скрипт запустив PIPELINE_Deploy, установив флаг DB_UPDATE;

DB_UPDATE

Запуск DDL скриптов (Liquibase) в ручном режиме#

Каталог package/db содержит дистрибутивы скриптов миграции базы данных.

Дистрибутив скриптов миграции БД – это zip архив, который содержит:

  • утилиту liquibase в виде jar;

  • jdbc драйвер;

  • файл 0001_changelog.xml – сценарий миграции.

Параметры запуска скриптов миграции описываются в манифесте distrib.yml в секции dbscripts.

Список УЗ, указанных в поле "Список технологических учетных записей", имеет следующие права в схеме (для всех существующих и будущих объектов схемы):

  • USAGE схемы;

  • SELECT, UPDATE, INSERT в таблицы схемы;

  • Все привилегии на Sequence;

  • EXECUTE на Functions;

  • EXECUTE на Routines;

  • USAGE на Types.

В БД создается табличное пространство (значение берется из поля "Имя табличного пространства, создающегося инсталлятором") и пользовательская база данных (значение берется из поля "Имя базы данных, создающейся инсталлятором"), владельцем которых становится групповая роль as_admin. Правом работы с этой ролью обладаю Доменные Учетные Записи, введенные в поле "Список администраторов АС". Для этого необходимо залогиниться в БД под ним и выполнить команду:

  • чтобы накатить набор скриптов, необходимо выполнить команды liquibase, указанный в changelog.xml

java -jar liquibase-sqlplus-3.5.1.jar --liquibaseSchemaName=schema--username=dbusername --password=dbpassword--url=jdbc:postgresql://dburl:dbport/dbname --defaultSchemaName=schema--classpath=postgresql-9.4.1212.jar --driver=org.postgresql.Driver --changeLogFile=changelog.xml update

liquibaseSchemaName – схема, в которой liquibase создает свои 2 таблицы. defaultSchemaName – схема, в которую необходимо накатывать изменения.

Для работы приложения после успешного выполнения liquibase скриптов рекомендуется использовать ТУЗы

Удаление#

Удаление Indicator представляет собой удаление собранного пространства в платформе приложений-контейнеров. Происходит удаление и всех созданных ранее дашбордов и организаций.

Проверка работоспособности#

Предварительно должен быть настроен Data Source См. подробнее раздел Добавление источника данных (Data Sources) в Руководство по системному администрированию

Для проверки работоспособности:

  • Перейти по ссылке из платформы приложений-контейнеров в Indicator (Networking -> Routes -> Location).

  • Войти в Indicator под пользователем администратор с первоначальным паролем (логин и пароль задается в параметрах файла passwords.conf при сборке) и ввести новый пароль.

Посмотреть собранные метрики можно на дашборде Sample Dashboard All Namespaces:

  • Войти в Indicator на дашборд Sample Dashboard All Namespaces.

  • В верхней части дашборда указаны фильтры. Выбрать нужные значения, при этом заполнятся доступные значения для остальных фильтров.

  • На дашборде появятся панели (графики и таблицы) со значениями для каждой выбранной в фильтре метрики.

Откат#

Перед откатом, необходимо восстановить БД для возможности использования дашбордов предыдущей версии. Откат к предыдущей версии Indicator выполняется через Jenkins. Для отката необходимо выполнить установку предыдущей стабильной версии в соответствии с инструкцией.

При откате с версии 4.0 на 3.0, необходимо очистить конфигурации из платформы приложений-контейнеров.

Начиная с версии 4.1 для отката используются скрипты LiquiBase Для того, чтобы был возможен rollback изменений, необходимо тегировать накаты (например, по релизам) и использовать формат xml скриптов для наката.

Чтобы откатить изменения под тегом version1, необходимо выполнить команду liquibase

java -jar liquibase-sqlplus-3.5.1.jar --liquibaseSchemaName=schema--username=dbusername --password=dbpassword--url=jdbc:postgresql://dburl:dbport/dbname --defaultSchemaName=schema--classpath=postgresql-9.4.1212.jar --driver=org.postgresql.Driver --changeLogFile=changelog.xml rollback version1

Где, version1 - это тег версии релиза. Теги можно посмотреть в базе в таблице databasechangelog, в столбце tag.

liquibaseSchemaName – схема, в которой liquibase создает свои 2 таблицы. defaultSchemaName – схема, в которую необходимо накатывать изменения.

Часто встречающиеся проблемы и пути их устранения#

Ошибка

Описание

Bad Gatewayundefined

Данное сообщение возникает при настройке Datasource, информирует о недоступности источника Data source, необходимо проверить корректность ссылки endpoint

Failed to update datasource

Не удалось обновить Data source, данное сообщение возникает при обновлении настройки Datasource, необходимо проверить корректность ссылки endpoint

SMTP not configuerd …

Ошибка возникает при настройке алерта. Администратору необходимо выполнить настройку smtp в конфигурационном файле

Panel plugin not found

Сообщение появляется если на панели не установлен нужный плагин для отображения

Druid — not found

Данное сообщение информирует об отсутствии источника Data source

Error:tsdb.HandleRequest() error could not find executor for datasource type:

Ошибка возникает если 2 экземпляра Platform V Monitor Indicator работают с одной БД, проверить настройки конфигурации БД

"failed to save dashboard" logger=provisioning.dashboard type=file…

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

Ошибка сертификата что отсутствует SAN(Subject Alternate Name)

Сертификаты без SAN уже устаревшая технология, которую не рекомендуется использовать. Сертификат для работы с БД должен быть с SAN

Invalid value: "host.ru": field is immutable","reason":"Invalid"

Ошибка возникает при установке сервиса с настроенным георезервированием. Необходимо удалить существующий rout в платформе контеризации

Чек-лист валидации установки#

  • для проекта в платформе приложений-контейнеров создались объекты приложений на основании файла конфигурации indicator.conf;

  • вход в Indicator осуществляется успешно;

  • на дашборде "Sample Dashboard All Namespaces" проверить наличие метрик и отображение графиков.