Подготовка окружения EDMN#
Получение скриптов развертывания Ansible#
Скачать и разархивировать дистрибутив ./EDMN-scripts-{version}-distrib.zip, содержащий ansible роли и Jenkins скрипты развертывания.
При установке с помощью ansible: поместить содержимое директории
Ansibleна сервер, с которого будет производиться установка.При установке через Jenkins: поместить директории
AnsibleиPipelineв корень Git-репозитория.
Общие пререквизиты установки#
Установить пакеты или проверить, что пакеты установлены: Java, Unzip, Ansible (необходимо установить на сервер, с которого будет производиться установка).
Для работы компонента EDMN возможно использование БД (Platform V Pangolin SE). База данных с созданной схемой
edmn. Пользователи и пароли от БД с правами на чтение и запись в эту схему необходимо уточнить у администратора БД.Для работы компонента EDMN необходимо установить Prometheus, InfluxDB или Victoria Metrics, данное ПО не поставляется в дистрибутиве.
Создать для каждого компонента отдельного пользователя и дать им права на чтение и запись соответствующих директорий установки/логов/данных.
Создать системные и пользовательские сервисы обслуживания согласно подразделу «Создание системных и пользовательских сервисов обслуживания».
Создать JKS хранилище с сертификатом, подписанным УЦ, доверенным для всех клиентов.
Убедиться, что получены все дистрибутивы компонента, указанные в разделе Состав дистрибутива и информация о дистрибутиве 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:
Дать возможность пользовательским сервисам работать как долговременные, выполнив команды:
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#
Необходимо заполнить настройки inventory из раздела из подраздела «Настройка inventory».
Выбрать соответствующий 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.
В параметре
only_on_hostвыбрать необходимый сервер.Запустить работу Jenkins Job.
Проверить статус выполнения Jenkins Job. Для успешной работы должно быть — «Finished: SUCCESS».
Создание системного сервиса с помощью ansible#
Под пользователем monitoring выполнить действия:
Создать файл monitoring.service:
sudo /bin/sudoedit /etc/systemd/system/monitoring.service`
Заполнить созданный файл:
[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».
Для инициализации сервиса выполнить команду:
sudo systemctl daemon-reload
Создание пользовательского сервиса обслуживания EDMN с помощью ansible#
Под пользователем monitoring выполнить действия:
Создать файл сервиса
~/.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».
Для инициализации сервиса выполнить команду:
sudo systemctl --user daemon-reload
Создание системного сервиса обслуживания etcd с помощью ansible#
Под пользователем etcd выполнить действия:
Создать файл etcd.service:
sudo /bin/sudoedit /etc/systemd/system/etcd.service
Заполнить созданный файл:
[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».
Для инициализации сервиса выполнить команду:
sudo systemctl daemon-reload
Создание пользовательского сервиса обслуживания etcd с помощью ansible#
Под пользователем etcd выполнить действия:
Создать файл сервиса
~/.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».
Для инициализации сервиса выполнить команду:
sudo systemctl --user daemon-reload
Создание системного сервиса обслуживания InfluxDB с помощью ansible#
Под пользователем influx выполнить действия:
Создать файл influxdb.service:
sudo /bin/sudoedit /etc/systemd/system/influxdb.service
Заполнить созданный файл:
[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».
Для инициализации сервиса выполнить команду:
sudo systemctl daemon-reload
Создание пользовательского сервиса обслуживания InfluxDB с помощью ansible#
Под пользователем influx выполнить действия:
Создать файл сервиса
~/.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».
Для инициализации сервиса выполнить команду:
sudo systemctl --user daemon-reload
Создание системного сервиса обслуживания collector с помощью ansible#
Под пользователем collector выполнить действия:
Создать файл collector.service командой:
sudo /bin/sudoedit /etc/systemd/system/collector.service
Заполнить созданный файл:
[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».
Для инициализации сервиса выполнить команду:
sudo systemctl daemon-reload
Создание пользовательского сервиса обслуживания collector с помощью ansible#
Под пользователем collector выполнить действия:
Создать файл сервиса ~/.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».
Для инициализации сервиса выполнить команду:
sudo systemctl --user daemon-reload
Создание системного сервиса обслуживания Prometheus с помощью ansible#
Под пользователем prometheus выполнить действия:
Создать файл prometheus.service:
sudo /bin/sudoedit /etc/systemd/system/prometheus.service
Будет создан файл 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».
Для инициализации сервиса выполнить команду:
sudo systemctl daemon-reload
Создание пользовательского сервиса обслуживания Prometheus с помощью ansible#
Под пользователем prometheus выполнить действия:
Создать файл сервиса ~/.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».
Для инициализации сервиса выполнить команду:
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#
Создать новую директорию в папке
Ansible/inventoriesGit-репозитория, задать название директории и заполнить по примеру директорииEXAMPLE.В созданной папке должны находиться следующие элементы:
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
├──...
В файл
inventoryдобавить список серверов, на которые будет производиться установка.
Описание параметров и возможных значений:
Файл конфигурации |
Параметры блока |
Описание |
Возможное значение |
|---|---|---|---|
|
- |
- |
Файл настроек host подключения |
|
Список host monitoring |
Например: |
|
|
Список host collector |
Например: |
|
|
Список host InfluxDB |
Например: |
|
|
Список host etcd |
Например: |
|
|
Список host Prometheus |
Например: |
Пример:
[monitoring]
hostname1
hostname2
[collector]
hostname1
hostname2
[influxdb]
hostname1
hostname2
[etcd]
hostname1
hostname2
[prometheus]
hostname1
hostname2
Перейти к заполнению файла vars.yml в директории
group_vars/all. Заполнять по аналогии с файлом vars.yml в папкеEXAMPLEи подразделом «Пример заполненного файла vars.yml».
Весь список настраиваемых параметров с комментариями представлен в файлах ./roles/*{название компонента}/defaults/main.yml.
inventories/<название вашей директории>/group_vars/all/vars.yml – указываются настройки параметров для установки.
Перейти к заполнению файла vault.yml в директории
group_vars/all.
При заполнении файла vars.yml необходимо зашифровать указываемые в нем пароли с помощью механизма ansible-vault и занести их в файл vault.yml. Подробнее в разделе Использование утилиты «ansible-vault» для шифрования паролей.
Подложить используемые сертификаты в директорию
ssl. Создание хранилищ с сертификатами выполнять в соответствии с разделом Управление ключами и сертификатами.
Создание Jenkins Job для автоматической установки#
Данный подраздел подготовки окружения относится только к разделу Установка EDMN, подраздел «Автоматическая установка с использованием Jenkins».
Настройка credentials для Ansible-Vault#
Создать файл с паролем, с помощью которого при автоматической установке будут расшифровываться пароли, зашифрованные через ansible-vault в параметрах vars.yml выбранного inventory.

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

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

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

После перехода будут доступны поля для заполнения:
«Kind» — в выпадающем списке выбрать параметр Secret file;
«File» — загрузить созданный файл с паролем;
«ID» — указать наименование, которое необходимо придумать самостоятельно (данный ID необходимо будет указать в job monitoring_custom в параметре
vault_cred);«Description» — необязательное поле, в котором можно добавить описание.
Нажать кнопку «Create» для создания Credentials для Vault:

Создание Jenkins Job для установки EDMN#
Содержимое дистрибутива ./EDMN-scripts-{version}-distrib.zip поместить в git-репозиторий.
Выбрать New Item для создания нового Jenkins Job:

2.1. Добавить название создаваемого Jenkins Job. Нельзя использовать в названии русские буквы, спецсимволы.
2.2. Выбрать Pipeline и нажать кнопку «ОК»:

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.
Пример заполнения параметров:

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

После запуска сборки необходимо обновить страницу.
Выбрать в боковом меню «Собрать с параметрами»:

Заполнить следующие параметры на появившейся странице:
jenkins_slave— имя агента Jenkins для сборки;ansible_version— название Jenkins Tool, отвечающей за используемую версию Ansible.
В случае, если используется обновленная версия скриптов, функциональность пункта 7 может быть выполнена автоматически и пункт 7 может отсутствовать.
Нажать кнопку «Собрать».
Обновить страницу и после окончания работы Jenkins Job снова нажать «Собрать с параметрами».
Появится страница со всем списком настраиваемых параметров, отвечающих за установку 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
При необходимости раскомментировать нужные блоки.