Avanpost IDM Base представляет собой комплексное решение, состоящее из нескольких компонентов, которые взаимодействуют между собой для распределения задач и выполнения команд. Взаимодействие компонентов осуществляется внутри кластера, основанного на акторной модели Akka.NET.
Для настройки кластера используются отдельные файлы конфигурации, расположение которых определяется переменной окружения "CLUSTER_CFG", или секции "cluster" внутри основного файла конфигурации.
Если запуск происходит на одном сервере , требуется чтобы порты между системами не пересекались. Для работы кластера требуется как минимум две ноды с компонентами DAG и DAG Collector.
Для корректной работы однонодовой конфигурации так же необходим кластер, объединяющий сервисы DAG и DAG Collector для взаимодействия между ними.
Навигатор по разделу:
- 1. Примеры конфигурационных файлов для сервисов
1. Примеры конфигурационных файлов для сервисов
1.1. Пример файла конфигурации кластера для сервиса DAG:
{
"cluster": {
"host": "127.0.0.1",
"PublicHost": "Some.host.local",
"Port": "1778",
"TransportLogging": "false",
"SslEnabled": "false",
"ssl": {
"SuppressValidation": "true",
"CertificatePath": "somepath",
"CertificatePassword": "somepwd",
"CertificateFlags": [
"default-flag-set"
]
},
"ClusterRoles": [
"reports",
"scheduler",
],
"MemberNodes": [
{
"Host": "127.0.0.1",
"Port": "1778"
},
{
"Host": "127.0.0.1",
"Port": "1779"
}
],
"StableAfter": 180,
"DownAfter": 600,
"MonitorCriticalRoles" : true
}
}
1.2. Пример файла конфигурации кластера для сервиса DAG Collector:
{
"cluster": {
"host": "127.0.0.1",
"PublicHost": "Some.host.local",
"Port": "1779",
"TransportLogging": "false",
"SslEnabled": "false",
"ssl": {
"SuppressValidation": "true",
"CertificatePath": "somepath",
"CertificatePassword": "somepwd",
"CertificateFlags": [
"default-flag-set"
]
},
"FailureDetector":{
"HeartbeatInterval":"",
"Threshold":"",
"AcceptableHeartbeatPause":"",
"ExpectedResponseAfter":""
},
"ClusterRoles": [
"dataStorages",
"security_events",
"scheduler",
],
"MemberNodes": [
{
"Host": "127.0.0.1",
"Port": "1778"
},
{
"Host": "127.0.0.1",
"Port": "1779"
}
],
"StableAfter": 180,
"DownAfter": 600,
"MonitorCriticalRoles" : true
}
}
2. Описание параметров конфигурационных файлов
2.1. Корневые элементы конфигурации
| Параметр | Примеры значений | Пояснение |
|---|---|---|
| host | 127.0.0.1 | Обозначение сетевого интерфейса |
10.10.120.5 | ||
| PublicHost | 10.10.120.5 | Обозначение идентификатора, по которому к машине можно обратиться снаружи (если машина не может распознать сама себя по адресу в параметре "host"). Может быть задана через переменную окружения "IGA_CLUSTER_PUBLIC_HOST" |
| Port | "1777" | Сетевой порт, на котором будет работать система |
| TransportLogging | false | Включение логгирования сетевого протокола akka |
| true | ||
| SslEnabled | false | Включение ssl |
| true | ||
| ssl | см. Настройка ssl | Настройка ssl-параметров при включенном параметре "SslEnabled" |
| StableAfter | 180 | Задержка после запуска в течение которой ожидаются ноды кластера |
| DownAfter | 600 | Задержка перед остановкой службы при выходе из кластера нод с критичными ролями (зависит от параметра MonitorCriticalRoles) |
MonitorCriticalRoles | true | Проверка наличия в кластере обязательных ролей |
| ClusterRoles | [ "dag", "dag_scheduler" ] | Подробнее cм. Распределение систем и ролей в кластере |
| MemberNodes | см. MemberNodes | Набор всех нод для заданной системы |
2.2. Настройка ssl
| Параметр | Примеры значений | Пояснение |
|---|---|---|
SuppressValidation | true | Валидация сертификата |
false | ||
CertificatePath | /some/path/to/cert | Путь до сертификата |
CertificatePassword | pwd | Пароль сертификата |
CertificateFlags | ["default-key-set"] | Хранилище ключей. Доступные значения:
|
2.3. Распределение систем и ролей в кластере
dag_scheduler | DAG | Запуск заданий планировщиков |
reports | DAG | Генерация отчетов |
dag | DAG | Фронтенд |
dagcollector_scheduler | DAG Collector | Запуск заданий планировщиков |
dataStorages | DAG Collector | Работа с хранилищами (коннекторы) |
security_events | DAG Collector | Обработка некоторых видов событий |
Для любого компонента так же доступен алиас "all" - если одна нода будет делать всю работу то вместе перечисления точечных ролей им можно задать сразу все.
2.4. MemberNodes
Набор всех нод для заданной системы.
[
{
"Host": "127.0.0.1",
"Port": "1777"
},
{
"Host": "127.0.0.1",
"Port": "1779"
}
3. Схема-пример однонодового развертывания
