5. Настройка и запуск Агента СМЭВ4
5.1. Порядок загрузки данных и программ
Администратор УВ осуществляет развёртывание, запуск и настройку Агента СМЭВ4 с помощью данного руководства.
5.2. Подготовка и настройка системы для запуска Агента
5.2.1. Состав и содержание дистрибутивного пакета
Состав дистрибутива Агента СМЭВ4 в архиве с исполняемыми файлами (/einfahrt-ng):
/einfahrt-ng/app.jar– исполняемый файл;
Путь /distr/ в описании ниже указан в качестве примера. Допустимо использовать любой другой путь,
скорректировав соответствующим образом упоминаемые ниже команды.
5.2.2. Предварительные операции (установка «пре-реквизитов»)
Перед запуском Агента СМЭВ4 выполнить от имени пользователя root следующие действия:
Создать пользователя {{user}} и группу {{user_group}}, под которым будет работать Агент СМЭВ4. Создать каталог /distr/einfahrt, владельцем каталога назначить пользователя {{user}} Создать каталог /distr/einfahrt/app, скопировать в него исполняемый файл Агента app.jar из дистрибутивного пакета.
Установить java. Версия в примере ниже может отличаться актуальной на момент установки. Сертифицированный дистрибутив jdk, соответствующий операционной системе, приобретается пользователем самостоятельно на сайте производителя https://axiomjdk.ru/pages/downloads/#/java-17-lts
Для Astra Linux
dpkg -i axiomjdk-jdk-pro17.0.7-linux-amd64-astra.deb
Для РЕД ОС
yum localinstall axiomjdk-jdk-pro17.0.7-linux-amd64.rpm
Установить системные переменные
export JAVA_HOME=/usr/java
export PATH=$PATH:$JAVA_HOME/bin
Рекомендуется внести данную настройку в profile пользователя либо в системный profile (/etc/profile.d/).
Выложить в каталог
/distr/einfahrtконфигурационный файлapplication.yml, подготовленный согласно Раздел 3.В файл
/etc/hostsдобавить записи, соответствующие адресам серверов аутентификации:
172.20.59.5 podd.gosuslugi.ru
109.207.15.26 podd1.gosuslugi.ru
109.207.15.58 podd2.gosuslugi.ru
109.207.15.154 podd3.gosuslugi.ru
109.207.15.186 podd4.gosuslugi.ru
109.207.15.26 podd1-cross.gosuslugi.ru
109.207.15.58 podd2-cross.gosuslugi.ru
109.207.15.154 podd3-cross.gosuslugi.ru
109.207.15.186 podd4-cross.gosuslugi.ru
5.2.3. Настройка логирования в формате «Гостех» (опционально)
Для переключения формата лог-файлов на стандарты Гостех, необходимо в список ключей запуска java добавить следующие параметры:
-Dlogback.configurationFile=logback.gostech.xml
-Dlogging.config=classpath:logback.gostech.xml
При запуске с помощью сервиса systemd (см. Раздел 5.2.4) данные ключи добавляются в Environment переменную
JDK_JAVA_OPTIONS.
Местоположение результирующего файла возможно изменить системной переменной GOSTECH_LOG_DIR, при ее отсутствии
используется значение по умолчанию /fluent-bit/logs/.
Имя результирующего файла возможно изменить системной переменной GOSTECH_LOG_FILE_NAME, при ее отсутствии
используется значение по умолчанию log. Расширение имени файла не изменяется, зафиксировано как .log
При запуске с помощью сервиса systemd (см. Раздел 5.2.4) данные переменные добавляются в файл einfahrt.service как
строки вида:
Environment="GOSTECH_LOG_DIR=/var/log/einfahrt"
Environment="GOSTECH_LOG_FILE_NAME=einfahrt"
5.2.4. Запуск Агента СМЭВ4
Убедитесь, что пользователь {{user}} имеет доступ к директории, в которой установлен Агент СМЭВ4 (/distr/einfahrt).
Пример раздела конфигурации скрипта для запуска Агента СМЭВ4 с использованием сервиса systemd
Данный файл, с названием einfahrt.service, необходимо сохранить в каталог /etc/systemd/system/, указав, при необходимости,
корректные пути к файлам:
[Unit]
Description="Service for einfahrt"
After=syslog.target
[Service]
Type=simple
WorkingDirectory=/distr/einfahrt
LimitNOFILE=1048576:1048576
# Важно! Запуск должен производиться от имени того пользователя, для которого ранее были выложены ключи CryptoPro!
User={{user}} # указать пользователя
Group={{user_group}} # указать группу
Environment="JAVA_HOME=/usr/java"
Environment="JDK_JAVA_OPTIONS=--add-exports=java.base/sun.security.util=ALL-UNNAMED \
--add-exports=java.base/sun.security.x509=ALL-UNNAMED \
--add-exports=java.base/sun.security.pkcs=ALL-UNNAMED \
--add-exports=java.base/sun.security.provider=ALL-UNNAMED \
--add-exports=java.base/sun.security.tools.keytool=ALL-UNNAMED \
--add-exports=java.base/sun.net=ALL-UNNAMED \
--add-opens=java.base/jdk.internal.misc=ALL-UNNAMED \
--add-opens=java.base/java.lang=ALL-UNNAMED \
--add-opens=java.base/java.nio=ALL-UNNAMED \
--add-opens=java.xml/org.w3c.dom=ALL-UNNAMED \
-Dsaffron.default.charset=UTF-16LE \
-Dsaffron.default.collation.name='UTF-16LE$en_US' \
-Dsaffron.default.nationalcharset=UTF-16LE \
-XX:MaxRAMPercentage=80.0 \
-XX:+UnlockExperimentalVMOptions \
-XX:InitiatingHeapOccupancyPercent=16 \
-XX:+UseStringDeduplication \
-XX:+G1EagerReclaimHumongousObjects \
-XX:+G1EagerReclaimHumongousObjectsWithStaleRefs \
-XX:G1HeapWastePercent=2 \
-XX:G1MaxNewSizePercent=25 \
-XX:G1MixedGCLiveThresholdPercent=15 \
-XX:+UseG1GC"
ExecStart=/usr/java/bin/java -jar app/app.jar
[Install]
WantedBy=multi-user.target
Далее от имени пользователя root выполнить команду по включению, запуску сервиса и проверке его статуса:
systemctl daemon-reload
systemctl enable einfahrt
systemctl start einfahrt
systemctl -l status einfahrt
5.2.5. Проверка работоспособности Агента СМЭВ4 после включения и запуска сервиса
Для проверки соединения Агента с Ядром ПОДД необходимо выполнить команду с использованием утилиты curl.
Если утилита Curl не установлена необходимо ее установить из базового репозитория для Astra Linux 1.7 SE (Воронеж, Смоленск) командой:
apt-get install curl
для РЕДоС 7.3
dnf install curl
Проверка корректной установки Агента СМЭВ4 осущетвляется командой:
curl -X POST 'https://agent-ip:8192/query?async=false' -H ""Accept-Version: 1"" -H ""Content-Type: application/json"" -d '{""sql"": {""sql"": ""select 1""}}'
5.2.6. Настройка ротации логов (опционально)
Во избежание переполнения диска лог-файлами системного уровня, рекомендуется настроить ротацию лог-файлов systemd сервиса.
Настройка логирования осуществляется с помощью файлов конфигурации logrotate и systemd сервиса. Если этих файлов не существует, их необходимо создать. Первоначально необходимо установить пакет logrotate, для этого необходимо выполнить команду:
Для Astra Linux
apt-get install logrotate
Для РЕД ОС
yum install logrotate
Добавьте в файл systemd сервиса (/etc/systemd/system/einfahrt.service) следующие настройки логирования:
...
[Service]
Type=simple
StandardOutput=append:/var/log/{{ file_name }}
StandardError=append:/var/log/{{ file_name }}
...
Создайте файл конфигурации logrorate (поместить файл в /etc/logrotate.cron/einfahrt.conf) и поместите в него
следующие строки:
/var/log/{{ file_name }} {
rotate {{ rotate }}
size {{ file_size }}
create
nocompress
copytruncate
}
где:
rotate– какое количество лог файлов оставлять;file_size– размер лог-файла при котором будет происходить ротация.
Создайте файл со скриптом запуска утилиты logrotate, поместите скрипт по пути /etc/logrotate.cron/einfahrt.sh:
#!/bin/bash
/usr/sbin/logrotate /etc/logrotate.cron/einfahrt.conf
Добавьте права на запуск командой:
chmod +x /etc/logrotate.cron/einfahrt.sh
Создайте правила cron, создайте файл /etc/cron.d/einfahrt и поместите в него содержимое ниже:
*/1 * * * * root /etc/logrotate.cron/einfahrt_logrotate.sh
Далее перезагрузите systemd сервис:
systemctl daemon-reload
systemctl restart einfahrt
5.3. Настройка предустановленного профиля Витрины в Агенте СМЭВ4
Примечание
Раздел применим только при использовании Витрины и заданной настройке использования предустановленного профиля Витрины в Агенте СМЭВ4 (см. Раздел 3.3.3).
Файл профиля имеет настройки по умолчанию. Вносить изменения следует только в том случае, если значения по умолчанию не подходят для данной Витрины.
Настройки задаются после установки Агента ПОДД в файле postgresql.json, расположенном в директории
/директория_установленного_Агента_СМЭВ4/postgresql.json.
По умолчанию /distr/einfahrt/postgresql.json
Пример предустановленного профиля Витрины в Агенте СМЭВ4:
{
"sqlDialect": "POSTGRESQL",
"parameterNotionType": "QUESTION",
"aggFunctions": [
...
],
"otherFunctions": [
...
],
"forSystemTimeParameterSupport": false,
"subQueryParamSupport": "DYNAMIC_PARAM_SUPPORT"
}
где:
subQueryParamSupport– способ передачи подзапроса при выполнении РЗ с параметрами на сторону Витрины, возможные значения:
NOT_SUPPORTED- отправка подзапроса с параметрами, подставленными в SQL-выражение;DYNAMIC_PARAM_SUPPORT- отправка подзапроса с блоком динамических параметров, подстановка осуществляется на стороне Адаптера Витрины;NAMED_PARAM_SUPPORT- отправка подзапроса с блоком именованных пара-метров, подстановка осуществляется на стороне Адаптера Витрины.
forSystemTimeParameterSupport– поддержка системного параметра РЗ для запроса актуальных на заданный момент времени данных из Витрины:
false- Адаптер Витрины не поддерживает обработку параметра;true- Адаптер Витрины поддерживает обработку параметра.
5.4. Обновление Агента СМЭВ4
Для обновления версии Агента СМЭВ4 необходимо выполнить следующие шаги:
Скачать с портала ЕСКС образцы файлов конфигурирования нужной версии.
Заполнить файл конфигурации
application.yamlактуальными данными в соответствии с описанием Раздел 3.3.Из пакета с дистрибутивом скопировать новую версию исполняемого файла Агента
app.jarпапку/distr/einfahrt/app, как указано в Раздел 5.2.2.Проверить файл
einfahrt.serviceна соответствие с описанием в Раздел 5.2.4Перезапустить Агент СМЭВ4.
5.5. Настройка сбора метрик Агента СМЭВ4 (опционально)
5.5.1. Настройка Агента для передачи метрик в Prometheus
Агент поддерживает возможность передачи метрик работы во внешнюю систему сбора метрик Prometheus.
Для включения возможности передачи необходимо добавить в конфигурационный файл следующие параметры:
metrics:
enabled: true
implementation: PROMETHEUS
# порт, при обращении к которому Агент отдаёт значения метрик
endpointPort: 8381
Prometheus следует настроить на опросы адреса, на котором запущен Агент, по указанному порту.
Полный список метрик приведен в Раздел 11.