Конфигурация экземпляра, компонентов ПО и служб. Настройка
Введение
Здесь представлены инструкции по настройке файлов конфигурации после развёртывания и обновления ПО Comindware Platform, его компонентов и служб.
Конфигурация экземпляра ПО Comindware Platform
-
Откройте файл конфигурации экземпляра ПО (
<instanceName>— имя экземпляра ПО) для редактирования:nano /usr/share/comindware/configs/instance/<instanceName>.yml -
При необходимости измените параметры, например:
journal.server— адрес сервера OpenSearch (Elasticsearch) (обязательно).journal.name— префикс индекса сервера OpenSearch (Elasticsearch) (необязательно, по умолчанию назначается префиксcmw<instanceName>).journal.username— имя пользователя сервера OpenSearch (Elasticsearch) (необязательно).journal.password— пароль сервера OpenSearch (Elasticsearch) (необязательно).db.workDir— директория для хранения базы данных экземпляра ПО.db.name— префикс кэшей в базе данных экземпляра ПО.userStorage.localDisk.path— директория для хранения загруженных файлов.mq.server— адрес сервера Apache Kafka.backup.defaultFolder— директория для хранения резервных копий экземпляра ПО.backup.defaultFileName— имя файла резервной копии экземпляра ПО.
Внимание!
Директивы
isFederationAuthEnabledиmanageAdapterHostтребуется удалить, если они присутствуют.Значения параметров
mq.server(адрес и порт сервера очереди сообщений),mq.group(идентификатор группы очереди сообщений),mq.node(идентификатор узла очереди сообщений,) иcluster.name/clusterName(имя экземпляра ПО) должны совпадать в трёх файлах конфигурации:/usr/share/comindware/configs/instance/<instanceName>.yml/var/www/<instanceName>/adapterhost.yml/var/www/<instanceName>/apigateway.yml
При этом:
mq.groupиmq.nodeне должны совпадать между собой;- если узлов несколько, значения параметра
mq.nodeдолжны быть разными на разных узлах.
Пример конфигурации с одним узлом:
# Имя экземпляра ПОclusterName: <instanceName>##### Настройка очереди сообщений ###### Адрес и порт сервера очереди сообщений {{ apacheKafkaVariants }}.mq.server: <kafkaBrokerIP>:<kafkaBrokerPort># Идентификатор группы очереди сообщений.mq.group: <instanceName># Префикс имени очередей сообщений.воmq.name: <instanceName># Идентификатор узла очереди сообщений.# Должен быть разным на разных узлах.# Не должен совпадать с mq.group.mq.node: <instanceName>_Exclusive -
Сохраните файл конфигурации.
-
Убедитесь, что директории, указанные в файле конфигурации, существуют. При необходимости создайте их и задайте права доступа:
mkdir -p <path/to/Database>mkdir -p <path/to/Streams>mkdir -p <path/to/Backup>chown -R <User>:<Group> <path/to/Database> <path/to/Streams> <path/to/Backup>Здесь значения
<User>и<Group>должны совпадать с такими же параметрами в файле/usr/lib/systemd/system/comindware<instanceName>.service -
Перезапустите службу экземпляра ПО:
systemctl restart comindware<instanceName>
Пример YML-файла конфигурации экземпляра ПО
##### Настройка базовых параметров Comindware Platform #####
# Имя экземпляра Comindware Platform.
# Устаревшая директива: instanceName
clusterName: <instanceName>
# Имя узла экземпляра Comindware Platform.
#nodeName: <instanceName>
# Путь к экземпляру, по которому Comindware Platform находит свою конфигурацию.
configPath: <configPath>
# Адрес службы журналирования OpenSearch (Elasticsearch).
# Устаревшая директива: elasticsearchUri
journal.server: http://<searchHostIP>:<searchHostPort>
# Индекс службы журналирования.
# journal.name: <prefix>-<instanceName>
# Имя пользователя службы журналирования
# journal.username: xxxx
# Пароль службы журналирования
# journal.password: xxxx
# Выключение службы журналирования.
#journal.enabled: false
# URI-адрес экземпляра Comindware Platform.
fqdn: <hostName>
# Порт экземпляра Comindware Platform.
port: <portNumber>
# Версия экземпляра Comindware Platform.
version: <versionNumber>
##### Настройка базы данных #####
# Использование тонкого клиента.
#db.asThinClient: true
# Конечные точки для подключения тонкого клиента.
#db.asThinClientEndpoints: 127.0.0.1:10800
# Путь к базе данных.
# Устаревшая директива: databasePath
db.workDir: /var/lib/comindware/<instanceName>/Database
# Папка установки Apache Ignite.
#db.homeDir:
# Путь к файлу конфигурации Apache Ignite.
#db.configPath:
# Настройки JVM.
#db.jvmOpts:
# Настройки Java.
#db.javaOpts:
# Включение автоматической настройки узлов Apache Ignite.
#db.baselineAutoAdjustEnabledFlag: false
# Время ожидания фактического изменения настройки узлов Apache Ignite
# с момента последнего изменения.
#db.baselineAutoAdjustTimeout: 3000
# Согласованный глобальный уникальный идентификатор узла Apache Ignite.
#db.consistentId:
# Используемый префикс кэшей в базе данных
# Устаревшая директива: databaseName
db.name: <instanceName>
# Префикс кэшей в базе данных, используемый при обновлении.
#db.upgradeName:
# Путь к онтологии Comindware
#db.n3Dir:
##### Настройка хранения загруженных файлов #####
# Тип хранилища (LocalDisk | S3).
userStorage.type: LocalDisk
# Путь к пользовательским файлам экземпляра.
userStorage.localDisk.path: /var/lib/comindware/<instanceName>/Streams
# Имя корзины S3 для хранения загруженных файлов.
#userStorage.s3.bucket:
# Имя подключения к S3.
#userStorage.s3.connection: <s3ConnectionName>
##### Настройка хранения временных файлов #####
# Тип хранилища (LocalDisk | S3).
tempStorage.type: LocalDisk
# Путь к временным файлам экземпляра.
tempStorage.localDisk.path: /var/lib/comindware/<instanceName>/Temp
# Имя корзины S3 для хранения временных файлов.
#tempStorage.s3.bucket:
# Имя подключения к S3.
#tempStorage.s3.connection: <s3ConnectionName>
# Временная папка
tempWorkingDir: /var/lib/comindware/<instanceName>/LocalTemp
##### Настройка очереди сообщений #####
# Адрес и порт сервера очереди сообщений Apache Kafka.
mq.server: <kafkaBrokerIP>:<kafkaBrokerPort>
# Идентификатор группы очереди сообщений.
mq.group: <prefix>-<instanceName>
# Префикс имени очередей сообщений.
mq.name: <instanceName>
# Идентификатор узла очереди сообщений.
mq.node: <instanceName>
# Выключение функции очереди сообщений.
#mq.enabled: false
# Протокол безопасности очереди сообщений.
# (Plaintext | Ssl | SaslPlaintext | SaslSsl)
#mq.securityProtocol: Plaintext
##### Настройка SSL-подключения очереди сообщений #####
# Путь к файлу корневого сертификата сервера очереди сообщений.
#mq.ssl.caLocation:
# Выключение идентификации адреса сервера очереди сообщений.
#mq.ssl.endpointIdentificationEnabled: false
##### Настройка SASL-подключения очереди сообщений #####
# Имя пользователя, используемое для подключения посредством SASL.
#mq.sasl.username:
#Пароль для аутентификации, используемый для подключения посредством SASL.
#mq.sasl.password:
# Тип механизма SASL (None | Plain | ScramSha256 | ScramSha512).
#mq.sasl.mechanism:
##### Настройка очереди сообщений для коммуникации с адаптерами #####
# Выключение функции коммуникации брокера сообщений с адаптером 0.
#mq.adapter.0.enabled: false
# Выключение отправителя сообщений.
#mq.adapter.0.producer.enabled: false
# Выключение получателя сообщений.
#mq.adapter.0.consumer.enabled: false
# Выключение функции коммуникации брокера сообщений с адаптером 1.
#mq.adapter.1.enabled: false
# Выключение отправителя сообщений.
#mq.adapter.1.producer.enabled: false
# Выключение получателя сообщений.
#mq.adapter.1.consumer.enabled: false
# Выключение функции коммуникации брокера сообщений с адаптером 2.
#mq.adapter.2.enabled: false
# Выключение отправителя сообщений.
#mq.adapter.2.producer.enabled: false
# Выключение получателя сообщений.
#mq.adapter.2.consumer.enabled: false
# Выключение функции коммуникации брокера сообщений с адаптером 3.
#mq.adapter.3.enabled: false
# Выключение отправителя сообщений.
#mq.adapter.3.producer.enabled: false
# Выключение получателя сообщений.
#mq.adapter.3.consumer.enabled: false
##### Настройка OpenID-аутентификации #####
# Имя OpenID-сервиса, использующегося для входа.
#auth.openId.displayName:
# Включение функции OpenID.
#auth.openId.enabled: true
# Адрес сервера OpenID Connect.
#auth.openId.server:
# Пространство имен или контекст, в котором происходит аутентификация пользователей.
# Используется для управления идентификацией и доступом в системе OpenID Connect.
#auth.openId.realm:
# Уникальный идентификатор клиентского приложения, используемый
# для аутентификации и авторизации запросов по протоколу OpenID Connect.
#auth.openId.clientId:
# Секретный ключ OpenId Connect
#auth.openId.clientSecret:
# Список идентификаторов целевой аудитории, для которой предназначены токены,
# используемые в процессе аутентификации и авторизации в OpenID Connect.
#auth.openId.audience:
##### Настройка резервного копирования #####
# Папка для резервного копирования по умолчанию.
# Будет использоваться во вновь создаваемых конфигурациях резервного копирования.
# Устаревшая директива: backup.config.default.repository.localDisk.path
backup.defaultFolder: /var/backups/<instanceName>
# Имя файла резервных копий по умолчанию.
# Будет использоваться во вновь создаваемых конфигурациях резервного копирования.
backup.defaultFileName: <instanceName>
# Выключение функции резервного копирования.
#backup.enabled: false
# Выключение сеансов резервного копирования.
# Выключает выполнение резервного копирования, но не его настройку.
#backup.sessionsEnabled: false
# Выключение запуска сеансов резервного копирования по расписанию.
#backup.schedulesEnabled: false
# Максимальное количество сеансов резервного копирования.
#backup.maxSessions: 5
##### Конфигурация резервного копирования по умолчанию #####
# <backupName> — имя конфигурации резервного копирования, без пробелов
# Имя файлов резервных копий.
# К нему будут добавляться метка времени и расширение cdbbz, например:
# Backup.202202161625.cdbbz
#backup.default.<backupName>.name: Backup
# Тип хранилища (LocalDisk | S3).
#backup.default.<backupName>.repository.type: LocalDisk
# Путь к файлам резервных копий.
#backup.default.<backupName>.repository.localDisk.path: /var/backups/<iname>
# Имя корзины S3 для хранения файлов резервных копий.
#backup.default.<backupName>.repository.s3.bucket:
# Имя подключения к S3.
#backup.default.<backupName>.repository.s3.connection: <s3ConnectionName>
# Описание конфигурации
#backup.default.<backupName>.description:
# Периодичность запуска резервного копирования.
#backup.default.<backupName>.period: 23:00
# Дни запуска резервного копирования.
#backup.default.<backupName>.days: [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday]
# Время начала запуска резервного копирования.
#backup.default.<backupName>.timeFrom: 00:01
# Время окончания запуска резервного копирования.
#backup.default.<backupName>.timeUpTo: 23:59
# Количество резервных копий одновременно хранящихся в системе.
# Старые будут удалены автоматически.
#backup.default.<backupName>.keepRecent: 10
# Управление составом резервной копии — загруженные файлы
#backup.default.<backupName>.withStreams: true
# Управление составом резервной копии — файлы скриптов.
#backup.default.<backupName>.withScripts: true
# Управление составом резервной копии — файлы истории (OpenSearch (Elasticsearch)).
#backup.default.<backupName>.withJournal: true
##### Настройка дополнительного хранилища для конфигурации резервного копирования по умолчанию #####
# Тип хранилища (LocalDisk | S3).
#backup.default.<backupName>.extraRepository.type: LocalDisk
# Путь к файлам резервных копий.
#backup.default.<backupName>.extraRepository.localDisk.path: /var/backups/<instanceName>ExtraRepository
# Имя корзины S3 для хранения файлов резервных копий.
#backup.default.<backupName>.extraRepository.s3.bucket:
# Имя подключения к S3.
#backup.default.<backupName>.extraRepository.s3.connection: <s3ConnectionName>
##### Настройка резервного копирования данных службы журналирования (OpenSearch (Elasticsearch)) #####
# Тип хранилища (LocalDisk | S3).
#backup.journalRepository.type: LocalDisk
# Путь к файлам резервных копий
#backup.journalRepository.localDisk.path: /var/backups/<instanceName>
# Имя корзины S3 для хранения файлов резервных копий.
#backup.journalRepository.s3.bucket:
# Имя подключения, настроенного в конфигурации службы журналирования.
#backup.journalRepository.s3.journalConnection: <s3ConnectionName>
# Имя подключения к S3, настроенного в этом файле конфигурации экземпляра Comindware Platform.
#backup.journalRepository.s3.platformConnection: <s3ConnectionName>
##### Конфигурация подключения к хранилищу S3 #####
# Описание конфигурации.
#s3.<s3ConnectionName>.description:
# Адрес подключения к S3.
#s3.<s3ConnectionName>.endpointURL:
# Информация учётной записи. Ключ подключения к хранилищу S3
#s3.<s3ConnectionName>.accessKey:
# Информация учётной записи. Секретный ключ подключения к хранилищу S3.
#s3.<s3ConnectionName>.secretKey:
# Установите значение true, если сервер принимает только запросы path-style вида:
# https://<s3hostname>/bucket-name/key-name
#s3.<s3ConnectionName>.pathStyleAccess: true
##### Настройка полнотекстового поиска #####
# Выключение функции полнотекстового поиска.
#search.enabled: false
# Выключение обновления индексов полнотекстового поиска.
#search.rebuildingEnabled: false
# Выключение индексирования для полнотекстового поиска.
#search.indexingEnabled: false
##### Настройка сенсоров мониторинга #####
# Выключение функции сенсоров мониторинга.
#sensors.enabled: false
##### Настройка синхронизации аккаунтов с LDAP-сервисом #####
# Выключение функции синхронизации.
#sync.ldap.enabled: true
# Выключение запуска сеансов синхронизации.
# Выключает выполнение сеансов, но не их настройку.
#sync.ldap.sessionsEnabled: true
# Выключение запуска сеансов синхронизации по расписанию.
#sync.ldap.schedulesEnabled: true
##### Настройка синхронизации данных с OData-сервисом #####
# Выключение интеграции по OData.
#sync.oData.enabled: false
# Выключение запуска сеансов синхронизации данных по OData.
# Выключает выполнение сеансов, но не их настройку.
#sync.oData.sessionsEnabled: false
# Выключение запуска сеансов синхронизации данных по OData по расписанию.
#sync.oData.schedulesEnabled: false
# Интервал экспорта данных по OData (минуты).
#sync.oData.exportTimeInterval: 60
##### Настройки трассировки производительности #####
# Выключение функции трассировки производительности.
#tracing.enabled: false
##### Настройки электронной почты #####
# Выключение функции проверки наличия и получения новых писем.
#email.listenerEnabled: false
# Выключение функции отправки эл. почты
#email.senderEnabled: false
##### Настройки уведомлений #####
# Выключение функции отправки уведомлений.
#notifications.enabled: false
# Выключение отправки уведомлений по пользовательским задачам.
#notifications.onUserTaskEnabled: false
# Выключение отправки уведомлений об обсуждениях.
#notifications.pushEnabled: false
# Выключение отправки уведомлений на страницах обслуживания.
#notifications.onMaintenanceEnabled: false
##### Настройка бизнес-процессов #####
# Выключение функции бизнес-процессов
#bpms.enabled: false
# Количество потоков выполнения бизнес-процессов
#bpms.threadsCount: 4
# Выключение процессных таймеров
#bpms.timersEnabled: false
##### Настройка использования Docker #####
# Включение использования в среде Docker
#isContainerEnvironment: true
##### Настройка обработчика сервис-запросов #####
# Включение функции обработчика сервис-запросов
#requestProcessor.enabled: true
# Список обработчиков сервис-запросов.
# Если не указан, включает все доступные на узле запросы
# (conversation, useractivity, notification, architect)
#requestProcessor.services:
# - apiPrefix: conversation
# - enabled: true
##### Настройка отображения количества строк таблицы на одной странице #####
# Задайте варианты, которые будут отображаться
# в меню выбора количества строк таблицы.
#queryPageResultRange: [ 50, 500, 5000, 1000000000 ]
Конфигурация службы apigateway
-
Откройте файл конфигурации
apigateway.ymlэкземпляра ПО для редактирования:nano /var/www/<instanceName>/apigateway.yml -
Измените необходимые параметры.
- Удостоверьтесь, что значение параметра
cluster.name(имя экземпляра ПО) совпадает сclusterNameи значение параметровmq.server(адрес и порт сервера очереди сообщений),mq.group(идентификатор группы очереди сообщений),mq.node(идентификатор узла очереди сообщений) — с аналогичными параметрами в файле конфигурации экземпляра. - Сохраните файл конфигурации.
-
Перезапустите службу
apigateway:systemctl restart apigateway<instanceName>
Пример конфигурации службы apigateway.yml
# Имя экземпляра ПО
cluster.name: <instanceName>
# Имя узла экземпляра
# nodeName:
# Включение/выключение конфигурации журналирования экземпляра (true | false)
log.enabled: true
# Путь к файлу конфигурации журналирования экземпляра
log.configurationFile: /var/www/<instanceName>/logs.config
kata.enabled: false
# Адрес сервера очереди сообщений Apache Kafka с портом.
mq.server: <kafkaBrokerIp>:<kafkaBrokerPort>
# Идентификатор группы очереди сообщений
mq.group: <instanceName>
# Идентификатор узла очереди сообщений
mq.node: <instanceName>
# Тип механизма SASL. (None | Plain | ScramSha256 | ScramSha512)
mq.sasl.mechanism: None
# Протокол безопасности очереди сообщений. (Plaintext | Ssl | SaslPlaintext | SaslSsl)
mq.securityProtocol: Plaintext
# Путь к сокету apigateway
listen.socketPath: /var/www/<instanceName>/App_Data/apigateway.socket
# Включение/выключение файлового хранилища (true | false)
fileStorage.enabled: true
# Тип файлового хранилища (Platform — встроенное | Custom — особая DLL-библиотека )
fileStorage.type: Platform
# IP-адрес сервера для загрузки файлов
fileStorage.attachmentServerUri: http://local.host.ip.address/
# Путь к загружаемым файлам
fileStorage.uploadAttachment.path: /api/Attachment/Upload
# Путь к скачанным файлам
fileStorage.downloadAttachment.path: /api/Attachment/GetReferenceContent/{0}
# Путь к удалённым файлам
fileStorage.removeAttachment.path: /api/Attachment/Remove/{0}
# Префиксы служб API
services:
- apiPrefix: conversation
- apiPrefix: useractivity
- apiPrefix: notification
- apiPrefix: architect
Конфигурация службы adapterhost
-
Откройте файл конфигурации
adapterhost.ymlэкземпляра ПО для редактирования:nano /var/www/<instanceName>/adapterhost.yml -
Измените необходимые параметры.
- Удостоверьтесь, что значения параметров
mq.server(адрес и порт сервера очереди сообщений),mq.group(идентификатор группы очереди сообщений),mq.node(идентификатор узла очереди сообщений) иclusterName(имя экземпляра ПО) совпадают с аналогичными параметрами в файле конфигурации экземпляра ПО. - Сохраните файл конфигурации.
-
После внесения изменений перезапустите службу
adapterhost:systemctl restart adapterhost<instanceName>
Пример файла конфигурации adapterhost.yml
# Имя экземпляра ПО
clusterName: <instanceName>
# Имя папки загрузчика экземпляра ПО
loaderFolder: <instanceName>
# Язык сервера (en-US | ru-RU )
serverLanguage: ru-RU
# Адрес и порт сервера очереди сообщений Apache Kafka
mq.server: <kafkaBrokerIp>:<kafkaBrokerPort>
# Протокол безопасности очереди сообщений. (Plaintext | Ssl | SaslPlaintext | SaslSsl)
mq.securityProtocol: Plaintext
# Тип механизма SASL (None | Plain | ScramSha256 | ScramSha512)
mq.sasl.mechanism: None
# Путь к файлам журналирования экземпляра ПО
log.folder: /var/log/comindware/<instanceName>/Logs/
# Максимальное кол-во файлов журналов
log.maxArchiveFiles: 100
# Максимальный размер файлов журналов (байты)
log.archiveAboveSize: 1048576000
# Путь к архивам журналов
log.archiveFolder: /var/log/comindware/<instanceName>/Logs/Archive/
Конфигурация Apache Ignite
-
Откройте файл конфигурации Apache Ignite для редактирования:
nano /var/www/<instanceName>/Ignite.config -
В блоке
<bean class="org.apache.ignite.configuration.DataRegionConfiguration">задайте максимальный объём выделяемой памяти:-
3 ГБ:
<property name="maxSize" value="#{3L * 1024 * 1024 * 1024}" /> -
8 ГБ:
<property name="maxSize" value="#{8L * 1024 * 1024 * 1024}" />
-
-
В случае изменения максимального объёма выделяемой памяти отредактируйте параметр
checkpointPageBufferSize. Чтобы рассчитать размер значения, разделите размерmaxSizeна четыре, при этом значение должно быть в диапазоне 256 МБ — 2 ГБ.-
8 ГБ:
<property name="checkpointPageBufferSize" value="#{2L * 1024 * 1024 * 1024}" />
-
-
Перезапустите службу экземпляра ПО:
systemctl restart comindware<instanceName>
Конфигурация кучи Java
В зависимости от объёма оперативной памяти на сервере следует отредактировать конфигурацию области памяти для кучи Java.
-
Откройте файл конфигурации среды экземпляра ПО для редактирования:
nano /etc/sysconfig/comindware<instanceName>-env -
Задайте объём памяти, который выделяется для кучи Java:
JVM_OPTS=-Xms512m -Xmx16g -XX:MaxDirectMemorySize=1g ...Здесь:
-Xms— начальный размер кучи;-Xmx— максимальный размер кучи.
-
Сохраните файл конфигурации.
-
Перезапустите службу экземпляра ПО:
systemctl daemon-reloadsystemctl restart comindware<instanceName>
Конфигурация NGINX
-
Откройте файл конфигурации NGINX для редактирования:
-
Astra Linux, Ubuntu, Debian (DEB-based)
nano /etc/nginx/sites-available/comindware<instanceName> -
РЕД ОС, Rocky (RPM-based)
nano /etc/nginx/conf.d/comindware<instanceName> -
Альт Сервер
nano /etc/nginx/sites-available.d/comindware<instanceName>
-
-
В директиве
serverзадайте номер порта и адрес сервера, по которым будет доступен экземпляр ПО:server {# Адрес сервера для доступа к экземпляру ПО.server_name <hostName># Номер порта для доступа к экземпляру ПО.listen <portNumber>} -
Для записи событий в отдельные журналы укажите их:
error_log /var/log/nginx/<instanceName>-error.log;access_log /var/log/nginx/<instanceName>-access.log; -
Сохраните файл конфигурации.
-
Проверьте, что изменения работают корректно:
nginx -t -
При успешном вступлении изменений в силу перезагрузите NGINX:
nginx -s reload
Эта статья была полезна 1 чел.