Подготовка окружения EDMN#

Получение скриптов развертывания Ansible#

Скачать и разархивировать дистрибутив ./EDMN-scripts-{version}-distrib.zip, содержащий ansible роли и Jenkins скрипты развертывания.

  • При установке с помощью ansible: поместить содержимое директории Ansible на сервер, с которого будет производиться установка.

  • При установке через Jenkins: поместить директории Ansible и Pipeline в корень Git-репозитория.

Общие пререквизиты установки#

  1. Установить пакеты или проверить, что пакеты установлены: Java, Unzip, Ansible (необходимо установить на сервер, с которого будет производиться установка).

  2. Для работы компонента EDMN возможно использование БД (Platform V Pangolin SE). База данных с созданной схемой edmn. Пользователи и пароли от БД с правами на чтение и запись в эту схему необходимо уточнить у администратора БД.

  3. Для работы компонента EDMN необходимо установить Prometheus, InfluxDB или Victoria Metrics, данное ПО не поставляется в дистрибутиве.

  4. Создать для каждого компонента отдельного пользователя и дать им права на чтение и запись соответствующих директорий установки/логов/данных.

  5. Создать системные и пользовательские сервисы обслуживания согласно подразделу «Создание системных и пользовательских сервисов обслуживания».

  6. Создать JKS хранилище с сертификатом, подписанным УЦ, доверенным для всех клиентов.

  7. Убедиться, что получены все дистрибутивы компонента, указанные в разделе Состав дистрибутива и информация о дистрибутиве EDMN.

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

Для автоматического перезапуска компонентов EDMN в случае перезагрузки сервера и корректной работы скриптов Ansible необходимо создать системные или пользовательские сервисы обслуживания.

Для создания системных сервисов обслуживания:

Необходимо выдать права пользователям на запуск, остановку и редактирование сервиса. Для этого с помощью команды sudo visudo /etc/sudoers под пользователем root добавить строки в файл /etc/sudoers:

Для всех компонентов EDMN:

   monitoring ALL= NOPASSWD: /bin/systemctl start monitoring
   monitoring ALL= NOPASSWD: /bin/systemctl stop monitoring
   monitoring ALL= NOPASSWD: /bin/systemctl status monitoring
   monitoring ALL= NOPASSWD: /bin/systemctl restart monitoring
   monitoring ALL= NOPASSWD: /bin/systemctl enable monitoring
   monitoring ALL= NOPASSWD: /bin/systemctl disable monitoring
   monitoring ALL= NOPASSWD: /bin/systemctl daemon-reload
   monitoring ALL= NOPASSWD: /bin/sudoedit /etc/systemd/system/monitoring.service

Для etcd:

   etcd ALL= NOPASSWD: /bin/systemctl start etcd
   etcd ALL= NOPASSWD: /bin/systemctl stop etcd
   etcd ALL= NOPASSWD: /bin/systemctl status etcd
   etcd ALL= NOPASSWD: /bin/systemctl restart etcd
   etcd ALL= NOPASSWD: /bin/systemctl enable etcd
   etcd ALL= NOPASSWD: /bin/systemctl disable etcd
   etcd ALL= NOPASSWD: /bin/systemctl daemon-reload
   etcd ALL= NOPASSWD: /bin/sudoedit /etc/systemd/system/etcd.service

Для InfluxDB:

   influx ALL= NOPASSWD: /bin/systemctl start influxdb
   influx ALL= NOPASSWD: /bin/systemctl stop influxdb
   influx ALL= NOPASSWD: /bin/systemctl status influxdb
   influx ALL= NOPASSWD: /bin/systemctl restart influxdb
   influx ALL= NOPASSWD: /bin/systemctl enable influxdb
   influx ALL= NOPASSWD: /bin/systemctl disable influxdb
   influx ALL= NOPASSWD: /bin/systemctl daemon-reload
   influx ALL= NOPASSWD: /bin/sudoedit /etc/systemd/system/influxdb.service

Для collector:

   collector ALL= NOPASSWD: /bin/systemctl start collector
   collector ALL= NOPASSWD: /bin/systemctl stop collector
   collector ALL= NOPASSWD: /bin/systemctl status collector
   collector ALL= NOPASSWD: /bin/systemctl restart collector
   collector ALL= NOPASSWD: /bin/systemctl enable collector
   collector ALL= NOPASSWD: /bin/systemctl disable collector
   collector ALL= NOPASSWD: /bin/systemctl daemon-reload
   collector ALL= NOPASSWD: /bin/sudoedit /etc/systemd/system/collector.service

Для Prometheus:

   prometheus ALL= NOPASSWD: /bin/systemctl start prometheus
   prometheus ALL= NOPASSWD: /bin/systemctl stop prometheus
   prometheus ALL= NOPASSWD: /bin/systemctl status prometheus
   prometheus ALL= NOPASSWD: /bin/systemctl restart prometheus
   prometheus ALL= NOPASSWD: /bin/systemctl enable prometheus
   prometheus ALL= NOPASSWD: /bin/systemctl disable prometheus
   prometheus ALL= NOPASSWD: /bin/systemctl daemon-reload
   prometheus ALL= NOPASSWD: /bin/sudoedit /etc/systemd/system/prometheus.service

Для создания пользовательских сервисов обслуживания:

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

Для этого под пользователем root:

  1. Дать возможность пользовательским сервисам работать как долговременные, выполнив команды:

systemctl restart systemd-logind
loginctl enable-linger monitoring
loginctl enable-linger etcd
loginctl enable-linger influx
loginctl enable-linger collector
loginctl enable-linger prometheus

Создание системных и пользовательских сервисов обслуживания с помощью Jenkins Job#

  1. Необходимо заполнить настройки inventory из раздела из подраздела «Настройка inventory».

  2. Выбрать соответствующий playbook в Jenkins Job в параметре playbook:

    • collector_system_service.yml — создание системного сервиса для коллекторов;

    • collector_user_service.yml — создание пользовательского сервиса для коллекторов;

    • etcd_system_service.yml — создание системного сервиса обслуживания etcd;

    • etcd_user_service.yml — создание пользовательского сервиса обслуживания etcd;

    • influxdb_system_service.yml — создание системного сервиса обслуживания InfluxDB;

    • influxdb_user_service.yml — создание пользовательского сервиса обслуживания InfluxDB;

    • monitoring_system_service.yml — создание системного сервиса для мониторинга;

    • monitoring_user_service.yml — создание пользовательского сервиса для мониторинга;

    • prometheus_system_service.yml — создание системного сервиса для Prometheus;

    • prometheus_user_service.yml — создание пользовательского сервиса для Prometheus.

  3. В параметре only_on_host выбрать необходимый сервер.

  4. Запустить работу Jenkins Job.

  5. Проверить статус выполнения Jenkins Job. Для успешной работы должно быть — «Finished: SUCCESS».

Создание системного сервиса с помощью ansible#

Под пользователем monitoring выполнить действия:

  1. Создать файл monitoring.service:

sudo /bin/sudoedit /etc/systemd/system/monitoring.service`

  1. Заполнить созданный файл:

[Unit]
Description=Monitoring UI
After=local-fs.target network.service

[Service]
WorkingDirectory={{ monitoring.installdir }}
Type=simple
User=monitoring
ExecStart={{ monitoring.installdir }}/bin/edmn run
StandardOutput=null
Restart=always
RestartSec=30s

[Install]
WantedBy=default.target

, где monitoring.installdir — абсолютный путь до директории установки мониторинга, зависит от значения параметра installdir из подраздела «Настройка inventory».

  1. Для инициализации сервиса выполнить команду:

sudo systemctl daemon-reload

Создание пользовательского сервиса обслуживания EDMN с помощью ansible#

Под пользователем monitoring выполнить действия:

  1. Создать файл сервиса ~/.config/systemd/user/monitoring.service со следующим содержимым:

[Unit]
Description=Monitoring UI

[Service]
WorkingDirectory={{ monitoring.installdir }}
Type=simple
ExecStart={{ monitoring.installdir }}/bin/edmn run
StandardOutput=null
Restart=always
RestartSec=30s

[Install]
WantedBy=default.target

, где monitoring.installdir — абсолютный путь до директории установки мониторинга, зависит от значения параметра installdir из подраздела «Настройка inventory».

  1. Для инициализации сервиса выполнить команду:

sudo systemctl --user daemon-reload

Создание системного сервиса обслуживания etcd с помощью ansible#

Под пользователем etcd выполнить действия:

  1. Создать файл etcd.service:

sudo /bin/sudoedit /etc/systemd/system/etcd.service
  1. Заполнить созданный файл:

[Unit]
Description=etcd key-value store
After=local-fs.target network.service
Wants=local-fs.target network.service

[Service]
WorkingDirectory={{ etcd.installdir }}
Type=simple
User=etcd
ExecStart={{ etcd.installdir }}/etcd-run.sh
Restart=always
RestartSec=30s
LimitNOFILE=40000

[Install]
WantedBy=default.target

, где etcd.installdir — абсолютный путь до директории установки etcd, зависящий от значения параметра installdir в блоке etcd из подраздела «Настройка inventory».

  1. Для инициализации сервиса выполнить команду:

sudo systemctl daemon-reload

Создание пользовательского сервиса обслуживания etcd с помощью ansible#

Под пользователем etcd выполнить действия:

  1. Создать файл сервиса ~/.config/systemd/user/etcd.service со следующим содержимым:

[Unit]
Description=etcd key-value store

[Service]
WorkingDirectory={{ etcd.installdir }}
Type=simple
ExecStart={{ etcd.installdir }}/etcd-run.sh
Restart=always
RestartSec=30s

[Install]
WantedBy=default.target

, где etcd.installdir — абсолютный путь до директории установки etcd, зависящий от значения параметра installdir в блоке etcd из подраздела «Настройка inventory».

  1. Для инициализации сервиса выполнить команду:

sudo systemctl --user daemon-reload

Создание системного сервиса обслуживания InfluxDB с помощью ansible#

Под пользователем influx выполнить действия:

  1. Создать файл influxdb.service:

sudo /bin/sudoedit /etc/systemd/system/influxdb.service
  1. Заполнить созданный файл:

[Unit]
Description=InfluxDB
After=local-fs.target network.service

[Service]
WorkingDirectory={{ influxdb.installdir }}
Type=simple
User=influx
ExecStart={{ influxdb.installdir }}/usr/bin/influxd -config {{ influxdb.installdir }}/etc/influxdb/influxdb.conf
Restart=always
RestartSec=30s

[Install]
WantedBy=default.target

, где influxdb.installdir — абсолютный путь до директории установки InfluxDB, зависящий от значения параметра installdir в блоке influxdb из подраздела «Настройка inventory».

  1. Для инициализации сервиса выполнить команду:

sudo systemctl daemon-reload

Создание пользовательского сервиса обслуживания InfluxDB с помощью ansible#

Под пользователем influx выполнить действия:

  1. Создать файл сервиса ~/.config/systemd/user/influxdb.service со следующим содержимым:

[Unit]
Description=InfluxDB

[Service]
WorkingDirectory={{ influxdb.installdir }}
Type=simple
ExecStart={{ influxdb.installdir }}/usr/bin/influxd -config {{ influxdb.installdir }}/etc/influxdb/influxdb.conf
Restart=always
RestartSec=30s

[Install]
WantedBy=default.target

, где influxdb.installdir — абсолютный путь до директории установки InfluxDB, зависящий от значения параметра installdir в блоке influxdb из подраздела «Настройка inventory».

  1. Для инициализации сервиса выполнить команду:

sudo systemctl --user daemon-reload

Создание системного сервиса обслуживания collector с помощью ansible#

Под пользователем collector выполнить действия:

  1. Создать файл collector.service командой:

sudo /bin/sudoedit /etc/systemd/system/collector.service
  1. Заполнить созданный файл:

[Unit]
Description=Service for {{ collector_item }}
After=local-fs.target network.service

[Service]
WorkingDirectory={{ collector.installdir }}
Type=simple
User=collector
ExecStart={{ collector.installdir }}/bin/collector run -c ./config/{{ collector.list[item].application | d('collector.conf') }} -m ./config/{{ collector.list[item].config }} -d {{ collector.installdir }}/config/{{ item }}.properties -l {{ collector.installdir }}/config/logback-{{ item }}.xml
StandardOutput=null
Restart=on-failure
RestartSec=30

[Install]
WantedBy=default.target

, где collector.installdir — абсолютный путь до директории установки collector, зависящий от значения параметра installdir в блоке collector из подраздела «Настройка inventory».

  1. Для инициализации сервиса выполнить команду:

sudo systemctl daemon-reload

Создание пользовательского сервиса обслуживания collector с помощью ansible#

Под пользователем collector выполнить действия:

  1. Создать файл сервиса ~/.config/systemd/user/collector.service со следующим содержимым:

[Unit]
Description=Service for collector

[Service]
WorkingDirectory={{ collector.installdir }}
Type=simple
ExecStart={{ collector.installdir }}/bin/collector run -c ./config/{{ collector.list[item].application | d('collector.conf') }} -m ./config/{{ collector.list[item].config }} -d {{ collector.installdir }}/config/{{ item }}.properties -l {{ collector.installdir }}/config/logback-{{ item }}.xml
StandardOutput=null
Restart=on-failure
RestartSec=30

[Install]
WantedBy=default.target

, где collector.installdir — абсолютный путь до директории установки collector, зависящий от значения параметра installdir в блоке collector из подраздела «Настройка inventory».

  1. Для инициализации сервиса выполнить команду:

sudo systemctl --user daemon-reload

Создание системного сервиса обслуживания Prometheus с помощью ansible#

Под пользователем prometheus выполнить действия:

  1. Создать файл prometheus.service:

sudo /bin/sudoedit /etc/systemd/system/prometheus.service
  1. Будет создан файл prometheus.service. Необходимо наполнить его следующим содержимым:

[Unit]
Description=prometheus service
After=local-fs.target network.service

[Service]
WorkingDirectory={{ prometheus.installdir }}
Type=simple
User=prometheus
ExecStart={{ prometheus.installdir }}/prometheus-run.sh

[Install]
WantedBy=default.target

, где prometheus.installdir — абсолютный путь до директории установки Prometheus, зависящий от значения параметра installdir в блоке prometheus из подраздела «Настройка inventory».

  1. Для инициализации сервиса выполнить команду:

sudo systemctl daemon-reload

Создание пользовательского сервиса обслуживания Prometheus с помощью ansible#

Под пользователем prometheus выполнить действия:

  1. Создать файл сервиса ~/.config/systemd/user/prometheus.service со следующим содержимым:

[Unit]
Description=prometheus service

[Service]
WorkingDirectory={{ prometheus.installdir }}
Type=simple
ExecStart={{ prometheus.installdir }}/prometheus-run.sh

[Install]
WantedBy=default.target

, где prometheus.installdir — абсолютный путь до директории установки Prometheus, зависящий от значения параметра installdir в блоке prometheus из подраздела «Настройка inventory».

  1. Для инициализации сервиса выполнить команду:

sudo systemctl --user daemon-reload

Настройка inventory#

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

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

Для задания константных значений необходимо:

  • создать файл preferred_ansible_vars.yml в директории Pipeline, которая размещается в скриптах установки;

  • указать в файле preferred_ansible_vars.yml необходимые параметры с константными значениями. Параметры необходимо указывать в том же формате, как и в файле vars.yml в inventories (подраздел «Пример заполненного файла vars.yml»).

Логика приоритетов:

  • При наличии файла preferred_ansible_vars.yml в директории Pipeline значения, указанные в нем, применяются как самые приоритетные и не могут быть изменены через inventories;

  • При наличии файла preferred_ansible_vars.yml в директории Pipeline и попытке изменить значения параметров в файле vars.yml новые заданные параметры не применятся – остается приоритет у данных из файла preffered_ansible_vars.yml;

  • При отсутствии файла preferred_ansible_vars.yml все параметры применяются из файла vars.yml.

Заполнение файлов inventory#

  1. Создать новую директорию в папке Ansible/inventories Git-репозитория, задать название директории и заполнить по примеру директории EXAMPLE.

  2. В созданной папке должны находиться следующие элементы:

group_vars/all — директория, в которой лежат файлы vars.yml и vault.yml;

ssl — директория с сертификатами;

inventory — файл, в котором прописываются группы серверов, на которых будут выполняться установка;

Структура: custom_files/<role_name>/\*\* , где:

  • role_name – имя ansible роли;

  • \*\* – копируемые в директорию установки файлы.

Пример структуры репозитория:

├── ...
├── files
├── inventories
│   ├── EXAMPLE
│   │   ├── group_vars
│   │   │   └── all
│   │   │       ├── vars.yml
│   │   │       └── vault.yml
│   │   ├──ssl
│   │   │   ├── influx.jks
│   │   │   ├── kafka-dev-cluster-1.jks
│   │   │   ├── mon.jks
│   │   │   ├── prometheus.jks
│   │   │   ├── prometheus.keystore.jks
│   │   │   ├── prometheus.truststore.jks
│   │   │   ├── server.keystore.jks
│   │   │   ├── server.truststore.jks
│   │   │   ├── vault.jks
│   │   │   └── vault.truststore.pem
│   │   │
│   │   └── inventory
│   │
│   ├── [новая директория]
│   │   ├── group_vars
│   │   │   └── all
│   │   │       ├── vars.yml
│   │   │       └── vault.yml
│   │   ├──ssl
│   │   │   ├── influx.jks
│   │   │   ├── kafka-dev-cluster-1.jks
│   │   │   ├── mon.jks
│   │   │   ├── prometheus.jks
│   │   │   ├── prometheus.keystore.jks
│   │   │   ├── prometheus.truststore.jks
│   │   │   ├── server.keystore.jks
│   │   │   ├── server.truststore.jks
│   │   │   ├── vault.jks
│   │   │   └── vault.truststore.pem
│   │   │
│   │   └── inventory
│   │
├── roles
│   │   ...
├── ansible.cfg
├── collector.yml
├── ***.yml
├──...
  1. В файл inventory добавить список серверов, на которые будет производиться установка.

Описание параметров и возможных значений:

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

Параметры блока

Описание

Возможное значение

inventory

-

-

Файл настроек host подключения

monitoring

Список host monitoring

Например:url.ru

collector

Список host collector

Например:url.ru

influxdb

Список host InfluxDB

Например:url.ru

etcd

Список host etcd

Например:url.ru

prometheus

Список host Prometheus

Например:url.ru

Пример:

[monitoring]
hostname1
hostname2

[collector]
hostname1
hostname2

[influxdb]
hostname1
hostname2

[etcd]
hostname1
hostname2

[prometheus]
hostname1
hostname2
  1. Перейти к заполнению файла vars.yml в директории group_vars/all. Заполнять по аналогии с файлом vars.yml в папке EXAMPLEи подразделом «Пример заполненного файла vars.yml».

Весь список настраиваемых параметров с комментариями представлен в файлах ./roles/*{название компонента}/defaults/main.yml.

inventories/<название вашей директории>/group_vars/all/vars.yml – указываются настройки параметров для установки.

  1. Перейти к заполнению файла vault.yml в директории group_vars/all.

При заполнении файла vars.yml необходимо зашифровать указываемые в нем пароли с помощью механизма ansible-vault и занести их в файл vault.yml. Подробнее в разделе Использование утилиты «ansible-vault» для шифрования паролей.

  1. Подложить используемые сертификаты в директорию ssl. Создание хранилищ с сертификатами выполнять в соответствии с разделом Управление ключами и сертификатами.

Создание Jenkins Job для автоматической установки#

Данный подраздел подготовки окружения относится только к разделу Установка EDMN, подраздел «Автоматическая установка с использованием Jenkins».

Настройка credentials для Ansible-Vault#

  1. Создать файл с паролем, с помощью которого при автоматической установке будут расшифровываться пароли, зашифрованные через ansible-vault в параметрах vars.yml выбранного inventory.

NewFile

  1. Зайти в Jenkins в свой проект, перейти во вкладку Credentials, далее выбрать свой проект:

Jenkins

  1. Откроется страница, где необходимо выбрать «Global credentials (unrestricted)»:

Jenkins

  1. Перейти во вкладку Add Credentials:

Jenkins

  1. После перехода будут доступны поля для заполнения:

  • «Kind» — в выпадающем списке выбрать параметр Secret file;

  • «File» — загрузить созданный файл с паролем;

  • «ID» — указать наименование, которое необходимо придумать самостоятельно (данный ID необходимо будет указать в job monitoring_custom в параметре vault_cred);

  • «Description» — необязательное поле, в котором можно добавить описание.

  1. Нажать кнопку «Create» для создания Credentials для Vault:

Jenkins

Создание Jenkins Job для установки EDMN#

  1. Содержимое дистрибутива ./EDMN-scripts-{version}-distrib.zip поместить в git-репозиторий.

  2. Выбрать New Item для создания нового Jenkins Job:

NewItem

2.1. Добавить название создаваемого Jenkins Job. Нельзя использовать в названии русские буквы, спецсимволы.

2.2. Выбрать Pipeline и нажать кнопку «ОК»:

NewItem_create

2.3. Заполнить поля на появившейся странице в блоке Pipeline:

  • Изменить значение параметра «Definition» на Pipeline script from SCM;

  • Изменить значение параметра «SCM» на Git;

  • Заполнить параметр «Repository URL» — указать путь до своего Git-репозитория;

  • Заполнить параметр «Credentials» — указать сredentials с правами на чтение;

  • В параметре «Branches to build» выбрать ветку, в которой находятся скрипты;

  • В параметре «Script Path» указать путь до groovy-скрипта Pipeline/SYN_custom.groovy;

  • Убедиться, что НЕ стоит галочка Lightweight checkout.

Пример заполнения параметров:

Pipeline_create

  1. Сохранить созданный Jenkins Pipeline.

  2. На появившейся странице в боковом меню выбрать «Собрать сейчас» — запустится первоначальная сборка:

Now

  1. После запуска сборки необходимо обновить страницу.

  2. Выбрать в боковом меню «Собрать с параметрами»:

Params

  1. Заполнить следующие параметры на появившейся странице:

  • jenkins_slave — имя агента Jenkins для сборки;

  • ansible_version — название Jenkins Tool, отвечающей за используемую версию Ansible.

В случае, если используется обновленная версия скриптов, функциональность пункта 7 может быть выполнена автоматически и пункт 7 может отсутствовать.

  1. Нажать кнопку «Собрать».

  2. Обновить страницу и после окончания работы Jenkins Job снова нажать «Собрать с параметрами».

  3. Появится страница со всем списком настраиваемых параметров, отвечающих за установку EDMN:

  • job_config_renew — отвечает за обновление Jenkins Job. При установке приложения должен быть выключен (false). Для обновления текущих параметров и сохранения значений по умолчанию должен быть включен (true);

  • inventory — имя inventory для установки;

  • nexusUrl — ссылка на дистрибутив. Для скачивания дистрибутива используется параметр nexus_user_cred;

  • kupolUrl — ссылка на АС Купол;

  • emailto — список адресов электронной почты для отправки результатов работы установочных скриптов (письмо исполнителю упадет автоматически);

  • playbook — необходимый сценарий установки:

    • collector.yml — устанавливает коллекторы;

    • db — устанавливает БД;

    • etcd.yml — устанавливает etcd;

    • influxdb.yml — устанавливает InfluxDB;

    • monitoring.yml — устанавливает monitoring;

    • prometheus.yml — устанавливает Prometheus;

    • synapse_monitoring.yml — устанавливает все компоненты EDMN (в файле inventory необходимо указать список серверов компонента, который будет устанавливаться; если список серверов пустой — установка компонента производиться не будет);

    • <сервис>_system_service.yml — устанавливает system service по указанному сервису;

    • <сервис>_user_service.yml — устанавливает user service по указанному сервису.

Первая установка приложения выполняется без выбора тегов — это позволит полностью выполниться playbook (полная начальная установка). При необходимости частичной установки – можно выбрать определенные теги.

Для playbook collector.yml:

  • run_only — работа с конкретным коллектором;

  • collector_already_installed — добавление нового коллектора при наличии установленных;

  • backup_create — создание бэкап;

  • backup_remove — удаление бэкап;

  • backup_restore — восстановление из бэкап;

  • custom_config — генерация кастомных файлов для коллекторов;

  • distribute — распаковка дистрибутива;

  • install — запуск блока установки;

  • restart — перезапуск сервиса;

  • start — запуск сервиса;

  • stop — остановка сервиса;

  • unistall — удаление сервиса.

Для playbook db.yml тегов нет.

Для playbook etcd.yml:

  • access_control — создание/изменение ролевой модели;

  • backup_create — создание backup;

  • backup_remove — удаление backup;

  • backup_restore — восстановление из backup;

  • distribute — распаковка дистрибутива;

  • etcd_settings — обновление домена и вывод настроек;

  • install — запуск блока установки;

  • restart — перезапуск сервиса;

  • start — запуск сервиса;

  • status — статус сервиса;

  • stop — остановка сервиса;

  • template — генерация шаблонов из /roles/etcd/templates;

  • unistall — удаление сервиса.

Для playbook influxdb.yml:

  • backup_create — создание backup;

  • backup_remove — удаление backup;

  • backup_restore — восстановление из backup;

  • change_config — генерация конфигурационных файлов;

  • change_retention — обновление срока хранения метрик;

  • distribute — распаковка дистрибутива;

  • initial_setup — проверка существующей БД, в случае отсутствия создается БД;

  • install — запуск блока установки;

  • restart — перезапуск сервиса;

  • start — запуск сервиса;

  • status — статус сервиса;

  • stop — остановка сервиса;

  • unistall — удаление сервиса.

Для playbook monitoring.yml:

  • backup_create — создание backup;

  • backup_remove — удаление backup;

  • backup_restore — восстановление из backup;

  • change_config — генерация конфигурационных файлов;

  • distribute — распаковка дистрибутива;

  • install — запуск блока установки;

  • restart — перезапуск сервиса;

  • start — запуск сервиса;

  • stop — остановка сервиса;

  • unistall — удаление сервиса.

Для playbook prometheus.yml:

  • backup_create — создание backup;

  • backup_remove — удаление backup;

  • backup_restore — восстановление из backup;

  • change_config— генерация конфигурационных файлов;

  • distribute — распаковка дистрибутива;

  • install — запуск блока установки;

  • restart - перезапуск сервиса;

  • start — запуск сервиса;

  • stop — остановка сервиса;

  • uninstall — удаление сервиса.

Для playbook synapse_monitoring.yml:

  • backup_create — создание backup;

  • backup_remove — удаление backup;

  • backup_restore — восстановление из backup;

  • change_config — генерация конфигурационных файлов;

  • custom_config — генерация кастомных файлов для коллекторов;

  • distribute — распаковка дистрибутива;

  • install — запуск блока установки;

  • restart — перезапуск сервиса;

  • start — запуск сервиса;

  • stop — остановка сервиса;

  • unistall — удаление сервиса.

  • standType — тип стенда для запроса к АС Купол;

  • usedCollectors — список доступных коллекторов при выборе тега run_only;

  • install_all_hosts — отвечает за выполнение playbook на всех серверах из выбранного inventory;

  • only_on_host – отвечает за выполнение playbooks на выбранных серверах;

  • jenkins_slave — выбор Jenkins Slave;

  • jdk_tool — указание Jenkins Tool с нужной версией JDK;

  • ansible_branch — ветка скриптов развертывания;

  • ansible_version — версия ansible, где указывается название Jenkins Tool, отвечающее за используемую версию Ansible;

  • nexus_user_cred — Jenkins username with password credential ID для выкачивания дистрибутива из Nexus. При задании secman_url – полный путь в HashiCorp Vault до имени пользователя и пароля. Например: {Jenkins *Vault App Role credential* ID для получения секретов из HashiCorp Vault}|path/to/nexus:{user},{password}.

  • vault_cred — Jenkins secret file credential ID со строкой для расшифровки паролей (ansible vault) (можно несколько через запятую). При задании secman_url – полный путь в HashiCorp Vault до пароля. Например: {Jenkins *Vault App Role credential* ID_1}|/path/to/vault:{password_1}, {Jenkins *Vault App Role credential* ID_2}|/path/to/vault:{password_2} В качестве пароля можно использовать не строку, а файл в base64 формате с ключом секрета, заканчивающимся на Base64. Например, myVaultBase64.

  • server_ssh_cred – Jenkins ssh key Credential ID для подключения к серверам, на которые устанавливается компонент. При задании параметра secman_url — указать полный путь в Hashicorp Vault до секрета. Например: {Jenkins *Vault App Role credential* ID для получения секретов из Hashicorp Vault}|/.../KV/ssh:{user},{key},{passphrase} В качестве ключа можно использовать не строку, а файл в base64 формате с ключом секрета, заканчивающимся на Base64. Например, myPrivateKeyBase64.

  • secman_url — URL для подключения к HashiCorp Vault;

  • ssl_verify — проверяем, являются ли сертификаты HashiCorp Vault/Nexus доверенными;

  • ssl_verify_kupol — проверяем, являются ли сертификаты АС Купол доверенными;

  • second_hand_approve — подтверждение запуска другим администратором (контроль «второй рукой»). Двухэтапное подтверждение запуска, требующее действия другого администратора для запуска задания Jenkins Job. При активации этой опции одному администратору будет недоступна возможность запуска задания Jenkins Job без подтверждения со стороны другого администратора;

  • inventories_repo — репозиторий с inventory. Данный пункт применим, если inventory были созданы в другом репозитории, отличном от того, где расположены скрипты;

  • inventories_branch — ветка репозитория. Данный пункт применим, если inventory были созданы в другом репозитории, отличном от того, где расположены скрипты;

  • inventories_path — путь до inventories от корня репозитория;

  • cleanws — очистка рабочей директории Jenkins;

  • jobTimeout — время ожидания завершения Jenkins job (минут).

    Для сохранения значений всех заполненных параметров убедиться, что включен параметр job_config_renew, и нажать кнопку «Собрать».

Процесс установки EDMN описан в разделе Установка EDMN, подраздел «Автоматическая установка с использованием Jenkins».

Пример заполненного файла vars.yml#

Базовый файл настроек#

Базовый файл — это файл Ansible/inventories/[ваша директория]/group_vars/all/vars.yml, содержащий минимум настроек для корректной установки приложения.

Пример заполненного базового файла vars.yml:

ansible_password: "{{ ansible_password }}"

ansible_python_interpreter: /usr/bin/python3

monitoring:
  keystore_path: ssl/monitoring.jks # Сертификат для https
  keystore_password: __PLACEHOLDER__ # пароль от keyStore
  authentication:
    type: basic # Поддерживаемые типы: ldap, basic
    userList: # список администраторов
      - login: user # Имя пользователя
        password: __PLACEHOLDER__  # Обязательное поле при аутентификации типа basic. При его отсутствии сгенерится пустой пароль
  time_series_connects: # Блок подключения к БД
    maxTPS: 100 # Максимальная пропускная способность метрик/секунда
    shards: # Источники метрик
      - code: Prometheus # Название источника: Influx,Prometheus
        enabled: true # Флаг использования подключения
        minUpdateTime: 5 # Время получения приоритетных метрик, указывается в секундах
        maxUpdateTime: 30 # Время получения всех метрик, указывается в секундах
        connections: # Настройки подключений
          - type: prometheus # Тип TimeSeries БД influx или prometheus
            enabled: true # Флаг использования подключения
            host: prometheus_host # Сервер prometheus
            port: prometheus_port # порт prometheus
            username: some_user  # Пользователь prometheus
            secret: some_secret  # Пароль для Пользователя prometheus
            ssl: # Блок настроек ssl
              protocol: TLSv1.3 # Используемый протокол
              keystore_path: ssl/prometheus.keystore.jks # Путь до сертификата
              truststore_path: ssl/prometheus.truststore.jks # Путь до сертификата
              truststore_password: _PLACEHOLDER_ # Пароль для сертификата
              keystore_password: _PLACEHOLDER_ # Пароль для сертификата
              key_password: _PLACEHOLDER_  # Пароль для сертификата
              hostname_verify: false # Проверка веритификации сертификата с сервером
  audit: # блок настроек аудита
    types: tsAudit,console # Типы аудита
    url: https://audit.ru # Адрес аудита
    ssl: # Блок настроек ssl
      protocol: TLSv1.3 # Используемый протокол ssl
      keystore: ssl/server.keystore.jks # Путь до сертификата
      keystore_password: _PLACEHOLDER_  # Пароль для сертификата
      truststore: ssl/server.truststore.jks # Путь до сертификата
      truststore_password: _PLACEHOLDER_  # Пароль для сертификата

collector:
  # collector http-server
  serverKeystorePath: ssl/server.jks # Обязательно
  serverTruststorePath: ssl/server.jks
  serverKeystorePass: _PLACEHOLDER_ # Обязательно
  serverTruststorePass: _PLACEHOLDER_
  serverKeyPass: _PLACEHOLDER_

  # списки хостов-портов вида "host1:port,host2:port, ..."
  artemisBootstrapJmx: "host1:port,host2:port" # список jmx хостов-портов артемиса

  list:
    artemis:
      type: artemis
      config: artemis-metrics.conf # имя файла с метриками, идет в дистрибутиве
      application: artemis-application.conf
      serverSslPort: 8080
      serverPort: 8081

prometheus:
  keystore_password: _PLACEHOLDER_ # пароль от keyStore
  truststore_password: _PLACEHOLDER_ # пароль от trustStore

  scrape_username: 'prometheus' # имя пользователя для получения метрик
  scrape_password: _PLACEHOLDER_ # пароль для получения метрик

Расширенный файл настроек#

Расширенный файл — файлAnsible/roles/[ваша директория]/defaults/main.yml. Представляет собой пример всех изменяемых настроек со значениями «по умолчанию». Любую из указанных настроек можно перенести в свой vars.yml для переопределения ее значения.

Данный файл подразумевает включение всех блоков для работы с EDMN.

Пример расширенного файла настроек vars.yml:

tmp_dir: /tmp/installer # путь до временной директории на конечных серверах
wait_for_start: 120 # время (в секундах) на корректный старт приложения (падает с ошибкой при превышении)
check_correct_start: true # проверка корректности запуска приложения по наличию строки в логе
ansible_no_log: false # отключить вывод паролей в лог/output
password_encoder_cli_path: encryptor-cli-2.0.0-fatjar.jar # путь до утилиты для шифрования паролей (helper/encode_passwords.yml)

monitoring:
  distr: monitoring-boot.zip # Устанавливаемый дистрибутив
  installdir: /opt/monitoring # Абсолютный путь на конечном сервере до приложения
  datadir: /opt/monitoring_data # Абсолютный путь на конечном сервере до директории с данными
  logdir: /opt/monitoring/logs # Абсолютный путь до дирeктории с логами
  # backup_installdir_to: /path/to/backup # Директория для сохранения бэкап installdir
  backup_not_older_than: 1d # Срок актуальности резервной копии. По умолчанию 1 день. (Может быть в часах 1h 2h 3h и тд или в днях 1d 2d 3d и тд)
  service_name: monitoring # Именование сервиса, если есть
  logname: monitoring # Наименование файла логов
  cleanLog: false # Очистка logdir при установке
  cleanData: false # Очистка datadir при установке
  loglevel: INFO # Уровень вывода логов
  filelogmode: 600 # Права для файла логов emc
  auditlogmode: 600 # Права для файла логов аудита
  #  log_total_size_cap: 1GB # Максимальный размер логов
  logDebug: false # Режим отладки логов
  logbackKafkaAppender: # Конфигурация отправки логов в Kafka
    enabled: false # Включение механизма отправки логов в Kafka через logback
    #    deliveryStrategyClass: "com.github.danielwegener.logback.kafka.delivery.AsynchronousDeliveryStrategy" # стратегия асинхронной отправки логов в Kafka, если не задано, то используется асинхронная отправка в отдельном потоке ru.sbt.edmn.mayak.main.logback.delivery.AsyncDeliveryStrategy. Синхронная отправка: com.github.danielwegener.logback.kafka.delivery.BlockingDeliveryStrategy
    topic: __PLACEHOLDER__ # Топик для системных логов
    retries: 3 # Количество попыток создания Kafka Producer
    interval: 1000 # Интервал между попытками создания Kafka Producer в мс.
    multiplier: 1 # Множитель интервала пересоздания Kafka Producer
    grok: # Конфигурационные свойства JSON полей лога сообщения
      message: "message" # Название поля для сообщения
      timestamp: "timestamp" # Название поля для временной метки
      level: "level" # Название поля для уровня лога
      needAddThreadToMessage: false # Флаг используемый для добавления информации о потоке в лог
    producerConfigs: # Конфигурационные свойства Kafka Producer
      bootstrap.servers: _PLACEHOLDER_ # Список серверов Kafka
      security.protocol: SSL # Используемый протокол (SSL, PLAINTEXT)
      ssl.keystore.location: ssl/kafka_write.jks # Путь до хранилища приватных ключей
      ssl.keystore.password: _PLACEHOLDER_ # Пароль для хранилища приватных ключей
      ssl.key.password: _PLACEHOLDER_ # Пароль для доступа к приватному ключу
      ssl.truststore.location: ssl/kafka_write.jks # Путь до хранилища доверенных сертификатов
      ssl.truststore.password: _PLACEHOLDER_ # Пароль для хранилища доверенных сертификатов
      ssl.endpoint.identification.algorithm: "https" # Настройка алгоритма идентификации эндпойнта сервера Kafka. "" - проверка отключена, "https" - проверка SAN/CN включена
  xms: 512M # начальный heap size
  xmx: 2G # максимальный heap size
  port: 8080 # Ожидаемый порт для проверки запуска приложения
  keystore_path: ssl/monitoring.jks # Сертификат для https
  keystore_password: _PLACEHOLDER_ # пароль от keyStore
  jvm_args: # Дополнительные аргументы при запуске.
  encoding_configs: # конфигурация шифрования паролей
    enabled: true # Включение/выключение шифрования
    security.encoding.key: encrypt.pass # Файл с ключом шифрования
    security.encoding.class: ru.sbt.ss.password.DefaultEncoder # Библиотека шифрования
  check_cert_revocation_throwing: false # В случае если сертификат отозван, то выбрасывать ошибку
  check_client_cert_revocation: true # Включение проверки клиентских сертификатов на список отозванных
  check_infrastructure_cert_revocation: true # Включение проверки инфраструктурных сертификатов на список отозванных
  authentication: # Блок настройки аутентификации
    type: basic # Поддерживаемые типы: ldap, basic, oauth
    userList: [] # Список администраторов
    #  - login: testuser # Имя пользователя
    #    password: # Обязательное поле при аутентификации типа basic. При его отсутствии сгенерируется пустой пароль
    groupsList: [] # Группа пользователей из ldap (только при type: ldap)
    #  - "some-group" # Группа пользователей
    ssl: # блок настроек для безопасной аутентификации
      enabled: true # Включение/выключение ssl
      # protocol: TLS1.2 # Необязательный параметр
    #      keystore: ssl/authentication.jks # Путь до сертификата
    #      keystore-password: _PLACEHOLDER_ # Пароль для сертификата
    #      truststore: ssl/authentication.jks # Путь до сертификата
    #      truststore-password: _PLACEHOLDER_ # Пароль для сертификата
    ldap: # Блок вставляется как есть, если monitoring.authentication.type: ldap
      domain: ldap.ru # Адрес для ldap
      port: 636 # Порт подключения: 389 - LDAP, 636 - LDAPs
      #     controllers:
      #         - __some_controller1__ # Необязательное поле: переопределение контроллера. Если этого поля нет, то идет подключение к рандомному контроллеру домена
      #         - __some_controller2__
      base: DC=ldap,DC=ru # точка для поиска объектов в древовидной структуре каталога.
      removeCharactersFromCredentials: true # Удалять недопустимые символы "+", "=" и пробел из пароля (по умолчанию true)
      fields: # Поля соответствия дашбоарда полям из ldap
        displayName: displayName # Поля соответствия дашбоарда полям из ldap
        employeeID: employeeID  # Поля соответствия дашбоарда полям из ldap
        thumbnailPhoto: THUMBNAIL_PHOTO  # Поля соответствия дашбоарда полям из ldap
        mailIn: extensionAttribute9       # (внутренняя почта) e-mail alpha
        mailOut: mail                     # (внешняя почта) e-mail sigma
    basic: # Блок вставляется как есть, если monitoring.authentication.type: basic
      hashingCost: 16 # Экспоненциальная вычислительная стоимость хеширования пароля алгоритмом PBKDF2WithHmacSHA1 (по умолчанию 16, максимальное 30)
    oauth:
  #      type: iamproxy # Используемый поставщик аутентификации (в качестве значения используется поле из "authentication.oauth.clients")
  #      requireTokenOnEveryRequest: false # Требовать наличия токена на каждый запрос. Т.е. для успешной аутентификации необходим Bearer Token (по умолчанию false)
  #      disableEndpoints: true # Отключить конечные точки аутентификации (отключать при работе через IAM Proxy, по умолчанию false)
  #      callbackRootUrl: _PLACEHOLDER_ # Базовый URI к конечной точке аутентификации по OAuth в приложении. Например: https://<host>:<port>/metrics/api/oauth2/ или https://<hostname>/metrics/api/oauth2/  (Генерируемая конечная точка для обратного вызова будет иметь вид: https://<host>:<port>/metrics/api/oauth2/<client_name>/cb)
  #      clients:
  #        iamproxy:
  #          autoUpdateUserProfile: true # Актуализация пользователя на основе ID Token (по умолчанию false): 1. Если пользователя не существует, то он будет создан. 2. Если пользователь существует, то для него будет обновлена информация
  #          claims: # Таблица соответствия полей для получения данных из ID Token
  #            username: "preferred_username" # Поле в котором хранится логин пользователя (по умолчанию preferred_username)
  #            firstName: "given_name" # Имя пользователя (по умолчанию given_name)
  #            lastName: "family_name" # Фамилия пользователя (по умолчанию family_name)
  #            roles: "realm_access/roles" # Список назначенных пользователю ролей (по умолчанию groups)
  #            middleName: "patronymic" # Отчество пользователя (по умолчанию patronymic)
  #            email: "email" # Адрес электронной почты (по умолчанию email)
  #          security:
  #            skipAllValidators: true # Пропустить этап проверки JWT (по умолчанию false)
  #          endpoints:
  #            jwks:
  #              url: http://hostname/openid-connect/certs # Конечная точка открытых ключей
  #        custom: # Список всех параметров настраиваемых для интеграции с SUDIR
  #          flow: code # Используемый поток аутентификации (по умолчанию code)
  #          scope: openid # Чтобы использовать OpenID Connect, необходимо указать "openid" (и другие значения без запятых)
  #          autoUpdateUserProfile: false # Автоматически обновлять профиль пользователя (по умолчанию false)
  #          claims: # Таблица названий полей для получения данных из JWT Token
  #            username: "preferred_username" # Логин пользователя (по умолчанию preferred_username)
  #            roles: "groups" # Список назначенных пользователю ролей (по умолчанию groups)
  #            firstName: "given_name" # Имя пользователя (по умолчанию given_name)
  #            lastName: "family_name" # Фамилия пользователя (по умолчанию family_name)
  #            middleName: "patronymic" # Отчество пользователя (по умолчанию patronymic)
  #            email: "email" # Адрес электронной почты (по умолчанию email)
  #          security:
  #            skipAllValidators: false # Не использовать проверки токена (по умолчанию используются, значение false)
  #            skipSignatureVerification: false # Не проверять сигнатуру токена (по умолчанию проверяется, значение false). См. точку распространения открытых ключей authentication.oauth.clients.*.endpoints.jwks.url
  #            jwsAlgConstraints: RS256 # Допустимые алгоритмы подписи (по умолчанию RS256)
  #            requireIssuedAt: true # Обязательное присутствие значения эмитента в ID Token (по умолчанию true)
  #            requireExpirationTime: true # Обязательное присутствие времени истечения срока действия в ID Token (по умолчанию true)
  #            requireNotBefore: false # Обязательное присутствие времени до которого токен не должен приниматься к обработке в ID Token (по умолчанию false)
  #            requireSubject: true # Обязательное присутствие субъекта (идентификатора пользователя) в ID Token (по умолчанию true)
  #            issuer: _PLACEHOLDER_ # Эмитент. Используется для сравнения со значением из Access Token или ID Token для его валидации
  #            audience: _PLACEHOLDER_ # Аудитория для которой предназначен Token
  #            endpoints: client_secret_basic # tls_client_auth # client_secret_post # Способ обеспечения безопасности конечных точек (по умолчанию client_secret_basic)
  #            clientId: _PLACEHOLDER_ # Идентификатор клиента (ClientID)
  #            clientSecret: _PLACEHOLDER_ # Секрет для аутентификации клиента (Client secret)
  #            ssl: # Настройки mTLS подключения при работе в режиме tls_client_auth
  #              protocol: TLS1.3 # Протокол TLS соединения (по умолчанию TLS1.3)
  #              hostnameVerify: false # Проверять название хоста (по умолчанию true)
  #              truststoreLocation: _PLACEHOLDER_ # Путь к доверенному хранилищу сертификатов
  #              truststorePassword: _PLACEHOLDER_ # Пароль от доверенного хранилища
  #              keystoreLocation: _PLACEHOLDER_ # Путь к хранилищу приватных ключей
  #              keystorePassword: _PLACEHOLDER_ # Пароль от хранилища приватных ключей
  #              keyPassword: _PLACEHOLDER_ # Пароль от хранилища приватных ключей
  #          endpoints: # Конечные точки Authentication Provider
  #            authorization:
  #              url: _PLACEHOLDER_ # Конечная точка аутентификации
  #              security: none # Способ аутентификации на конечной точке (по умолчанию аутентификация не требуется "none")
  #            token:
  #              url: _PLACEHOLDER_ # Конечная точка получения Access Token или ID Token
  #              security: client_secret_basic # Способ аутентификации на конечной точке (по умолчанию используется значение из authentication.oauth.clients.*.security.endpoints)
  #            jwks:
  #              url: _PLACEHOLDER_ # Конечная точка открытых ключей
  #              security: none # Способ аутентификации на конечной точке (по умолчанию аутентификация не требуется "none")

  registry: # Блок настроек подключения к Active Directory и Addressbook
    enabled: false # Использовать интеграции с реестрами Addressbook, MS Active Directory и др. (по умолчанию false)
    addressbook: # Конфигурационные свойства для подключения к телефонному справочнику
      enabled: false # Использовать интеграцию с Addressbok
      domain: _PLACEHOLDER_ # Доменное имя сервиса для подключения
      #controllers: # Список доменных имен сервиса для подключения, если свойство monitoring.registry.addressbook.domain не задано. Иначе данное свойство используется для указания поддоменов
      #  - "_PLACEHOLDER_"
      #port: 443 # Порт по которому доступен сервис 80 (http), 443 (https используется по умолчанию)
      checkEmail: false # Проверять адреса электронной почты (по умолчанию false)
      checkMobile: false # Проверять мобильные номера телефонов (по умолчанию false)
      userSync: false # Выполнять синхронизацию пользователей (по умолчанию false)
      overwriteEmail: false # Перезаписывать адрес электронной почты при синхронизации (по умолчанию false)
      overwriteMobile: false # Перезаписывать номер мобильного телефона при синхронизации (по умолчанию false)
      ssl:
        enabled: true # Использовать подключение по TLS
        protocol: "TLSv1.3" # Версия SSL (по умолчанию TLSv1.3)
        truststoreLocation: _PLACEHOLDER_ # Путь к хранилищу доверенных сертификатов
        truststorePassword: _PLACEHOLDER_ # Пароль от хранилища доверенных сертификатов
        keystoreLocation: _PLACEHOLDER_ # Путь к хранилищу приватных ключей
        keystorePassword: _PLACEHOLDER_ # Пароль от хранилища приватных ключей
        keyPassword: _PLACEHOLDER_ # Пароль для доступа к приватному ключу
    activeDirectory: # Конфигурационные свойства для подключения к MS Active Directory
      enabled: false # Использовать интеграцию с MS Active Directory
      domain: _PLACEHOLDER_ # Доменное имя сервиса для подключения
      #controllers: # Список доменных имен сервиса для подключения, если свойство monitoring.registry.active-directory.domain не задано. Иначе данное свойство используется для указания поддоменов
      #  - nlb-ldap-sigma082
      #port: 636 # Порт по которому доступен сервис 389 (ldap), 636 (ldaps используется по умолчанию)
      base: "dc=example,dc=example,dc=ru" # Каталог в котором производится поиск (точка для поиска объектов в древовидной структуре каталога).
      checkUserEmail: false # Проверять адреса электронной почты у пользователей (по умолчанию false)
      checkGroupEmail: false # Проверять адреса электронной почты у групп пользователей (по умолчанию false)
      userSync: false # Выполнять синхронизацию пользователей (по умолчанию false)
      ssl:
        enabled: true # Использовать подключение по TLS
        protocol: "TLSv1.3" # Версия SSL (по умолчанию TLSv1.3)
        truststoreLocation: _PLACEHOLDER_ # Путь к хранилищу доверенных сертификатов
        truststorePassword: _PLACEHOLDER_ # Пароль от хранилища доверенных сертификатов
        keystoreLocation: _PLACEHOLDER_ # Путь к хранилищу приватных ключей
        keystorePassword: _PLACEHOLDER_ # Пароль от хранилища приватных ключей
        keyPassword: _PLACEHOLDER_ # Пароль для доступа к приватному ключу
          #fields: # Конфигурационные свойства для получения данных из результатов выполнения запроса Active Directory
          #sAMAccountName: "sAMAccountName" # Уникальный идентификатор пользователя или группы
          #accountExpires: "accountExpires" # Дата окончания действия учетной записи
          #mail: "mail" # Адрес электронной почты
          #extensionAttribute9: "extensionAttribute9" # Дополнительный адрес электронной почты
          #givenName: "givenName" # Имя пользователя
          #sn: "sn" # Фамилия пользователя
          #middleName: "middleName" # Отчество пользователя
          #displayName: "displayName" # Полное имя пользователя
          #memberOf: "memberOf" # Группы пользователя
          #employeeID: "employeeID" # Табельный номер сотрудника
          #application: # Блок настроек логики работы приложения
          #users: # Конфигурационные свойства используемые для заполнения данных о пользователях при старте приложения
          #- login: _PLACEHOLDER_ # Логин пользователя (сотрудника)
          #employeeId: 12345 # Табельный номер пользователя (сотрудника)
        #actual: false # Актуальность учетной записи (true - актуальна, false - заблокирована)

  audit: # блок настроек аудита
    types: tsAudit,console # Типы аудита: tsAudit, console
    url: https://audit.ru # Адрес аудита
    # requestTimeout: 15000 # Request timeout for http requests
    # stopTimeout: 10000 # Stop timeout for redelivery/dead letter buffers
    ssl: # Блок настроек ssl
      protocol: TLSv1.3 # Используемый протокол ssl
      keystore: ssl/server.keystore.jks # Путь до сертификата
      keystore_password: _PLACEHOLDER_  # Пароль для сертификата
      truststore: ssl/server.truststore.jks # Путь до сертификата
      truststore_password: _PLACEHOLDER_  # Пароль для сертификата
    kafka: # Настройки отправки событий аудита в Kafka
      enabled: true # Включить отправку событий аудита в Kafka (по умолчанию true), если выключен, то отправка будет происходить по "http".
      bootstrap: hostname:9092 # Список брокеров для отправки событий аудита в Kafka
      clientId: audit-client # Client id для формирования продюсера в Kafka
      metamodelTopic: EDMN.AUDIT.METAMODEL # Имя топика для отправки метамодели для аудита в Kafka
      eventTopic: EDMN.AUDIT.EVENT # Имя топика для отправки событий аудита в Kafka
      ssl: # Блок настроек ssl для отправки событий аудита через Kafka
        protocol: SSL # Протокол для для отправки событий аудита в Kafka: SSL, PLAINTEXT
        sslEndpointIdentificationAlgorithm: "https" # Настройка алгоритма идентификации эндпойнта сервера Kafka. "" - проверка отключена, "https" - проверка SAN/CN включена
        truststoreLocation: ssl/kafka_audit.jks # Путь до сертификата для отправки событий аудита в kafka
        truststorePassword: _PLACEHOLDER_ # Пароль для сертификата для отправки событий аудита в kafka
        keystoreLocation: ssl/kafka_audit.jks # Путь до сертификата для отправки событий аудита в kafka
        keystorePassword: _PLACEHOLDER_ # Пароль для сертификата для отправки событий аудита в kafka
        keyPassword: _PLACEHOLDER_  # Пароль для сертификата для отправки событий аудита в kafka
  jmx: # Блок настроек jmx
    enabled: false # Включение/выключение jmx
    jmxport: 7032 # Порт jmx
    authenticate: # Блок настройки аутентификации
      enabled: true # Включение/выключение аутентификации
    jmx_access_roles: # Блок настроек ролей для jmx
      - user: _PLACEHOLDER_ # имя user для доступа к jmx
        access: readonly # тип доступа: "readwrite", readonly
        password: _PLACEHOLDER_ # пароль для доступа к jmx
  notifications:  # Блок настроек уведомлений
    enabled: false # Включение всех типов нотификаций. Если false, то остальные настройки игнорируются.
    interval: 10000 # Интервал отправки уведомлений в миллисекундах. Перенесено из mail
    locale: "RU" # Язык сообщений RU EN по умолчанию RU
    subject: "Monitoring error" # Заголовок сообщения
    sendValue: true # Отправлять значения Триггеров и метрик
    group: true # Группировка сообщений в письмах и автоинцидентах
    type: # Типы уведомлений
      mail: # Блок настроек уведомлений через почту
        enabled: true # Включение/выключение отправки уведомлений через почту
        redirect: true # Флаг доступности функциональности репликации уведомлений
        fullPath: true # отправлять полный путь вложенных метрик
        protocol: smtp # Протокол отправки почты
        domains: sberbank.ru,sbertech.ru # Перечисление почтовых доменов на которые разрешена отправка сообщений через "," если не указано, или "*" то все разрешены.
        host: awesome-mail.ru # адрес почты
        port: 25  # Порт 443 || 25 || 528
        auth: true # Аутентификация почтового сервера
        emailFrom: esmonitoring@awesome-mail.ru # От какого пользователя будет происходить отправка уведомлений
        username: _PLACEHOLDER_ # Имя пользователя
        password: _PLACEHOLDER_ # Пароль для пользователя
        ssl: # Блок настроек ssl
          enabled: true # Включение ssl
      sms: # Блок настроек sms
        enabled: true # Включена отправка уведомлений по sms
        redirect: true # Флаг доступности функциональности репликации уведомлений
        size: 400 # Длинна сообщения
        url: https://sms.ru #URL АС отправки sms
        auth: true # Включена аутентификация
        username: _PLACEHOLDER_ # Логин пользователя
        password: _PLACEHOLDER_ # Пароль пользователя
        ssl: # Блок настроек ssl
          enabled: false # Использование ssl
          protocol: TLSv1.3 # Используемый протокол ssl
          keystoreLocation: ssl/sms.jks # Путь до сертификата
          keystorePassword: _PLACEHOLDER_ # Пароль для сертификата
          truststoreLocation: ssl/sms.jks # Путь до сертификата
          truststorePassword: _PLACEHOLDER_ # Пароль для сертификата
          keyPassword: _PLACEHOLDER_ # Пароль для хранилища сертификатов
      serviceProxy: # Блок настроек Service Proxy
        enabled: false # Включено заведение инцидентов через Service Proxy
        redirect: false # Флаг доступности функциональности репликации уведомлений
        delay: 180 # В секундах. Для исключения спама автоинцидентами необходимо реализовать настраиваемый параметр позволяющий  задать определенный временной интервал, во время которого, если триггер перешел в статус ОК, автоинцидент создаваться не будет. Например, если за 3 минуты триггер ушел, то автоинцидент – не нужен.
        kafka: # Блок настроек Kafka
          enabled: true # Включает запись сообщений в Kafka
          write: # Блок настроек записи в Kafka
            enabled: true # Включает запись в Kafka
            enableIdempotence: false # Включена транзакционность при отправке в Kafka
            bootstrap: hostname1:9092,hostname2:9092 # Список серверов kafka
            topic: EDMN # Топик в который будет запись
            producer: edmn # Название продюсера сообщений
            ssl: # Блок настроек ssl
              protocol: SSL # Используемый протокол (SSL, PLAINTEXT)
              sslEndpointIdentificationAlgorithm: "https" # Настройка алгоритма идентификации эндпойнта сервера Kafka. "" - проверка отключена, "https" - проверка SAN/CN включена
              truststoreLocation: ssl/kafka_write.jks # Путь до хранилища доверенных сертификатов
              truststorePassword: _PLACEHOLDER_ # Пароль для хранилища доверенных сертификатов
              keystoreLocation: ssl/kafka_write.jks # Путь до хранилища приватных ключей
              keystorePassword: _PLACEHOLDER_ # Пароль для хранилища приватных ключей
              keyPassword: _PLACEHOLDER_ # Пароль для доступа к приватному ключу
          read: # Блок настроек чтения из Kafka
            enabled: true # Включает вычитку сообщений из kafka
            bootstrap: hostname1:9092,hostname2:9092 # Список серверов Kafka
            topic: EDMN # Наименование топика
            groupId: edmn-group # groupId консьюмера сообщений
            ssl: # Блок настроек ssl
              protocol: SSL # Используемый протокол (SSL, PLAINTEXT)
              sslEndpointIdentificationAlgorithm: "https" # Настройка алгоритма идентификации эндпойнта сервера Kafka. "" - проверка отключена, "https" - проверка SAN/CN включена
              truststoreLocation: ssl/kafka_write.jks # Путь до хранилища доверенных сертификатов
              truststorePassword: _PLACEHOLDER_ # Пароль для хранилища доверенных сертификатов
              keystoreLocation: ssl/kafka_write.jks # Путь до хранилища приватных ключей
              keystorePassword: _PLACEHOLDER_ # Пароль для хранилища приватных ключей
              keyPassword: _PLACEHOLDER_ # Пароль для доступа к приватному ключу
    replication: # Блок настроек уведомлений через kafka
      enabled: true # Включение отправки уведомлений в Kafka
      write: # Блок настроек записи в kafka
        - enabled: true # Включает запись сообщений в kafka. При включении все сообщения будут записываться только в kafka
          enableIdempotence: false # Отключает транзакционность сообщений
          bootstrap: hostname1:9092,hostname2:9092 # Список серверов kafka
          topics: # Список топиков для отправки сообщений
            - name: EDMN # Наименование топика
              types: # Список возможных типов уведомлений, для которых предназначен топик
                - ALL # Возможные варианты: MAIL, SMS, ServiceProxy
          producer: edmn # Наименование Kafka продюсер
          ssl: # Блок настроек ssl
            protocol: SSL #  SSL, PLAINTEXT
            sslEndpointIdentificationAlgorithm: "https" # Настройка алгоритма идентификации эндпойнта сервера Kafka. "" - проверка отключена, "https" - проверка SAN/CN включена
            truststoreLocation: ssl/kafka_write.jks # Путь до сертификата
            truststorePassword: _PLACEHOLDER_ # Пароль для сертификата
            keystoreLocation: ssl/kafka_write.jks # Путь до сертификата
            keystorePassword: _PLACEHOLDER_ # Пароль для сертификата
            keyPassword: _PLACEHOLDER_ # Пароль для сертификата
      read: # Блок настроек чтения из kafka
        - enabled: true # Включает вычитку сообщений из kafka
          bootstrap: hostname1:9092,hostname2:9092 # Список серверов kafka
          topics: # Список топиков для получения сообщений
            - EDMN # Список топиков
          groupId: edmn-group # groupId консьюмера сообщений
          ssl: # Блок настроек ssl
            protocol: SSL #  SSL, PLAINTEXT
            sslEndpointIdentificationAlgorithm: "https" # Настройка алгоритма идентификации эндпойнта сервера Kafka. "" - проверка отключена, "https" - проверка SAN/CN включена
            truststoreLocation: ssl/kafka_read.jks # Путь до сертификата
            truststorePassword: _PLACEHOLDER_ # Пароль для сертификата
            keystoreLocation: ssl/kafka_read.jks # Путь до сертификата
            keystorePassword: _PLACEHOLDER_ # Пароль для сертификата
            keyPassword: _PLACEHOLDER_ # Пароль для сертификата

  time_series_connects: # Блок подключения к БД
    maxTPS: 100 # Максимальная пропускная способность метрик/секунда
    shards: # Источники метрик
      - code: Influx # Название источника: Influx,Prometheus
        enabled: false # Включение чтения из Influx
        minUpdateTime: 5 # Время получения приоритетных метрик, указывается в секундах
        maxUpdateTime: 30 # Время получения всех метрик, указывается в секундах
        connections: # Настройки подключений
          - type: influx # Тип TimeSeries БД influx или prometheus
            enabled: false # Флаг использования подключения
            host: influx_host # Сервер influx
            port: influx_port # Порт influx
            database: metrics # Название БД (для influx)
            retentionPolicy: some_retentionPolicy # Политика хранения (для influx)
            username: metrics # Пользователь influx
            secret: __PLACEHOLDER__ # Пароль для Пользователя influx
            ssl: # Блок настроек ssl
              protocol: TLSv1.3 # Используемый протокол
              keystore_path: ssl/influx.jks  # Путь до сертификата
              truststore_path: ssl/influx.jks # Путь до сертификата
              truststore_password: _PLACEHOLDER_ # Пароль для сертификата
              keystore_password: _PLACEHOLDER_ # Пароль для сертификата
              key_password: _PLACEHOLDER_ # Пароль для сертификата
              hostname_verify: true # Проверка верификации сертификата с сервером
      - code: Prometheus # Название источника: Influx,Prometheus
        enabled: false # Флаг использования подключения
        minUpdateTime: 5 # Время получения приоритетных метрик, указывается в секундах
        maxUpdateTime: 30 # Время получения всех метрик, указывается в секундах
        connections:  # Настройки подключений
          - type: prometheus # Тип TimeSeries БД influx или prometheus
            enabled: false # Флаг использования подключения
            host: prometheus_host # Сервер prometheus
            port: prometheus_port # Порт prometheus
            username: _PLACEHOLDER_  # Пользователь prometheus
            secret: _PLACEHOLDER_  # Пароль для Пользователя prometheus
            ssl: # Блок настроек ssl
              protocol: TLSv1.3 # Используемый протокол
              #commonNameVerify: _PLACEHOLDER_ # CN prometheus
              keystore_path: ssl/prometheus.keystore.jks # Путь до сертификата
              truststore_path: ssl/prometheus.truststore.jks # Путь до сертификата
              truststore_password: _PLACEHOLDER_ # Пароль для сертификата
              keystore_password: _PLACEHOLDER_ # Пароль для сертификата
              key_password: _PLACEHOLDER_  # Пароль для сертификата
              hostname_verify: true # Проверка верификации сертификата с сервером

  events: # Конфигурационные свойства сервиса событий
    enabled: false # Использовать сервис событий (по умолчанию false)

  out_metrics: # Параметры подключения для сбора метрик из внешнего prometheus
    enabled: false # Включение/выключение сбора метрик из внешнего prometheus
    port: 1234 # Порт для сбора метрик из внешнего prometheus
    authentication: # Блок настройки аутентификации
      enabled: true # Включение/выключение аутентификации
      login: monitoring # Логин для авторизации
      password: _PLACEHOLDER_ # Пароль для авторизации
    ssl: # Блок настроек ssl
      enabled: true # Включение/выключение ssl
      #keystore_location: ssl/prometheus.jks # Путь до сертификата
      #truststore_location: ssl/prometheus.jks # Путь до сертификата
      #keystore_password: _PLACEHOLDER_ # Пароль для сертификата
      #truststore_password: _PLACEHOLDER_ # Пароль для сертификата
      #key_password: _PLACEHOLDER_ # Пароль для сертификата
  data_space: # Сохранение конфигураций в файлы
    type: fileSystem # Допустимые значения для "type": memory (по умолчанию), fileSystem, database
    version: v1 # Версия файлов конфигурации
    database:
      url: _PLACEHOLDER_ # URL для подключения к БД
      #driver: org.postgresql.Driver # Драйвер используемый для подключения к БД (по умолчанию org.postgresql.Driver)
      #schema: edmn # Схема базы данных (по умолчанию "edmn")
      #username: _PLACEHOLDER_ # Логин пользователя БД
      #secret: _PLACEHOLDER_ # Пароль пользователя БД
      liquibase:
        enabled: true # Использовать Liquibase для изменения структуры базы данных
        changeLog: "classpath:/db/changelog-master.xml" # Название ресурса в котором записаны изменения структуры базы данных (по умолчанию "classpath:/db/changelog-master.xml")
        databaseChangeLogTable: "edmn_databasechangelog" # Название таблицы БД в которой будет содержаться список изменений схемы БД (по умолчанию "edmn_databasechangelog")
        databaseChangeLogLockTable: "edmn_databasechangeloglock" # Название таблицы БД в которой будет содержаться данные для блокировки, чтобы гарантировать одновременную работу только одного экземпляра Liquibase (по умолчанию "edmn_databasechangeloglock")
      ssl:
        enabled: true # Использовать SSL (по умолчанию true)
        sslMode: verify-full # Режим SSL используемый в HTTPS для выполнения любой операции с базой данных Postgres (по умолчанию verify-ca). Если ssl.enabled = false, то режим prefer. Допустимые значения: disable, allow, prefer, require, verify-ca, verify-full
        protocol: TLSv1.3 # Протокол SSL (по умолчанию TLSv1.3)
        hostnameVerify: true # Проверять хост в сертификате (если ssl mode VERIFY_FULL)
        #commonNameVerify: _PLACEHOLDER_ # Проверять CN сертификата БД (если ssl mode VERIFY_FULL)
        truststoreLocation: _PLACEHOLDER_ # Путь к хранилищу доверенных сертификатов
        truststorePassword: _PLACEHOLDER_ # Пароль от хранилища доверенных сертификатов
        keystoreLocation: _PLACEHOLDER_ # Путь к хранилищу приватных ключей
        keystorePassword: _PLACEHOLDER_ # Пароль от хранилища приватных ключей
        keyPassword: _PLACEHOLDER_ # Пароль для доступа к приватному ключу
    configs:
      metrics:
        encrypt: false # Требуется ли шифрование по умолчанию false
      triggers:
        encrypt: false # Требуется ли шифрование по умолчанию false
      history:
        encrypt: false # Требуется ли шифрование по умолчанию false
      outMetrics:
        encrypt: false # Требуется ли шифрование по умолчанию false
      users:
        encrypt: true # Требуется ли шифрование по умолчанию true
      usersGroups:
        encrypt: true # Требуется ли шифрование по умолчанию true
      groupDashboards:
        encrypt: true # Требуется ли шифрование по умолчанию true
      settings:
        encrypt: true # Требуется ли шифрование по умолчанию true
  health: # Блок для включения HealthCheck
    enabled: false # Включение проверки работоспособности резервного мониторинга и включение отправки уведомлений, когда основной мониторинг недоступен (по умолчанию false)
    mode: master # Режим в котором запущен мониторинг (допустимые значения master, slave) (по умолчанию master)
    #url: https://localhost:8070/metrics/actuator/health # Конечная точка резервного мониторинга для определения работоспособности. Если "mode: master", то в url прописывается конечная точка slave мониторинга, а для "mode: slave" в url прописывается конечная точка master мониторинга.
    check: # Блок настроек частоты выполнения проверок
      delay: 120000 # Задержка в миллисекундах перед первой проверкой доступности резервного мониторинга (по умолчанию 120000 мс.)
      interval: 60000 # Интервал в миллисекундах между повторными проверками доступности резервного мониторинга (по умолчанию 60000 мс.)
    ssl: # Блок настроек ssl
      enabled: true
      protocol: TLSv1.3 # Используемый протокол (по умолчанию TLSv1.3)
      #commonNameVerify: _PLACEHOLDER_ # CN резервного мониторинга
      hostnameVerify: true # Проверять название хоста (по умолчанию true)
      truststoreLocation: _PLACEHOLDER_ # Путь к доверенному хранилищу сертификатов
      truststorePassword: _PLACEHOLDER_ # Пароль от доверенного хранилища
      keystoreLocation: _PLACEHOLDER_ # Путь к хранилищу приватных ключей
      keystorePassword: _PLACEHOLDER_ # Пароль от хранилища приватных ключей
      keyPassword: _PLACEHOLDER_ # Пароль от хранилища приватных ключей
  monreg:
    enabled: false # Включение сервиса отправки мета-данных в реестр мониторингов
    #    employeenumber: _PLACEHOLDER_ # Табельный номер сотрудника (владельца правил, метрик мониторинга)
    #    monitoringCi: CI00000000 # ID КЭ ИТ-услуги системы мониторинга
    initialDelaySeconds: 3600 # Время задержки перед первой отправкой мета-объектов в реестр мониторингов (по умолчанию 3600 сек. (1 час))
    periodSeconds: 43200 # Период между последовательными отправками мета-объектов в реестр мониторингов (по умолчанию 43200 сек. (12 часов))
    #    exportTime: '2007-12-03T23:15:30Z' # Время с которым мета-объекты будут экспортированы в реестр мониторинга (если не указано, то используется текущее время создания отчета)
    #    chronoUnit: SECONDS # Единица измерения периода даты (SECONDS, MINUTES, HOURS, HALF_DAYS, DAYS). Используется для усечения времени генерации отчета до указанного периода (по умолчанию SECONDS).
    file:
      enabled: false # Включение сохранения мета-данных в файл
      path: _PLACEHOLDER_ # Путь к файлу для сохранения мета-данных
      permissions: "rw-------" # Права доступа к файлу (по умолчанию rw------- (600))
    kafka:
      enabled: false # Включение отправки мета-данных в Kafka
      segment: _PLACEHOLDER_ # Значение используемое в названии топика для отправки мета-данных в Kafka
      bootstrap: hostname1:9092,hostname2:9092 # Список серверов kafka
      producer: edmn # Наименование kafka producer
      enableIdempotence: false # Отключает транзакционность сообщений
      ssl: # Блок настроек ssl
        protocol: SSL #  SSL, PLAINTEXT
        sslEndpointIdentificationAlgorithm: "https" # Настройка алгоритма идентификации эндпойнта сервера Kafka. "" - проверка отключена, "https" - проверка SAN/CN включена
        truststoreLocation: ssl/kafka_write.jks # Путь до сертификата
        truststorePassword: _PLACEHOLDER_ # Пароль для сертификата
        keystoreLocation: ssl/kafka_write.jks # Путь до сертификата
        keystorePassword: _PLACEHOLDER_ # Пароль для сертификата
        keyPassword: _PLACEHOLDER_ # Пароль для сертификата
  #      topics: # Список топиков для отправки сообщений
  #        owners:
  #          name: SNS{SEGMENT}.MONREG_OWNERS.V1 # Название топика для отправки владельцев правил. Если не задано, то используется значение "SNS{SEGMENT}.MONREG_OWNERS.V1", где {SEGMENT} - значение свойства "monreg.kafka.segment"
  #        metrics:
  #          name: SNS{SEGMENT}.MONREG_METRICS.V1 # Название топика для отправки правил сбора метрик. Если не задано, то используется значение "SNS{SEGMENT}.MONREG_METRICS.V1", где {SEGMENT} - значение свойства "monreg.kafka.segment"
  #        objects:
  #          name: SNS{SEGMENT}.MONREG_OBJECTS.V1 # Название топика для отправки объектов мониторинга. Если не задано, то используется значение "SNS{SEGMENT}.MONREG_OBJECTS.V1", где {SEGMENT} - значение свойства "monreg.kafka.segment"
  #        incidents:
  #          name: SNS{SEGMENT}.MONREG_INCIDENTS.V1 # Название топика для отправки правил генерации инцидентов. Если не задано, то используется значение "SNS{SEGMENT}.MONREG_INCIDENTS.V1", где {SEGMENT} - значение свойства "monreg.kafka.segment"
  #        notifications:
  #          name: SNS{SEGMENT}.MONREG_NOTIFICATIONS.V1 # Название топика для отправки правил генерации уведомлений. Если не задано, то используется значение "SNS{SEGMENT}.MONREG_NOTIFICATIONS.V1", где {SEGMENT} - значение свойства "monreg.kafka.segment"
  #        events:
  #          name: SNS{SEGMENT}.MONREG_EVENTS.V1 # Название топика для отправки правил генерации событий. Если не задано, то используется значение "SNS{SEGMENT}.MONREG_EVENTS.V1", где {SEGMENT} - значение свойства "monreg.kafka.segment"
  #        logs:
  #          name: SNS{SEGMENT}.MONREG_MON_LOGS.V1 # Название топика для отправки правил мониторинга сообщений в логах. Если не задано, то используется значение "SNS{SEGMENT}.MONREG_MON_LOGS.V1", где {SEGMENT} - значение свойства "monreg.kafka.segment"
  #        links:
  #          name: SNS{SEGMENT}.MONREG_LINKS.V1 # Название топика для отправки связей между метаданными. Если не задано, то используется значение "SNS{SEGMENT}.MONREG_LINKS.V1", где {SEGMENT} - значение свойства "monreg.kafka.segment"
  vault: # Блок настроек vault
    rulesImportant: false # Использовать по умолчанию данные из SecMan (Vault)
    removeOutdatedSecrets: false # Удалять секреты из приложения если они удаляются в SecMan (Vault)
    enabled: false # Включение vault
    host: vault_url # Адрес vault
    port: vault_port # порт vault
    namespace: '' # Пространство в vault, рекомендовано указывать наименование АС+КЭ
    reconnections: 0 # Количество попыток соединения
    #connectTimeoutSeconds: 1 # Количество секунд ожидания, прежде чем отказаться от установления соединения с сервером
    #readTimeoutSeconds: 5 # Количество секунд в течение которых необходимо дождаться завершения загрузки всех данных
    scheduler: # Блок настроек таймера
      enabled: false # Флаг включения режима периодической проверки изменения секретов и сертификатов
      #delay: 3600 # Задержка между проверками в секундах
      actualizeSecretsInterval: 3600000 # Периодичность актуализации секретов в миллисекундах (переопределяет свойство delay)
      checkCertificatesInterval: 43200000 # Периодичность проверки сертификатов в миллисекундах (по умолчанию 43 200 000 мс. / 12 часов)
      updatePemCertificatesInterval: 86400000 # Период обновления сертификатов из KV хранилища SecMan в миллисекундах (по умолчанию 86 400 000 миллисекунд / 24 часов)
      checkRevocation: true # Проверять сертификаты по списку отозванных (по умолчанию true)
      checkCrlTimeout: 1000 # Максимальное время проверки сертификата по списку отозванных в миллисекундах (по умолчанию 1000 мс.)
      daysBeforeCertificateExpiration: 7 # Количество дней до истечения срока действия сертификата, для информирования о необходимости обновления сертификата (по умолчанию 7)
    path: # Блок переменных которые используют сертификаты
      server: "vault:server.jks" # Переменная для получения сертификата из vault для мониторинга
      influxdb: "vault:influxdb.jks" # Переменная для получения сертификата из vault для подключения к influxdb
      prometheus: "vault:prometheus.jks" # Переменная для получения сертификата из vault для подключения к prometheus
      addressbook: "vault:addressbook.jks" # Переменная для получения сертификата из vault для подключения к addressbook
      ldap: "vault:ldap.jks" # Переменная для получения сертификата из vault для подключения к ldap
      audit: "vault:audit.jks" # Переменная для получения сертификата из vault для подключения к audit
      out_metrics: "vault:outmetrics.jks" # Переменная для получения сертификата из vault для подключения к out_metrics
      kafka: "vault:kafka.jks" # Переменная для получения сертификата из vault для подключения к kafka
      kafkalogs: "vault:kafkalogs.jks" # Переменная для получения сертификата из vault для подключения к kafka для отправки логов
      sms: "vault:sms.jks" # Переменная для получения сертификата из vault для подключения к sms
      oauth: "vault:sms.jks" # Переменная для получения сертификата из vault для подключения к KeyKloack, SUDIR (если требуется работа по mTLS)
      reserve: "vault:reserve.jks" # Переменная для получения сертификата из vault для подключения к резервному мониторингу Slave или Master (если конечная точка https://host:port/metrics/actuator/health доступна только по HTTPS)
      database: "vault:database.jks" # Переменная для получения сертификата из vault для подключения к базе данных (если требуется работа по mTLS)
      serviceproxy: "vault:serviceproxy.jks" # Переменная для получения сертификата из vault для подключения к Service Proxy (если требуется работа по mTLS)
      monreg: "vault:monreg.jks" # Переменная для получения сертификата из vault для подключения к MONREG (если требуется работа по mTLS)
    auth: # Блок настройки аутентификации
      method: approle # Метод авторизации: approle,token,cert,username,kubernetes
      roleId: "_PLACEHOLDER_" # roleId для аутентификации в vault
      secretId: "_PLACEHOLDER_" # secretId для аутентификации в vault

      # Конфигурация аутентификации в SecMan (Vault) по mTLS
      #method: cert # Метод аутентификации по mTLS (используется по умолчанию)
      #mount: cert  # Точка монтирования аутентификации (по умолчанию cert)

      # Конфигурация аутентификации в SecMan (Vault) используя Token
      #method: token # Метод аутентификации с использованием token
      #token: _PLACEHOLDER_ # Token полученный после инициализации SecMan (Vault)

      # Конфигурация аутентификации в SecMan (Vault) используя AppRole
      #method: approle # Метод аутентификации с использованием AppRole
      #roleId: "_PLACEHOLDER_" # Уникальный идентификатор роли
      #secretId: "_PLACEHOLDER_" # Учетные данные для роли с идентификатором roleId
      #mount: _PLACEHOLDER_ # Точка монтирования аутентификации (по умолчанию approle)

      # Конфигурация аутентификации в SecMan (Vault) используя Active Directory
      #method: username # Метод аутентификации с использованием Active Directory
      #login: _PLACEHOLDER_ # Логин
      #password: _PLACEHOLDER_ # Пароль
      #mount: userpass # Точка монтирования аутентификации (по умолчанию userpass)

      # Конфигурация аутентификации в SecMan (Vault) используя службу Kubernetes
      #method: kubernetes # Метод аутентификации с использованием службы Kubernetes
      #token: _PLACEHOLDER_ # Подписанный веб-токен JSON (JWT) для аутентификации учетной записи службы.
      #role: _PLACEHOLDER_ # Имя роли, для которой выполняется попытка входа в систему.
    ssl: # Блок настроек ssl
      truststoreType: PEM # Тип сертификата для подключения к vault
      truststoreLocation: ssl/vault.pem  # Путь до сертификата
    #  truststoreLocation: xxxxxxxxx - при method: cert # Путь до сертификата
    #  truststorePassword: xxxxxxxxx # Пароль для сертификата
    #  keystoreLocation: xxxxxxxxx # Путь до сертификата
    #  keystorePassword: xxxxxxxxx # Пароль для сертификата
    #  keyPassword: xxxxxxxxx # Пароль для сертификата
    rules: # Правила для работы vault
      - engine: kv # Тип хранилища (kv-ключ:значение, kv_cert-ключ:сертификат, pki-выпуск/подпись сертификатов)
        from: kv1/edmn/monitoring/secrets # Путь в хранилище
          #secret: _PLACEHOLDER_ # Название секрета в SecMan (Vault) K/V Engine (version 1) (псевдоним свойству path)
          #path: _PLACEHOLDER_ # Название секрета в SecMan (Vault) K/V Engine (version 1)
          #to: _PLACEHOLDER_ # Префикс добавляемый к свойству для сохранения в конфигурацию
          #mapping: # Настройки для явного сопоставления ключей из SecMan (Vault) свойствам конфигурации в приложении
        #"key_from_secman": "property_in_application" # Ключ:Значение для сопоставления, где Ключ - значение ключа с секретом в SecMan (Vault), а Значение - название свойства конфигурации в которое будет сохранен секрет из SecMan (Vault)
      - engine: kv_cert # Тип хранилища (kv-ключ:значение, kv_cert-ключ:сертификат, pki-выпуск/подпись сертификатов)
        from: kv1/edmn/monitoring/certificates # Путь в хранилище
        path: path # Путь к секретам в указанном engine
        #secret: _PLACEHOLDER_ # Название секрета в SecMan (Vault) K/V Engine (version 1), где хранятся данные в PEM формате (псевдоним свойству path)
        certs: # Блок для указания используемых сертификатов
          - selector: "keystore" # Откуда берется в vault
            to: "vault:edmn.jks" # В какую переменную записывается
          - selector: "truststore" # Откуда берется в vault
            to: "vault:edmn.jks" # В какую переменную записывается
      - engine: pki # Тип хранилища (kv-ключ:значение, kv_cert-ключ:сертификат, pki-выпуск/подпись сертификатов)
        from: pki # Путь в хранилище
        path: edms # Путь к секретам в указанном engine
        #roleName: _PLACEHOLDER_ # Название роли для выпуска/подписи сертификата (псевдоним свойству path)
        issue: # Блок выпуска сертификатов
          - commonName: AWESOME.MONITORING.CERT # Имя сертификата
            ttl: P25D # Время жизни сертификата
            excludeCommonNameFromSubjectAltNames: false # Исключение commonName из altNames
            # altNames: host #Альтернативные имена. Это могут быть имена хостов или адреса электронной почты.
            # ipSubjectAltNames: host #Альтернативные имена запрашиваемых IP-адресов в списке, разделенном запятыми.
            # uriSubjectAltNames: host #Альтернативные имена запрашиваемых объектов URI в списке, разделенном запятыми.
            # otherSubjectAltNames: host #Задает настраиваемые SAN со строкой OID/UTF8.
            #notAfter: _PLACEHOLDER_ # Дата после которой сертификат становится недействительным (в формате YYYY-MM-ddTHH:MM:SSZ)
            toKeystore: "vault:server.jks" # В какую переменную записывается
            toTruststore: "vault:server.jks" # В какую переменную записываетсям
            email: "" # Адрес электронной почты
              #fetch: # Блок получения сертификата или выпуска нового при неактуальности существующего
              #- commonName: _PLACEHOLDER_ # Имя сертификата
              #force: true # Принудительно выпустить сертификат
              #ttl: P25D # Время жизни сертификата
              #excludeCommonNameFromSubjectAltNames: false # Исключение commonName из altNames
              #altNames: host #Альтернативные имена. Это могут быть имена хостов или адреса электронной почты.
              #ipSubjectAltNames: host #Альтернативные имена запрашиваемых IP-адресов в списке, разделенном запятыми.
              #uriSubjectAltNames: host #Альтернативные имена запрашиваемых объектов URI в списке, разделенном запятыми.
              #otherSubjectAltNames: host #Задает настраиваемые SAN со строкой OID/UTF8.
              #notAfter: _PLACEHOLDER_ # Дата после которой сертификат становится недействительным (в формате YYYY-MM-ddTHH:MM:SSZ)
              #toKeystore: "vault:keystore.jks" # В какую переменную записывается
              #toTruststore: "vault:trustore.jks" # В какую переменную записываетсям
              #email: "" # Адрес электронной почты
              #sign: # Блок настроек для подписи сертификатов
              #- from: _PLACEHOLDER_ # Путь к секрету из KV хранилища Vault. Используется в качестве значения по умолчанию для свойств конфигурации "vault.rules[*].sign.key.from" и "vault.rules[*].sign.csr.from"
              #key:
              #pem: _PLACEHOLDER_ # Содержимое приватного ключа в формате PEM
              #file: _PLACEHOLDER_ # Путь к файлу c приватным ключом в формате PEM из файловой системы
              #from: _PLACEHOLDER_ # Путь к секрету c приватным ключом в формате PEM из KV хранилища (если не задано, используется значение из "vault.rules[*].sign.from")
              #selector: _PLACEHOLDER_ # Ключ по которому необходимо получить данные (PEM) из KV хранилища Vault
              #csr:
              #pem: _PLACEHOLDER_ # Содержимое Certificate Signing Request (CSR) в формате PEM
              #file: _PLACEHOLDER_ # Путь к файлу c Certificate Signing Request (CSR) в формате PEM из файловой системы
              #from: _PLACEHOLDER_ # Путь к секрету c Certificate Signing Request (CSR) в формате PEM из KV хранилища (если не задано, используется значение из "vault.rules[*].sign.from")
            #selector: _PLACEHOLDER_ # Ключ по которому необходимо получить данные (PEM) из KV хранилища Vault
            #commonName: _PLACEHOLDER_ # Имя сертификата
            #ttl: P25D # Время жизни сертификата
            #excludeCommonNameFromSubjectAltNames: false # Исключение commonName из altNames
            #altNames: host #Альтернативные имена. Это могут быть имена хостов или адреса электронной почты.
            #ipSubjectAltNames: host #Альтернативные имена запрашиваемых IP-адресов в списке, разделенном запятыми.
            #uriSubjectAltNames: host #Альтернативные имена запрашиваемых объектов URI в списке, разделенном запятыми.
            #otherSubjectAltNames: host #Задает настраиваемые SAN со строкой OID/UTF8.
            #notAfter: _PLACEHOLDER_ # Дата после которой сертификат становится недействительным (в формате YYYY-MM-ddTHH:MM:SSZ)
            #toKeystore: "vault:keystore.jks" # Название хранилища (должно начинаться с "vault:") приватных ключей в памяти для сохранения приватного ключа выпущенного сертификата
            #toTruststore: "vault:trustore.jks" # Название хранилища (должно начинаться с "vault:") доверенных сертификатов в памяти для сохранения выпущенного сертификата
            #email: "" # Адрес электронной почты
      - engine: pki # Тип хранилища (kv-ключ:значение, kv_cert-ключ:сертификат, pki-выпуск/подпись сертификатов)
        from: pki # Путь в хранилище
        path: edms # Путь к секретам в указанном engine
        issue: # Блок выпуска сертификатов
          - commonName: AWESOME.INFLUXDB.CERT # Имя сертификата
            ttl: P25D # Время жизни сертификата
            excludeCommonNameFromSubjectAltNames: false # Исключение commonName из altNames
            # altNames: host # Альтернативные имена. Это могут быть имена хостов или адреса электронной почты.
            # ipSubjectAltNames: host # Альтернативные имена запрашиваемых IP-адресов в списке, разделенном запятыми.
            # uriSubjectAltNames: host # Альтернативные имена запрашиваемых объектов URI в списке, разделенном запятыми.
            # otherSubjectAltNames: host # Задает настраиваемые SAN со строкой OID/UTF8.
            # notAfter: _PLACEHOLDER_ # Дата после которой сертификат становится недействительным (в формате YYYY-MM-ddTHH:MM:SSZ)
            toKeystore: "vault:influxdb.jks" # В какую переменную записывается
            toTruststore: "vault:influxdb.jks" # В какую переменную записывается
            email: "" # Адрес электронной почты
      - engine: pki # Тип хранилища (kv-ключ:значение, kv_cert-ключ:сертификат, pki-выпуск/подпись сертификатов)
        from: pki # Путь в хранилище
        path: edms # Путь к секретам в указанном engine
        issue: # Блок выпуска сертификатов
          - commonName: AWESOME.OUTMETRICS.CERT # Имя сертификата
            ttl: P25D # Время жизни сертификата
            excludeCommonNameFromSubjectAltNames: false # Исключение commonName из altNames
            # altNames: host #Альтернативные имена. Это могут быть имена хостов или адреса электронной почты.
            # ipSubjectAltNames: host #Альтернативные имена запрашиваемых IP-адресов в списке, разделенном запятыми.
            # uriSubjectAltNames: host #Альтернативные имена запрашиваемых объектов URI в списке, разделенном запятыми.
            # otherSubjectAltNames: host #Задает настраиваемые SAN со строкой OID/UTF8.
            toKeystore: "vault:outmetrics.jks" # В какую переменную записывается
            toTruststore: "vault:outmetrics.jks" # В какую переменную записывается
            email: "" # Адрес электронной почты
      - engine: pki # Тип хранилища (kv-ключ:значение, kv_cert-ключ:сертификат, pki-выпуск/подпись сертификатов)
        from: pki # Путь в хранилище
        path: edms # Путь к секретам в указанном engine
        issue: # Блок выпуска сертификатов
          - commonName: AWESOME.LDAP.CERT # Имя сертификата
            ttl: P25D # Время жизни сертификата
            excludeCommonNameFromSubjectAltNames: false # Исключение commonName из altNames
            # altNames: host # Альтернативные имена. Это могут быть имена хостов или адреса электронной почты.
            # ipSubjectAltNames: host # Альтернативные имена запрашиваемых IP-адресов в списке, разделенном запятыми.
            # uriSubjectAltNames: host # Альтернативные имена запрашиваемых объектов URI в списке, разделенном запятыми.
            # otherSubjectAltNames: host # Задает настраиваемые SAN со строкой OID/UTF8.
            # notAfter: _PLACEHOLDER_ # Дата после которой сертификат становится недействительным (в формате YYYY-MM-ddTHH:MM:SSZ)
            toKeystore: "vault:ldap.jks" # В какую переменную записывается
            toTruststore: "vault:ldap.jks" # В какую переменную записывается
            email: "" # Адрес электронной почты
      - engine: pki # Тип хранилища (kv-ключ:значение, kv_cert-ключ:сертификат, pki-выпуск/подпись сертификатов)
        from: pki # Путь в хранилище
        path: edms # Путь к секретам в указанном engine
        issue: # Блок выпуска сертификатов
          - commonName: AWESOME.AUDIT.CERT # Имя сертификата
            ttl: P25D # Время жизни сертификата
            excludeCommonNameFromSubjectAltNames: false # Исключение commonName из altNames
            # altNames: host #Альтернативные имена. Это могут быть имена хостов или адреса электронной почты.
            # ipSubjectAltNames: host #Альтернативные имена запрашиваемых IP-адресов в списке, разделенном запятыми.
            # uriSubjectAltNames: host #Альтернативные имена запрашиваемых объектов URI в списке, разделенном запятыми.
            # otherSubjectAltNames: host #Задает настраиваемые SAN со строкой OID/UTF8.
            # notAfter: _PLACEHOLDER_ # Дата после которой сертификат становится недействительным (в формате YYYY-MM-ddTHH:MM:SSZ)
            toKeystore: "vault:audit.jks" # В какую переменную записывается
            toTruststore: "vault:audit.jks" # В какую переменную записывается
            email: "" # Адрес электронной почты
      - engine: pki # Тип хранилища (kv-ключ:значение, kv_cert-ключ:сертификат, pki-выпуск/подпись сертификатов)
        from: pki # Путь в хранилище
        path: edmn # Путь к секретам в указанном engine
        issue: # Блок выпуска сертификатов
          - commonName: EDMN.KAFKA.CERT  # Имя сертификата
            ttl: P365D # Время жизни сертификата
            excludeCommonNameFromSubjectAltNames: false # Исключение commonName из altNames
            # altNames: host # Альтернативные имена. Это могут быть имена хостов или адреса электронной почты.
            # ipSubjectAltNames: host # Альтернативные имена запрашиваемых IP-адресов в списке, разделенном запятыми.
            # uriSubjectAltNames: host # Альтернативные имена запрашиваемых объектов URI в списке, разделенном запятыми.
            # otherSubjectAltNames: host # Задает настраиваемые SAN со строкой OID/UTF8.
            # notAfter: _PLACEHOLDER_ # Дата после которой сертификат становится недействительным (в формате YYYY-MM-ddTHH:MM:SSZ)
            toKeystore: "vault:kafka.jks" # В какую переменную записывается
            toTruststore: "vault:kafka.jks" # В какую переменную записывается
            email: "" # Адрес электронной почты
  telemetry: # Блок настроек функционала телеметрии EDMN - метрики самой системы мониторинга для контроля времени работы элементов системы
    enabled: false # Флаг доступности функционала телеметрии EDMN, если true - метрики телеметрии доступны

collector: # Блок настроек коллекторов
  distr: collector.zip # Используемый дистрибутив
  installdir: /opt/collectors # Абсолютный путь на конечном сервере до приложения
  logdir: /opt/collectors/logs # Абсолютный путь до дирeктории с логами
  #  backup_installdir_to: /path/to/backup # директория для сохранения бэкап installdir
  backup_not_older_than: 1d # Срок актуальности резервной копии. По умолчанию 1 день. (Может быть в часах 1h 2h 3h и тд или в днях 1d 2d 3d и тд)
  cleanLog: false # Очистка logdir при установке
  #  log_total_size_cap: 1GB # Максимальный размер логов
  xms: 128M # Начальный heap size
  xmx: 1G # Максимальный heap size
  partition: sbrf # Константа из параметров инсталляции (sbrf - для потребителей банка)
  # Дефолтные значения для коллектора
  # Все настройки до списка коллекторов могут быть переопределены любом коллекторе индивидуально
  loglevel: INFO # Уровень вывода логов
  logInputLevel: WARN # Уровень вывода логов метрик при считывании
  logOutputLevel: INFO # Уровень вывода логов метрик при отправке
  logProcessorLevel: WARN # Уровень вывода логов обработки метрик
  systemlogmode: 600 # Права для системных файлов логов
  metricslogmode: 600 # Права для файлов логов метрик
  collectorDescription: # описание коллектора (мониторируемого сервиса)
  monregCi:      # ID КЭ объекта мониторинга для системы централизованного мониторинга (MONREG)
  monregObjType: # тип объекта мониторинга для системы централизованного мониторинга (MONREG)
  monregObjDesc: # описание объекта мониторинга для системы централизованного мониторинга (MONREG)
  livenessEmitRateMs: 15000 # период опроса метрик с ливнесс-пробами по умолчанию (15 сек)
  defaultEmitRateMs: 30000 # период опроса метрик по умолчанию (30 сек)
  collector_check_proccess: 30 # Время ожидания корректности запуска коллектора
  defaultDetailedLoggingRateMs: 600000 # периодичность выдачи детальных логов по метрикам на Sink (10 мин)
  defaultTimeout: Inf # Тайм-аут ожидания успешного получения входных метрик и записи выходных метрик
  resetSslContextOnError: false # включения/отключения сброса sslContext при ошибках соединения
  metricStorage: LocalMetricStorage # тип TimeSeries БД для сохранения выходных метрик (InfluxDbMetricStorage или PrometheusMetricStorage)  или LocalMetricStorage для хранения метрик в памяти (метрики будут доступны для вычитки через REST-эндпоинт, если включен встроенный http-сервер коллектора serverEnabled=true)
  localMetricStorageKeepAliveTimeout: 30000 # период очистки локального буфера метрик в миллисекундах
  localMetricStorageKeepAliveTimeoutFactor: 2.0 # коэффициент-множитель периода очистки локального буфера метрик
  aggregateMetricStorage: LocalMetricStorage # тип TimeSeries БД предназначен для сохранения выходных метрик с агрегацией (InfluxDbMetricStorage, PrometheusMetricStorage) или LocalMetricStorageWithAggregation для хранения метрик с агрегацией в памяти (метрики доступны для вычитки через REST-эндпоинт, если включен встроенный http-сервер коллектора serverEnabled=true)
  flowStartDelayMs: 100 # начальная задержка перед стартом каждого потока сбора метрик в мс
  selfMetricsFlowStatus: active # Параметр для включения сборки собственных метрик: inactive - отключение сбора метрик, active/nonstop - включение сбора метрик
  telemetryFlowStatus: inactive # Параметр для включения телеметрии метрик: inactive - отключение телеметрии, active/nonstop - включение телеметрии

  # ===== Aggregator params =====
  aggregateEmitRateMs: 3000 # Период поступления входных метрик для агрегации в миллисекундах
  aggregateWindowSizeMs: 60000 # Размер временного окна агрегации в миллисекундах
  aggregateWindowSizeUnit: мин. # Метка единиц измерения периода агрегации для отображения на графике
  aggregateMaxDelayMs: 100 # Максимально допустимое отставание метрик для попадания в окно агрегации

  # Настройки http-server
  #  serverPort: __PLACEHOLDER__ # http-порт встроенного server'а коллектора НЕОБХОДИМО ПЕРЕОПРЕДЕЛИТЬ В КОЛЛЕКТОРЕ!
  #  serverSslPort: __PLACEHOLDER__ # https-порт встроенного server'а коллектора НЕОБХОДИМО ПЕРЕОПРЕДЕЛИТЬ В КОЛЛЕКТОРЕ!
  serverKeystorePath: ssl/server.jks # Обязательно для использования server
  serverKeystoreType: JKS # Тип сертификата: JKS, PEM.
  #   serverTruststorePath: ssl/server.jks # Если не указано, то используем serverKeystorePath
  serverTruststoreType: JKS  # Тип сертификата: JKS, PEM.
  serverKeystorePass: __PLACEHOLDER__ # Обязательно пароль для сертфиката
  #   serverKeyPass: __PLACEHOLDER__ # Обязательно пароль для сертфиката
  #   serverTruststorePass: __PLACEHOLDER__ # Если не указано, то используем serverKeystorePass
  serverAuthClientEnabled: false # Флаг включения клиентской авторизации (`логическое`, по умолчанию `true`)
  serverAuthBasicEnabled: false # флаг включения базовой авторизации по логину и паролю
  # список разрешенных учетных данных в формате:
  serverAuthBasicCredentials:
    - login: user1
      password: __PLACEHOLDER__       # Для стандартной авторизации
    - login: user2
      password: vault:__PLACEHOLDER__ # Для авторизации через vault требуется указать префикс vault перед passwordKey
  #  serverAuthBasicVaultSecretPath: kv1/certstore # Путь до хранилища с секретами
  serverSslEndpointIdentificationAlgorithm:
  serverSslProtocol: TLSv1.3 # Используемый ssl-протокол
  serverSslConscrypt: false  # Использование библиотеки Conscrypt
  serverSslAllowedDn:   # Белый список доверенных DN
  serverSslRevocationCheckEnabled: false # Включение проверки клиентского сертификата
  serverSslAllowedDnFile:   # Путь до файла с белым списком доверенных сертификатов
  serverSslVaultPkiPreferLease: true # При установлении параметра в `true`, будет использоваться стандартный 'Default Lease TTL' в качестве периода времени между проверками на обновление сертификата, для использования кастомного механизма необходимо установить параметр в `false` и укажите значение параметра serverSslUpdatePeriod указав время опроса в формате java.time.Duration(Описание и примеры внизу файла)
  serverSslUpdatePeriod: P2D # Период времени между проверками на обновление сертификата в формате java.time.Duration(Описание и примеры внизу файла)
  serverSslVaultPkiRevocationCheckEnabled: false # Включение проверки отзыва сертификата
  serverSslVaultEnabled: false # Включение vault для server
  serverSslVaultSecretPath: kv1/certstore # Путь до хранилища с секретами
  serverSslVaultPkiEnabled: false # Включение генерации сертификата для server
  serverSslVaultPkiMethod: issue # Метод выпуска сертификатов, 'issue' или 'fetch'
  serverSslVaultPkiMount: pki # Путь до движка генерации сертификата
  serverSslVaultPkiMode: pki # Тип использования сертификата pki, kv
  serverSslVaultPkiRoleName: edmn_dev # Роль из под которой выпускается сертификаты в Vault
  serverSslVaultPkiCommonName: AWESOME.SERVER.CERT # CN сертификата
  serverSslVaultPkiEmail:  # Почтовый адрес на который будут приходить уведомления о сертификате
  serverSslVaultPkiAltNames:  # Список альтернативных имен
  serverSslVaultPkiAltIp:  # Список альтернативных IP-адресов
  serverSslVaultPkiTtl:  # Срок годности выпускаемого сертификата. Возможны градации: D - дни, H - часы, M - минуты, S - секунды
  serverSslVaultPkiCsr: # Запрос на сертификат в формате PEM
  serverSslVaultPkiCsrPath: # Путь до файла с запросом на выпуск нового сертификата
  serverSslVaultPkiTrustOnly: # Признак формирования SSLContext только с использованием хранилища доверенных сертификатов
  serverSslVaultPkiMaxWait: 10000  # Максимальное время ожидания момента валидности полученного сертификата в миллисекундах
  serverSslVaultBeforeExpire: PT0S # Промежуток времени до истечения сертификата для его перевыпуска в формате java.time.Duration
  serverSslVaultPemPath: # Путь до Key-Value c pem сертификатом и приватным ключем для него
  serverSslVaultPemName: # Имя поля pem сертификата
  serverSslVaultPemKey: # Имя поля приватного ключа
  serverSslVaultAliasKey: server # alias сертификата
  serverSslVaultAliasCa: ca # alias сертификата
  serverSslVaultKeystore: keystore # Пароль от keystore_хранилища, хранимый в переменной Vault
  serverSslVaultTruststore: truststore # Пароль от truststore_хранилища, хранимый в переменной Vault
  serverSslVaultKey: key # Пароль от key из keystore, хранимый в переменной Vault

  # Настройки influxDB, можно переопределить в коллекторе.
  influxKeystoreType: JKS  # Тип сертификата: JKS, PEM.
  influxKeystorePath: ssl/collector.jks # Обязательно, если используем Influx
  #  influxTruststorePath: ssl/collector.jks # Обязательно, если используем Influx
  influxKeystorePass: __PLACEHOLDER__ # Обязательно, если используем Influx
  #  influxKeyPass: __PLACEHOLDER__# Обязательно, если используем Influx
  #  influxTruststorePass: __PLACEHOLDER__ # Обязательно, если используем Influx
  influxTruststoreType: JKS # Тип сертификата: JKS, PEM.
  influxSslSkipHostname: false # Отключение верификации хоста
  influxSslEndpointIdentification: # dn, https
  influxSslProtocol: TLSv1.3 # Используемый ssl-протокол
  influxSslAllowedDn:  # Список разрешенных dn
  influxSslAllowedDnFile: # Путь до файла со списком разрешенных dn
  influxSslVaultEnabled: false # Включение vault для influx
  influxSslVaultSecretPath: kv1/certstore # Путь до хранилища с секретами
  influxSslVaultPkiEnabled: false # Включение генерации сертификата для influx
  influxSslVaultPkiMount: pki # Путь до движка генерации сертификата
  influxSslVaultPkiMode: pki # Тип использования сертификата pki, kv
  influxSslVaultPkiMethod: issue # Метод выпуска сертификатов, 'issue' или 'fetch'
  influxSslVaultPkiRoleName: default # Роль из под которой выпускается сертификаты в Vault
  influxSslVaultPkiCommonName: AWESOME.INFLUXDB.CERT # CN сертификата
  influxSslVaultPkiEmail: '' # Почтовый адрес на который будут приходить уведомления о сертификате
  influxSslVaultPkiAltNames: '' # Список альтернативных имен
  influxSslVaultPkiAltIp: '' # Список альтернативных IP-адресов
  influxSslVaultPkiTtl: '' # Срок годности выпускаемого сертификата. Возможны градации: D - дни, H - часы, M - минуты, S - секунды
  influxSslVaultPkiCsr:   # Генерация сертификата Csr
  influxSslVaultPkiCsrPath: # Путь до сертификата Csr
  influxSslVaultPkiTrustOnly: # Путь до файла с запросом на выпуск нового сертификата
  influxSslVaultPkiMaxWaitTime: 10000 # Максимальное время ожидания момента валидности полученного сертификата в миллисекундах
  influxSslVaultPkiPreferLease: true # При установлении параметра в `true`, будет использоваться стандартный 'Default Lease TTL' в качестве периода времени между проверками на обновление сертификата, для использования кастомного механизма необходимо установить параметр в `false` и укажите значение параметра influxSslUpdatePeriod указав время опроса в формате java.time.Duration(Описание и примеры внизу файла)
  influxSslUpdatePeriod: P2D # Период времени между проверками на обновление сертификата в формате java.time.Duration(Описание и примеры внизу файла)
  influxSslVaultPkiRevocationCheckEnabled: false # Включение проверки отзыва сертификата
  influxSslVaultBeforeExpire: PT0S # Промежуток времени до истечения сертификата для его перевыпуска в формате java.time.Duration
  influxSslVaultPemPath: # Путь до Key-Value c pem сертификатом и приватным ключем для него
  influxSslVaultPemName: # Имя поля pem сертификата
  influxSslVaultPemKey: # Имя поля приватного ключа
  influxSslVaultAliasKey: influxdb # alias сертификата
  influxSslVaultAliasCa: ca # alias сертификата
  influxSslVaultKeystore: keystore # Пароль от keystore_хранилища, хранимый в переменной Vault
  influxSslVaultTruststore: truststore # Пароль от truststore_хранилища, хранимый в переменной Vault
  influxSslVaultKey: key # Пароль от key из keystore, хранимый в переменной Vault

  # jmx
  jmxUser: user # пользователь к jmx
  jmxPassword: password # пароль к jmx

  # kafka
  kafkaAdminTimeoutMs: 10000 # Тайм-аут при обращении к серверам Kafka через AdminClient API в ms
  kafkaCloseTimeout: 1000 # Время ожидания перед завершением клиентского соединения kafka
  kafkaSslProtocol: TLSv1.3 # Используемый ssl-протокол
  kafkaSecurityProtocol: SSL # Протокол безопасности
  kafkaSslEnabledProtocol: TLSv1.2,TLSv1.3 # Перечень допустимых протоколов SSL-соединения
  kafkaSslCipherSuites: # Перечень допустимых алгоритмов шифрования SSL-соединения
  kafkaEndpointAlgorithm: "https" # Алгоритм проверки хоста подключения: "''" - проверка отключена, https - проверка включена, по умолчанию проверка включена (и в SAN сертификата на брокере должен быть указан DNS-хоста брокера !!!)
  kafkaSslKeystoreType: JKS # Тип сертификата: JKS, PEM.
  kafkaSslTruststoreType: JKS # Тип сертификата: JKS, PEM.
  kafkaSslRevocationCheckEnabled: false # Включение проверки клиентского сертификата
  # kafkaKeystorePath: ssl/kafka.jks # Необязательно, если не kafka коллектор. Может быть переназначено в коллекторе
  # kafkaTruststorePath: ssl/kafka.jks # Необязательно, если не kafka коллектор. Если не указано, то используем kafkaKeystorePath
  # kafkaKeystorePass: __PLACEHOLDER__
  # kafkaTruststorePass: __PLACEHOLDER__ # Если не указано, то используем kafkaKeystorePass
  # kafkaKeyPass: __PLACEHOLDER__ # Если не указано, то используем kafkaKeystorePass
  # ssl from VAULT:
  kafkaSslVaultParamSslKeystore: kafka.jks # Путь до хранилищ сертификатов, сгенерированных vault
  kafkaSslVaultParamSsltruststore: kafka.jks # Путь до хранилищ сертификатов, сгенерированных vault
  kafkaSslVaultEnabled: false # Включение vault для kafka
  kafkaSslVaultClass: ru.sbt.ss.kafka.VaultConfigProvider # Используемый класс vault
  kafkaSslVaultSecretPath: kv1/certstore # Путь до хранилища с секретами
  kafkaSslVaultSecretKey: key # Пароль от key из keystore, хранимый в переменной Vault
  kafkaSslVaultSecretKeystore: keystore # Пароль от keystore_хранилища, хранимый в переменной Vault
  kafkaSslVaultSecretTruststore: truststore # Пароль от truststore_хранилища, хранимый в переменной Vault
  kafkaSslVaultPkiEnabled: false # Включение генерации сертификата
  kafkaSslVaultPkiMethod: issue # Метод выпуска сертификатов, 'issue' или 'fetch'
  kafkaSslVaultPkiMount: pki # Путь до движка генерации сертификата
  kafkaSslVaultPkiRoleName: default # Роль из под которой выпускается сертификаты в Vault
  kafkaSslVaultPkiCommonName: AWESOME.KAFKA.CERT # CN сертификата
  kafkaSslVaultPkiEmail:  # Почтовый адрес на который будут приходить уведомления о сертификате
  kafkaSslVaultPkiAltNames: # Список альтернативных имен
  kafkaSslVaultPkiAltIp: # Список альтернативных IP-адресов
  kafkaSslVaultPkiPreferLease: true # При установлении параметра в `true`, будет использоваться стандартный 'Default Lease TTL' в качестве периода времени между проверками на обновление сертификата, для использования кастомного механизма необходимо установить параметр в `false` и укажите значение параметра kafkaSslUpdatePeriod указав время опроса в формате java.time.Duration(Описание и примеры внизу файла)
  kafkaSslUpdatePeriod: P2D # Период времени между проверками на обновление сертификата в формате java.time.Duration(Описание и примеры внизу файла)
  kafkaSslVaultPkiRevocationCheckEnabled: false # Включение проверки отзыва сертификата
  kafkaSslVaultPkiTtl: # Срок годности выпускаемого сертификата. Возможны градации: D - дни, H - часы, M - минуты, S - секунды
  kafkaSslVaultAliasKey: kafka # alias сертификата
  kafkaSslVaultAliasCa: ca # alias сертификата
  kafkaSslVaultKeystore: keystore # Пароль от keystore_хранилища, хранимый в переменной Vault
  kafkaSslVaultTruststore: truststore # Пароль от truststore_хранилища, хранимый в переменной Vault
  kafkaSslVaultKey: key # Пароль от key из keystore, хранимый в переменной Vault

  # Параметры для коллектора edmn-all
  edmnAllBootstrapJmx: host:port # Список jmx серверов UI Мониторинга
  prometheusBootstrap: host:port # Список бутстрапов Prometheus
  metricsUrl: metrics # uri Prometheus для получения собственных метрик
  metricsFlowStatus: inactive # Параметр для включения сборки метрик prometheus: inactive - отключение сбора метрик, active/nonstop - включение сбора метрик
  prometheusUsername: prometheus # Имя пользователя для подключения к Prometheus
  prometheusPassword: __PLACEHOLDER__ # Пароль пользователя для подключения к Prometheus
  prometheusSslEnabled: true # Включение/выключение ssl prometheus
  prometheusSkipHostnameVerify: false # Отключить проверку имен хоста Prometheus
  prometheusEndpointAlgorithm: # Алгоритм проверки хоста подключения: "''" - проверка отключена, https - проверка включена, по умолчанию проверка включена (и в SAN сертификата на брокере должен быть указан DNS-хоста брокера !!!)
  prometheusKeystorePath: ssl/prometheus.jks # Путь до сертификата
  prometheusKeystoreType: JKS # Тип сертификата
  prometheusKeystorePassword: __PLACEHOLDER__ # Пароль для сертификата
  prometheusKeyPassword: __PLACEHOLDER__ # Пароль для сертификата
  prometheusTruststorePath: ssl/prometheus.jks # Путь до сертификата
  prometheusTruststoreType: JKS # Тип сертификата
  prometheusTruststorePassword: __PLACEHOLDER__ # Пароль для сертификата
  prometheusConscrypt: false # Использование библиотеки Conscrypt
  prometheusAllowdDn: # Список разрешенных dn
  prometheusAllowdDnFile: # Путь до файла со списком разрешенных dn
  prometheusSslVaultEnabled: false # Включение/выключение vault для prometheus
  prometheusVaultSecretPath: kv1/edmn/collector/prometheus # Путь до секретов в vault
  prometheusVaultSecretkeystore: keystore # Пароль от keystore_хранилища, хранимый в переменной Vault
  prometheusVaultSecretkey: key # Пароль от key из keystore, хранимый в переменной Vault
  prometheusVaultSeretTruststore: truststore # Пароль от truststore_хранилища, хранимый в переменной Vault
  prometheusVaultAliasKey: edmn-all # alias сертификата
  prometheusVaultAliasCa: ca # alias сертификата
  prometheusVaultPkiMode: pki # Тип использования сертификата pki, kv
  prometheusVaultPkiMethod: issue # Метод выпуска сертификатов, 'issue' или 'fetch'
  prometheusVaultPkiMount: pki # Путь до движка генерации сертификата
  prometheusVaultPkiRoleName: default # Роль из под которой выпускается сертификаты в Vault
  prometheusVaultPkiCommonName: AWESOME.PROMETHEUS.CERT # CN сертификата
  prometheusVaultPkiEmail: # Почтовый адрес на который будут приходить уведомления о сертификате
  prometheusVaultPkiAltName: # Список альтернативных имен
  prometheusVaultPkiAltIp: # Список альтернативных IP-адресов
  prometheusVaultPkiTtl: # Срок годности выпускаемого сертификата. Возможны градации: D - дни, H - часы, M - минуты, S - секунды
  prometheusVaultPkiCsr: # Запрос на сертификат в формате PEM
  prometheusVaultPkiCsrPath: # Путь до файла с запросом на выпуск нового сертификата
  prometheusVaultPkitrustOnly: # Признак формирования SSLContext только с использованием хранилища доверенных сертификатов
  prometheusSslVaultPkiPreferLease: true # При установлении параметра в `true`, будет использоваться стандартный 'Default Lease TTL' в качестве периода времени между проверками на обновление сертификата, для использования кастомного механизма необходимо установить параметр в `false` и укажите значение параметра prometheusSslUpdatePeriod указав время опроса в формате java.time.Duration(Описание и примеры внизу файла)
  prometheusSslUpdatePeriod: P2D # Период времени между проверками на обновление сертификата в формате java.time.Duration(Описание и примеры внизу файла)
  prometheusSslVaultPkiRevocationCheckEnabled: false # Включение проверки отзыва сертификата
  prometheusVaultPkiMaxWaitTime: 10000 # Максимальное время ожидания момента валидности полученного сертификата в миллисекундах
  prometheusVaultBeforeExpire: PT0S # Промежуток времени до истечения сертификата для его перевыпуска в формате java.time.Duration
  prometheusVaultPemPath: # Путь до Key-Value c pem сертификатом и приватным ключем для него
  prometheusVaultPemName: # Имя поля pem сертификата
  prometheusVaultPemKey: # Имя поля приватного ключа

  # Настройки Событийного домена, могут быть переопределены в настройках коллектора индивидуально
  segment: CLOUD # Сегмент, может быть переопределен в настройках коллектора индивидуально
  federation: Common # Федерация, может быть переопределена в настройках коллектора индивидуально
  domain: K2_DomainExample # Домен, может быть переопределена в настройках коллектора индивидуально

  # tengri
  tengriBootstrapServers: "host1:9093,host2:9093" # список брокеров Kafka-кластера tengri вида "host1:port,host2:port, ..."
  tengriTopic: LOGGER.REST # Топик в кафке для tengri
  # tengriKeystorePath: ssl/tengri.jks # Необязательно, если не tengri коллектор. Может быть переназначено в коллекторе
  # tengriTruststorePath: ssl/tengri.jks #  Необязательно, если не tengri коллектор. Если не указано, то используем tengriKeystorePath
  # tengriKeystorePass: __PLACEHOLDER__
  # tengriTruststorePass: __PLACEHOLDER__ # если не указано, то используем tengriKeystorePass
  # tengriKeyPass: __PLACEHOLDER__ # если не указано, то используем tengriKeystorePass
  tengriSslRevocationCheckEnabled: false # Включение проверки клиентского сертификата
  tengriSslVaultEnabled: false # Включение vault для tengri
  tengriSslVaultSecretPath: kv1/certstore # Путь до хранилища с секретами
  tengriSslVaultPkiEnabled: false # Включение генерации сертификата
  tengriSslVaultPkiMount: pki # Путь до движка генерации сертификата
  tengriSslVaultPkiMethod: issue # Метод выпуска сертификатов, 'issue' или 'fetch'
  tengriSslVaultPkiRoleName: default # Роль из под которой выпускается сертификаты в Vault
  tengriSslVaultPkiCommonName: AWESOME.tengri.CERT # CN сертификата
  tengriSslVaultPkiEmail:  # Почтовый адрес на который будут приходить уведомления о сертификате
  tengriSslVaultPkiAltNames: # Список альтернативных имен
  tengriSslVaultPkiAltIp: # Список альтернативных IP-адресов
  tengriSslVaultPkiTtl: # Срок годности выпускаемого сертификата. Возможны градации: D - дни, H - часы, M - минуты, S - секунды
  tengriSslVaultPkiPreferLease: true # При установлении параметра в `true`, будет использоваться стандартный 'Default Lease TTL' в качестве периода времени между проверками на обновление сертификата, для использования кастомного механизма необходимо установить параметр в `false` и укажите значение параметра tengriSslUpdatePeriod указав время опроса в формате java.time.Duration(Описание и примеры внизу файла)
  tengriSslUpdatePeriod: P2D # Период времени между проверками на обновление сертификата в формате java.time.Duration(Описание и примеры внизу файла)
  tengriSslVaultPkiRevocationCheckEnabled: false # Включение проверки отзыва сертификата
  tengriSslVaultAliasKey: tengri # alias сертификата
  tengriSslVaultAliasCa: ca # alias сертификата
  tengriSslVaultKeystore: keystore # Пароль от keystore_хранилища, хранимый в переменной Vault
  tengriSslVaultTruststore: truststore # Пароль от truststore_хранилища, хранимый в переменной Vault
  tengriSslVaultKey: key # Пароль от key из keystore, хранимый в переменной Vault
  tengriSslVaultParamSslKeystore: tengri.jks # Путь до хранилищ сертификатов, сгенерированных vault
  tengriSslVaultParamSsltruststore: tengri.jks # Путь до хранилищ сертификатов, сгенерированных vault
  tengriSslVaultSecretKey: key # Пароль от key из keystore, хранимый в переменной Vault
  tengriSslVaultSecretKeystore: keystore # Пароль от keystore_хранилища, хранимый в переменной Vault
  tengriSslVaultSecretTruststore: truststore # Пароль от truststore_хранилища, хранимый в переменной Vault
  tengriSslKeystoreType: JKS # Тип сертификата: JKS, PEM.
  tengriSslTruststoreType: JKS # Тип сертификата: JKS, PEM.
  tengriSecurityProtocol: SSL # протокол безопасности
  tengriSslProtocol: TLSv1.3 # используемый ssl-протокол
  tengriSslEnabledProtocol: TLSv1.2,TLSv1.3 # перечень допустимых протоколов SSL-соединения
  tengriSslCipherSuites: # перечень допустимых алгоритмов шифрования SSL-соединения
  tengriEndpointAlgorithm: # алгоритм проверки хоста подключения

  # списки хостов-портов вида "host1:port,host2:port, ..."
  artemisBootstrapJmx: "" # список jmx хостов-портов артемиса
  kafkaBootstrapJmx: "" # список jmx хостов-портов Kafka
  replicatorBootstrapJmx: "" # список jmx хостов-портов репликатора
  evtaBootstrapJmx: "" # список jmx хостов-портов evta
  flinkTaskManagersJmx: "" # список jmx хостов-портов Flink таскменеджеров
  flinkJobManagersJmx: "" # список jmx хостов-портов Flink джобменеджеров
  kafkaBootstrapServers: "" # список брокеров Kafka-кластера

  vault:
    enabled: false # Включение vault
    vaultUrl: https://vault.url/ # address для подключения к vault (можно опустить `https://`)
    vaultNamespace: # Пространство в vault
    vaultRetries: 1 # Количество попыток подключения к vault
    vaultTimeout: 3 # Тайм-аут ожидания подключения к vault
    vaultVersion: 1  # Версия vault
    vaultRetryInterval: 500 # Интервал следующей попытки подключения к vault(мс)
    vaultREPLICATORUserPasswordPath: kv1/edmn/collector/replicator/jmx # путь до секрета jmxPassword для replicator
    vaultREPLICATORUserPasswordKey: jmxReplicatorPassword # имя секрета jmxPassword для replicator
    vaultKAFKAUserPasswordPath: kv1/edmn/collector/kafka/jmx # путь до секрета jmxPassword для Kafka
    vaultKAFKAUserPasswordKey: _PLACEHOLDER_ # имя секрета jmxPassword для Kafka
    vaultINFLUXUserPasswordPath: kv1/edmn/collector/influx # путь до секрета userPassword для influx
    vaultINFLUXUserPasswordKey: influxPassword # имя секрета userPassword для influx
    vaultFLINKUserPasswordPath: kv1/edmn/collector/flink/jmx # путь до секрета jmxPassword для flink
    vaultFLINKUserPasswordKey: _PLACEHOLDER_ # имя секрета jmxPassword для Flink
    vaultARTEMISUserPasswordPath: kv1/edmn/collector/artemis/jmx # путь до секрета jmxPassword для Artemis
    vaultARTEMISUserPasswordKey: _PLACEHOLDER_ # имя секрета jmxPassword для Artemis
    vaultEDMNALLUserPasswordPath: kv1/edmn/collector/self/jmx # путь до секрета jmxPassword для edmn-all
    vaultEDMNALLUserPasswordKey: _PLACEHOLDER_ # имя секрета jmxPassword для edmn-all
    vaultEVTAUserPasswordPath: kv1/edmn/collector/artemis/jmx # путь до секрета jmxPassword для artemis
    vaultEVTAUserPasswordKey: _PLACEHOLDER_ # имя секрета jmxPassword для Artemis
    ssl:     # ssl access to Vault:
      cacheUpdatePeriod: 10 min # время хранения в локальном кеше секретов без их повторного считывания из Vault (в формате 'Duration')
      rateLimitTimeout: 10 sec # допустимый интервал времени между повторными попытками обращения к Vault за одним и тем же секретом, используется для предотвращения возможной "перегрузки" сервиса Vault частыми запросами (в формате 'Duration')
      rateLimitMaxTimeoutFactor: 100 # предельное значение коэффициента увеличения допустимого интервала времени между повторными попытками обращения к Vault, относительно начального значения из 'rateLimitTimeout'
      enabled: true # Использовать ssl при подключении к vault
      vaultSslProtocol: TLSv1.2 # используемый ssl-протокол
      vaultSslKeystoreType: JKS # Тип сертификата: JKS, PEM.
      vaultSslKeyPassword: _PLACEHOLDER_ # Пароль для сертификата подключения к vault
      vaultSslKeystoreLocation: ssl/vault.jks # Сертификат дял подключения к vault
      vaultSslKeystorePassword: _PLACEHOLDER_ # Пароль для сертификата подключения к vault
      vaultSslTruststoreType: JKS # Тип сертификата: JKS, PEM.
      vaultSslTruststoreLocation: ssl/vault.jks # Сертификат дял подключения к vault
      vaultSslTruststorePassword: __PLACEHOLDER__ # Пароль для сертификата подключения к vault
      vaultSslVaultPkiMethod: issue # Метод выпуска сертификатов, 'issue' или 'fetch'
      vaultSslVaultPkiPreferLease: true # При установлении параметра в `true`, будет использоваться стандартный 'Default Lease TTL' в качестве периода времени между проверками на обновление сертификата, для использования кастомного механизма необходимо установить параметр в `false` и укажите значение параметра vaultSslUpdatePeriod указав время опроса в формате java.time.Duration(Описание и примеры внизу файла)
      vaultSslUpdatePeriod: P2D # Период времени между проверками на обновление сертификата в формате java.time.Duration(Описание и примеры внизу файла)
      vaultSslVaultPkiRevocationCheckEnabled: false # Включить проверку отзыва сертификата
      vaultSslEndpointIdentificationAlgorithm: '' # Алгоритм проверки хоста подключения
      vaultSslConscrypt: false  # Использование библиотеки Conscrypt
      vaultSslAllowedDn: # Список разрешенных dn
      vaultSslAllowedDnFile: # Путь до файла со списком разрешенных dn

    vaultAuthType: approle # [approle, token, password, certificate] `approle` for default
    vaultAuthRoleId: "role_id" # role_id для авторизации в vault
    vaultAuthRoleSecret: "role_secret" # role_secret для авторизации в vault
    vaultAuthRoleMount: # Путь до API аутентификации в Vault
    #vaultAuthType: token # Тип для авторизации в vault
    #vaultAuthToken: __placeholder__ # token для авторизации в vault
    #vaultAuthTokenMount:__placeholder__

    #vaultAuthType: password # Тип для авторизации в vault
    #vaultAuthUsername=test # Пользователь для авторизации в vault
    #vaultAuthPassword=__placeholder__ # Пароль для авторизации в vault

    #vaultAuthType: certificate # Тип для авторизации в vault
    #vaultAuthPasswordMount=__placeholder__
    #vaultAuthCertificateMount=__placeholder__
  list:
#    <Произвольное название коллектора>: # Название коллектора
#      service_name: <Произвольное название сервиса коллектора> # Наименование сервиса
#      type: <Необходимо указать тип коллектора> # тип: kafka, flink, replicator, artemis, replicator-tengri, flink-tengri, edmn-all, evta
#      custom_config: false # Добавление кастомного конифига.*
#      config: <Тип коллектора>-metrics.conf # Наименование конфигурационного файла с метриками.
#      application: <Тип коллектора>-application.conf ## Наименование конфигурационного файла приложения.
#      serverSslPort: 8020 # Порт SSL для подключения к коллектору
#      serverPort: 8021 # Порт для подключения к коллектору
#      extraConfig: true # Добавление common-конфигурации(Используется с версии 4.0), при установки ранних релизов необходимо отключить. по умолчанию true
#      jmx: # Блок настроек jmx
#        enabled: true # Включение/выключение параметров jmx
#        jmxPort: port # jmx порт коллектора
#        authenticateEnabled: true # Включение/выключение аутентификации
#        jmxUser: user # Пользователь для подключения к jmx
#        jmxPassword: password # Пароль для подключения к jmx
#        jmxAccess: readonly # Права доступа к метрикам: readonly, readwrite

# * - Конфиг должен лежать в /inventories/Ваш инвентори/config, должен иметь название из параметра коллектора 'config'. например: "kafka-metrics.conf"

########### java.time.Duration #############
# В значении допустимы заглавные буквы P, D, T, H, M и S, которые являются обозначениями для каждого из элементов даты и времени. Вначале должна идти буква P, обозначающая продолжительность (для периода), а затем числовое значение с буквой указывающей на дату и время:
#
#  D - обозначение дня, которое следует за значением количества календарных дней.
#  T - обозначение времени, которое предшествует временным компонентам представления.
#  H - обозначение часа, которое следует за значением количества часов.
#  M - обозначение минуты, которое следует за значением количества минут.
#  S - второе обозначение, которое следует за значением количества секунд.
#
#  "20.345 seconds"                 -- "PT20.345S
#  "15 minutes" (15 * 60 seconds)   -- "PT15M"
#  "10 hours" (10 * 3600 seconds)   -- "PT10H"
#  "2 days" (2 * 86400 seconds)     -- "PT48H", "P2D"
#  "2 days 15 minutes"		       -- "P2DT15M"

influxdb:
  distr: influxdb.tar.gz      # Путь до приложения относительно /files
  installdir: /opt/influxdb   # Абсолютный путь на конечном сервере до приложения
  datadir: /opt/influxdb_data  # Абсолютный путь к дирeктории с логами
  #backup_installdir_to: /path/to/backup # Директория для сохранения бекапа installdir
  #backup_datadir_to: /path/to/data_backup # Директория для сохранения бекапа datadir
  cleanData: false # Очистка базы
  service_name: influxdb # Наименование сервиса для старт-стопа
  setup:
    token: _PLACEHOLDER_      # Пароль пользователя admin, используется только при начальной установке
    realm: some_name           # Наименование организации для инстанса influxdb
    database: metrics         # БД для сбора метрик
    username: metrics         # Логин пользователя для доступа к бд
    password: _PLACEHOLDER_   # Пароль пользователя для доступа к бд
    retentionDuration: 14d    # Время хранения в бд
    retentionPolicy: autogen  # retention policy by default
  # Внимание: Перед использованием influxdb желательно добавить сертификаты банка в доверенные!
  # Без данного шага необходимо использовать флаг --skip-verify во всех командах influxdb
  # openssl x509 -inform der -in test\ Test\ Issuing\ CA\ 2.cer -out test.pem
  # openssl x509 -inform der -in Test\ Root\ CA\ 2.cer -out root.pem
  # sudo cp test.pem /etc/pki/ca-trust/source/anchors/
  # sudo cp root.pem /etc/pki/ca-trust/source/anchors/
  # sudo update-ca-trust
  keystore_path: ssl/influxdev.jks # путь от inventories/_стенд_/ до файла с keyStore
  keystore_password: _PLACEHOLDER_ # пароль от keyStore
#  truststore_path: ssl/influxdb.jks # если не указано, то используем keystore_path
#  truststore_password: _PLACEHOLDER_ # если не указано, то используем keystore_password
#  key_password: _PLACEHOLDER_ # пароль от private key, если не указано, то используем keystore_password

prometheus:
  distr: prometheus.tar.gz # путь до приложения относительно /files
  installdir: /opt/prometheus # абсолютный путь на конечном сервере до приложения
  datadir: /opt/prometheus_data # абсолютный путь до директории с данными
  logdir: /opt/prometheus_log # абсолютный путь к дирeктории с логами
  #  backup_installdir_to: /path/to/backup # директория для сохранения бэкап installdir
  #  backup_datadir_to: /path/to/data_backup # директория для сохранения бэкап datadir
  cleanData: false # очистка datadir при установке
  cleanLog: false # очистка logdir при установке
  keystore_path: ssl/prometheus.keystore.jks # путь от inventories/_стенд_/ до файла с keyStore
  keystore_password: _PLACEHOLDER_ # пароль от keyStore
  truststore_path: ssl/prometheus.truststore.jks # путь от inventories/_стенд_/ до файла с trustStore
  truststore_password: _PLACEHOLDER_ # пароль от trustStore
  port: 9090 # порт по которому доступен prometheus
  service_name: prometheus # Наименование сервиса для старт-стопа
  #data_retention_time: 15d # Время хранения данных указывать не менее 5 дней.

  # scrape_username: 'prometheus' # имя пользователя для получения метрик
  # scrape_password: '{{ prometheus_scrape_password }}' # пароль для получения метрик
  # scrape_password_hash: '$2y$05$7R3GHfByTHp0XPwpOMazre5DSJj2DmeMmtbNJcmfQWVLvMSDxaFXG' # 'bcrypt' hash пароля для получения метрик
  # #scrape_interval: 15s # интервал получения метрик

  # Server policy for client authentication. Maps to ClientAuth Policies.
  # For more detail on clientAuth options:
  # https://golang.org/pkg/crypto/tls/#ClientAuthType
  #
  # NOTE: If you want to enable client authentication, you need to use
  # RequireAndVerifyClientCert. Other values are insecure.
  #
  #client_auth_type: NoClientCert
  #client_auth_type: RequireAndVerifyClientCert
  #client_auth_type: RequireAnyClientCert

  # Usernames and password hashes to connect with full access to Prometheus web server via basic authentication.
  # Passwords shall be hashed with bcrypt: https://github.com/prometheus/exporter-toolkit/blob/master/docs/web-configuration.md#about-bcrypt
  # Missing or empty 'basic_auth_users' permits login without authorization
  #
  # to get 'htpasswd' utility:
  # yum install httpd-tool
  #
  # to encrypt password:
  # echo -n "password" | htpasswd -inB '' | tr -d ':\n'
  #
  #basic_auth_users:
  #  admin: $2a$04$ahtQJA91bTQX9MTas5M2EeMgKuvukNhfOj4CVATEXKGy8/msEJqu.
  #  dev_user: "$2y$10$pWMKFWb0PfNnxu9pkuUOveF1QUiUoechsE0g6ZbUBZrM4NbHt7F32"
  #  eda: $2y$10$QoTwDYbwtbEeSTmoHrPWjOxbVM97C0ZirABFTRgx/XH6TjN7RzaRO

При необходимости раскомментировать нужные блоки.