5. Настройка и запуск Агента СМЭВ4

5.1. Порядок загрузки данных и программ

Администратор УВ осуществляет развёртывание, запуск и настройку Агента СМЭВ4 с помощью данного руководства.

5.2. Подготовка и настройка системы для запуска Агента

5.2.1. Состав и содержание дистрибутивного пакета

Состав дистрибутива Агента СМЭВ4 в архиве с исполняемыми файлами (/einfahrt-ng):

  • /einfahrt-ng/app.jar – исполняемый файл;

Путь /distr/ в описании ниже указан в качестве примера. Допустимо использовать любой другой путь, скорректировав соответствующим образом упоминаемые ниже команды.

5.2.2. Предварительные операции (установка «пре-реквизитов»)

Перед запуском Агента СМЭВ4 выполнить от имени пользователя root следующие действия:

  1. Создать пользователя {{user}} и группу {{user_group}}, под которым будет работать Агент СМЭВ4. Создать каталог /distr/einfahrt, владельцем каталога назначить пользователя {{user}} Создать каталог /distr/einfahrt/app, скопировать в него исполняемый файл Агента app.jar из дистрибутивного пакета.

  2. Установить 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
  1. Установить системные переменные

export JAVA_HOME=/usr/java
export PATH=$PATH:$JAVA_HOME/bin

Рекомендуется внести данную настройку в profile пользователя либо в системный profile (/etc/profile.d/).

  1. Выложить в каталог /distr/einfahrt конфигурационный файл application.yml, подготовленный согласно Раздел 3.

  2. В файл /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"
}

где:

  1. subQueryParamSupport – способ передачи подзапроса при выполнении РЗ с параметрами на сторону Витрины, возможные значения:

  • NOT_SUPPORTED - отправка подзапроса с параметрами, подставленными в SQL-выражение;

  • DYNAMIC_PARAM_SUPPORT - отправка подзапроса с блоком динамических параметров, подстановка осуществляется на стороне Адаптера Витрины;

  • NAMED_PARAM_SUPPORT - отправка подзапроса с блоком именованных пара-метров, подстановка осуществляется на стороне Адаптера Витрины.

  1. forSystemTimeParameterSupport – поддержка системного параметра РЗ для запроса актуальных на заданный момент времени данных из Витрины:

  • false - Адаптер Витрины не поддерживает обработку параметра;

  • true - Адаптер Витрины поддерживает обработку параметра.

5.4. Обновление Агента СМЭВ4

Для обновления версии Агента СМЭВ4 необходимо выполнить следующие шаги:

  1. Скачать с портала ЕСКС образцы файлов конфигурирования нужной версии.

  2. Заполнить файл конфигурации application.yaml актуальными данными в соответствии с описанием Раздел 3.3.

  3. Из пакета с дистрибутивом скопировать новую версию исполняемого файла Агента app.jar папку /distr/einfahrt/app, как указано в Раздел 5.2.2.

  4. Проверить файл einfahrt.service на соответствие с описанием в Раздел 5.2.4

  5. Перезапустить Агент СМЭВ4.

5.5. Настройка сбора метрик Агента СМЭВ4 (опционально)

5.5.1. Настройка Агента для передачи метрик в Prometheus

Агент поддерживает возможность передачи метрик работы во внешнюю систему сбора метрик Prometheus.

Для включения возможности передачи необходимо добавить в конфигурационный файл следующие параметры:

metrics:
  enabled: true
  implementation: PROMETHEUS
  # порт, при обращении к которому Агент отдаёт значения метрик
  endpointPort: 8381

Prometheus следует настроить на опросы адреса, на котором запущен Агент, по указанному порту.

Полный список метрик приведен в Раздел 11.