.. _check_adapter_start: Запуск модуля ~~~~~~~~~~~~~~~~~~~~~~~~~ Состав и содержание дистрибутивного пакета ############################################ Состав дистрибутива Агента проверок: - ``check-adapter-.jar`` – исполняемый файл; - ``application.yml`` – файл конфигурации Агента проверок; - ``schema.sql`` – файл с описанием схемы базы данных, подлежащей проверке. Файл также содержит описание ограничений между таблицами. Предварительные операции (установка «пре-реквизитов») ####################################################### Перед запуском Агента проверок выполните от имени root-пользователя (либо используя команду sudo) следующие действия: 1. Создайте пользователя {{user}} и группу {{user_group}}, под которым будет работать Агент проверок. Распакуйте дистрибутивный пакет в каталог ``/distr/app``. 2. Добавьте в каталог ``/distr/app`` конфигурационный файл ``application.yml``, подготовленный согласно описанию :numref:`check_adapter_config`. 3. Добавьте в каталог ``/distr/app`` конфигурационный файл ``schema.sql``, (имя файла должно сответствовать имени схемы, подлежащей проверке) подготовленный согласно описанию :numref:`check_adapter_schema_config`. Запуск Агента проверок ######################### Убедитесь, что пользователь {{user}} имеет доступ к директории, в которой установлен Агент проверок (``/distr/app``). Пример раздела конфигурации скрипта для запуска Агента проверок с использованием сервиса **systemd**. Данный файл, с названием ``dqf-check-adapter.service``, необходимо сохранить в каталог ``/etc/systemd/system/``, указав, при необходимости, корректные пути к файлам: .. code-block:: bash [Unit] Description="Check-adapter-dqf-service" After=syslog.target [Service] Type=simple WorkingDirectory=/distr/app LimitNOFILE=1048576:1048576 User={{user}} # указать пользователя Group={{user_group}} # указать группу Environment="JAVA_HOME=/usr/lib/jdk/jdk-17.0.7" ExecStart=/usr/lib/jdk/jdk-17.0.7/bin/java -XX:+FlightRecorder -XX:+UseZGC -XX:MaxRAMPercentage=80.0 -XX:+UseContainerSupport -XX:+ExplicitGCInvokesConcurrent -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./heapdump.hprof -Dlog4j.configurationFile=./conf/logback.xml -Duser.language=ru -Dfile.encoding=UTF-8 -Dcatalina.base=/distr/app -jar /distr/app/check-adapter.jar --spring.config.location=/distr/app/application.yml [Install] WantedBy=multi-user.target Далее от имени root-пользователя или используя sudo выполните команду по включению, запуску сервиса и проверке его статуса: .. code-block:: bash sudo systemctl daemon-reload sudo systemctl enable dqf-check-adapter sudo systemctl start dqf-check-adapter sudo systemctl -l status dqf-check-adapter Настройка ротации логов (опционально) ######################################## Во избежание переполнения диска лог-файлами, рекомендуется настроить ротацию лог-файлов **systemd** сервиса. Настройка логирования осуществляется с помощью файлов конфигурации **logrotate** и **systemd** сервиса. Если этих файлов не существует, их необходимо создать. Установите пакет **logrotate**, для **rpm-base** дистрибутивов выполните команду: .. code-block:: bash sudo yum install logrotate Добавьте в файл **systemd** сервиса (``/etc/systemd/system/dqf-check-adapter.service``) следующие настройки логирования: .. code-block:: bash ... [Service] Type=simple StandardOutput=append:/var/log/{{ file_name }} StandardError=append:/var/log/{{ file_name }} ... Создайте файл конфигурации **logrorate** (поместить файл в ``/etc/logrotate.cron/dqf-check-adapter.conf``) и поместите в него следующие строки: .. code-block:: bash /var/log/{{ file_name }} { rotate {{ rotate }} size {{ file_size }} create nocompress copytruncate } где: - rotate – какое количество лог файлов оставлять; - file_size – размер лог-файла при котором будет происходить ротация. Создайте файл со скриптом запуска утилиты **logrotate**, поместите скрипт по пути ``/etc/logrotate.cron/datasteward_logrotate.sh``. Остановка модуля ~~~~~~~~~~~~~~~~~~~~~~~~~~ Для ручной остановки необходимо подключиться по ssh к серверу, найти процесс, который содержит jar-файл и остановить его. Пример:: ps aux | grep check-adapter kill ``kill`` «номер процесса».