Перейти к основному содержимому

Установка RPLW на виртуальные машины

Порядок установки​

  1. Выбор способа установки.
    1. Установка компонента с помощью Ansible (рекомендуемый способ)
    2. Ручная установка компонента

Выбор способа установки​

Установка компонента с помощью Ansible (рекомендуемый способ)​

Раздел описывает сценарий установки компонента RPLW (воркер) с использованием поставляемого ansible-playbook.

Выполнение установки представляет собой следующие этапы:

Шаг 1. Подготовка inventory.yml​

Подготовьте inventory-файл для playbook. Опишите целевые ВМ:

Пример (inventory/hosts.yml):

all:
children:
grdlw:
hosts:
grdlw-vm-01:
ansible_host: [change_me] # IP или FQDN ВМ
grdlw-vm-02:
ansible_host: [change_me]

Общие для всех ВМ параметры задаются в group_vars/grdlw/vars.yml, а индивидуальные для каждой ВМ — в host_vars/<имя_хоста>.yml или же в самом файле inventory.

all:
children:
grdlw:
hosts:
grdlw-vm-01:
ansible_host: [change_me] # IP или FQDN ВМ
grdlw_module_url: "http://[change_me]:6884"
grdlw-vm-02:
ansible_host: [change_me]
grdlw_module_url: "http://[change_me]:6884"

Шаг 2. Заполнение параметров Ansible-роли​

Ключевые переменные роли соответствуют параметрам файла grdlw.properties:

Переменная (пример)Соответствует параметруНазначение
grdlw_server_portserver.portОсновной порт приложения
grdlw_console_urlgdl.console.urlURL консоли
grdlw_module_urlgdl.module.urlURL модуля (индивидуально для ВМ)
grdlw_db_urlsgdl.db.urlsСтрока подключения к БД
grdlw_management_ssl_enabledmanagement.server.ssl.enabledВключение SSL для management-порта
Конфигурационный файл grdlw.properties
:language: conf
Важно

Пароли пользователей ОС и пароли к сертификатам не храните в открытом виде — используйте Ansible Vault (зашифрованный файл переменных или отдельное хранилище секретов).

Шаг 3. Подготовка артефактов развертывания​

Разместите артефакты, которые роль скопирует на целевые ВМ:

  • gdl-worker.jar — исполняемый JAR приложения;
  • kafka.jks — если сервер Kafka настроен на mTLS (см. примечание ниже).
примечание

Файл kafka.jks формируется и используется только в том случае, если сервер Kafka настроен на взаимную аутентификацию (mTLS), то есть требует клиентский сертификат (ssl.client.auth=required на брокере). Если Kafka работает без mTLS (обычный TLS без проверки клиентского сертификата или без шифрования), файл kafka.jks не нужен — не задавайте связанные переменные и не подкладывайте файл. При включённом mTLS положите kafka.jks в каталог с секретами роли и укажите путь и пароль хранилища в переменных (соответствуют spring.ssl.bundle.jks.tls.* в grdlw.properties).

Шаг 4. Запуск Playbook​

# Проверка без внесения изменений (dry-run)
ansible-playbook -i inventory/hosts.yml site.yml --ask-vault-pass --check --diff

# Установка на все ВМ группы grdlw
ansible-playbook -i inventory/hosts.yml site.yml --ask-vault-pass

# Установка только на одну ВМ
ansible-playbook -i inventory/hosts.yml site.yml --ask-vault-pass --limit grdlw-vm-01
примечание

конкретные имена playbook (site.yml), роли и переменных зависят от поставляемого дистрибутива роли GRDLW — сверьтесь с defaults/main.yml роли и приложенной к ней документацией.

Шаг 5. Проверка установки​

После завершения playbook проверьте сервис на целевой ВМ. Выполнение проверки представляет собой следующие этапы:

  1. Проверка статуса сервиса:

    systemctl status grdlw
  2. Проверка HTTP endpoint:

    Замените [port] на значение параметра server.port из файла grdlw.properties.

    curl -s http://localhost:[port]/Settings/isActive | jq
  3. Проверка JMX метрик (опционально):

    Замените [vm_host] на IP-адрес или FQDN целевой ВМ.

    jconsole [vm_host]:9020

При необходимости:

# Перезапуск сервиса
systemctl restart grdlw

# Остановка сервиса
systemctl stop grdlw

# Просмотр логов systemd
journalctl -u grdlw -f

Если установка через Ansible недоступна, используйте ручную установку, описанную ниже.

Ручная установка компонента​

Шаг 1. Установка необходимых пакетов​

Выполнение шага представляет собой следующие этапы:

  1. Обновление пакетов (опционально) и установка Java (OpenJDK 21):

    yum update -y
    yum install -y java-21-openjdk
    yum install -y acl sudo systemd
  2. Проверка установки Java:

    java -version

    Должен отобразиться OpenJDK версии 21.

Шаг 2. Создание групп и пользователей​

Выполнение шага представляет собой следующие этапы:

  1. Создайте группы согласно следующей схеме:

    ПользовательUIDGIDГруппаShelllogin_enabled
    grdl50015001grdl/bin/bashtrue
    grdl-dvps50025002grdl-dvps/bin/bashtrue
    grdl-svc50035003grdl-svc/sbin/nologinfalse
    grdl-ro50045004grdl-ro/bin/bashtrue
    groupadd -g 5001 grdl
    groupadd -g 5002 grdl-dvps
    groupadd -g 5003 grdl-svc
    groupadd -g 5004 grdl-ro
  2. Создайте пользователей:

    useradd -u 5001 -g grdl -s /bin/bash -m grdl
    useradd -u 5002 -g grdl-dvps -s /bin/bash -m grdl-dvps
    useradd -u 5003 -g grdl-svc -s /sbin/nologin grdl-svc
    useradd -u 5004 -g grdl-ro -s /bin/bash -m grdl-ro
  3. Установите пароли для пользователей с включённым входом (login_enabled=true):

    passwd grdl
    passwd grdl-dvps
    passwd grdl-ro

Шаг 3. Создание необходимых директорий​

Выполнение шага представляет собой следующие этапы:

  1. Создайте структуру директорий для приложения:

    mkdir -p /opt/cdc/grdlw/bin
    mkdir -p /opt/cdc/grdlw/conf
    mkdir -p /opt/cdc/grdlw/conf/jmx
    mkdir -p /opt/cdc/grdlw/logs
    mkdir -p /opt/cdc/grdlw/ssl
    mkdir -p /opt/cdc/grdlw/dumps
    mkdir -p /opt/cdc/grdlw/tmp
  2. Проверьте структуру директорий (ожидаемый результат):

    /opt/cdc/grdlw/
    ├── bin/ # JAR файлы
    │ └── grdlw.jar
    ├── conf/ # Конфигурационные файлы
    │ ├── grdlw.properties
    │ ├── logback.xml
    │ ├── start.sh
    │ └── jmx/
    │ ├── jmxremote.access
    │ └── jmxremote.password
    ├── logs/ # Лог файлы
    ├── ssl/ # SSL сертификаты
    │ ├── db_keystore.p12
    │ ├── client_keystore.p12
    │ └── truststore.p12
    ├── dumps/ # Дампы
    └── tmp/ # Временные файлы

    Удобно проверить структуру с помощью утилиты tree:

    tree /opt/cdc/grdlw
  3. Установите права доступа к директориям:

    chown -R grdl:grdl /opt/cdc/grdlw
    chmod 750 /opt/cdc/grdlw

    chmod 750 /opt/cdc/grdlw/bin
    chmod 750 /opt/cdc/grdlw/conf
    chmod 750 /opt/cdc/grdlw/logs
    chmod 750 /opt/cdc/grdlw/ssl
    chmod 750 /opt/cdc/grdlw/dumps
    chmod 750 /opt/cdc/grdlw/tmp

Шаг 4. Настройка sudoers файлов​

Выполнение шага представляет собой следующие этапы:

  1. Настройте sudoers для пользователя grdl:

    cat > /etc/sudoers.d/grdl-sudoers <<EOF
    grdl ALL=(ALL) NOPASSWD: /usr/bin/systemctl start grdlw
    grdl ALL=(ALL) NOPASSWD: /usr/bin/systemctl stop grdlw
    grdl ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart grdlw
    grdl ALL=(ALL) NOPASSWD: /usr/bin/systemctl status grdlw
    grdl ALL=(ALL) NOPASSWD: /usr/bin/systemctl start grdlw.service
    grdl ALL=(ALL) NOPASSWD: /usr/bin/systemctl stop grdlw.service
    grdl ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart grdlw.service
    grdl ALL=(ALL) NOPASSWD: /usr/bin/systemctl status grdlw.service
    EOF

    chmod 440 /etc/sudoers.d/grdl-sudoers
  2. Настройте sudoers для пользователя grdl-dvps:

    cat > /etc/sudoers.d/grdl-dvps-sudoers <<EOF
    grdl-dvps ALL=(ALL) NOPASSWD: /usr/bin/systemctl start grdlw
    grdl-dvps ALL=(ALL) NOPASSWD: /usr/bin/systemctl stop grdlw
    grdl-dvps ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart grdlw
    grdl-dvps ALL=(ALL) NOPASSWD: /usr/bin/systemctl status grdlw
    grdl-dvps ALL=(ALL) NOPASSWD: /usr/bin/systemctl start grdlw.service
    grdl-dvps ALL=(ALL) NOPASSWD: /usr/bin/systemctl stop grdlw.service
    grdl-dvps ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart grdlw.service
    grdl-dvps ALL=(ALL) NOPASSWD: /usr/bin/systemctl status grdlw.service
    EOF

    chmod 440 /etc/sudoers.d/grdl-dvps-sudoers
  3. Проверьте синтаксис sudoers файлов:

    visudo -cf /etc/sudoers.d/grdl-sudoers
    visudo -cf /etc/sudoers.d/grdl-dvps-sudoers
    примечание

    Если вы используете нестандартный редактор для visudo, установите переменную EDITOR.

    export EDITOR=vim

Шаг 5. Настройка системных параметров (sysctl)​

Примените системные параметры:

sysctl --system

Шаг 6. Копирование JAR файла​

Выполнение шага представляет собой следующие этапы:

  1. Скопируйте JAR файл приложения в директорию bin:

    Замените /path/to/gdl-worker.jar на путь к вашему файлу.

    cp /path/to/gdl-worker.jar /opt/cdc/grdlw/bin/grdlw.jar
  2. Установите права доступа и владельца:

    chmod 640 /opt/cdc/grdlw/bin/grdlw.jar
    chown grdl:grdl /opt/cdc/grdlw/bin/grdlw.jar
  3. Проверьте результат:

    ls -la /opt/cdc/grdlw/bin/grdlw.jar

    Ожидаемый вывод:

    -rwxrwx--- 1 grdl grdl <размер> дата grdlw.jar

Шаг 7. Настройка файла grdlw.properties​

Выполнение шага представляет собой следующие этапы:

  1. Создайте файл конфигурации /opt/cdc/grdlw/conf/grdlw.properties. Этот файл содержит все параметры конфигурации приложения.

    Пример файла конфигурации grdlw.properties
    :language: conf

    Замените все значения [change_me] на реальные значения из вашей среды.

    Важно

    Параметры spring.ssl.bundle.jks.tls.* и файл kafka.jks задаются и используются только в том случае, если сервер Kafka настроен на mTLS (взаимную аутентификацию, ssl.client.auth=required на брокере). Если Kafka работает без mTLS, эти параметры указывать не нужно, а шаги с копированием kafka.jks следует пропустить.

  2. Скопируйте файл конфигурации на целевую ВМ и настройте права доступа:

    cp /path/to/grdlw.properties /opt/cdc/grdlw/conf/grdlw.properties
    chown grdl-svc:grdl-svc /opt/cdc/grdlw/conf/grdlw.properties
    chmod 640 /opt/cdc/grdlw/conf/grdlw.properties
  3. Скопируйте файл лицензии и настройте права доступа:

    cp /path/to/grdl-license.txt /opt/cdc/grdlw/conf/grdl-license.txt
    chown grdl-svc:grdl-svc /opt/cdc/grdlw/conf/grdl-license.txt
    chmod 640 /opt/cdc/grdlw/conf/grdl-license.txt
  4. (Опционально) Скопируйте файл kafka.jks, если сервер Kafka настроен на mTLS:

    cp /path/to/kafka.jks /opt/cdc/grdlw/ssl/kafka.jks
    chown grdl-svc:grdl-svc /opt/cdc/grdlw/ssl/kafka.jks
    chmod 640 /opt/cdc/grdlw/ssl/kafka.jks
    примечание

    Файл kafka.jks формируется и переносится на ВМ только если сервер Kafka настроен на mTLS. При работе Kafka без взаимной аутентификации по сертификату эти команды выполнять не требуется.

Шаг 8. Настройка файла logback.xml​

Выполнение шага представляет собой следующие этапы:

  1. Создайте файл конфигурации логирования /opt/cdc/grdlw/conf/logback.xml.

    Пример файла конфигурации logback.xml
    :language: xml
  2. Скопируйте файл на целевую ВМ и настройте права доступа:

    cp /path/to/logback.xml /opt/cdc/grdlw/conf/logback.xml
    chown grdl-svc:grdl-svc /opt/cdc/grdlw/conf/logback.xml
    chmod 640 /opt/cdc/grdlw/conf/logback.xml
  3. Ознакомьтесь со структурой логирования:

    • log_*.log — основные логи приложения
    • log_audit_*.log — логи REST вызовов (worker.rest.calls)
    • log_secman_*.log — логи работы с Vault (Secret Manager) (опционально)
    • log_kafka_*.log — логи Kafka
  4. (Опционально) Настройте stdout логирование:

    Если требуется логирование в stdout (для контейнеров или systemd journal), раскомментируйте блоки STDOUT в logback.xml:

    Пример include-секции для расширения логирования
    <include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
    <pattern>%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
    </appender>

    И добавьте appender-ref ref="STDOUT" в соответствующие логгеры.

Шаг 9. Настройка файла encrypt.pass (опционально)​

Выполнение шага представляет собой следующие этапы:

  1. Создайте файл с фразой для шифрования данных:

    echo "[change_me]" > /opt/cdc/grdlw/conf/encrypt.pass

    Замените [change_me] на реальную фразу для шифрования.

  2. Настройте права доступа:

    chown grdl-svc:grdl-svc /opt/cdc/grdlw/conf/encrypt.pass
    chmod 400 /opt/cdc/grdlw/conf/encrypt.pass
    примечание

    Файл имеет владельца grdl-svc, так как к нему обращается процесс приложения, запущенный от этого пользователя. Фраза должна быть такой же, как используется в Vault для шифрования/дешифрования данных.

Шаг 10. Настройка JMX мониторинга (опционально)​

JMX (Java Management Extensions) используется для мониторинга приложения. Выполнение шага представляет собой следующие этапы:

  1. Создайте файл jmxremote.access — замените [jmx_user] на имя пользователя для доступа к метрикам:

    cat > /opt/cdc/grdlw/conf/jmx/jmxremote.access <<EOF
    [jmx_user] readonly
    EOF

    chown grdl-svc:grdl-svc /opt/cdc/grdlw/conf/jmx/jmxremote.access
    chmod 400 /opt/cdc/grdlw/conf/jmx/jmxremote.access
  2. Создайте файл jmxremote.password — замените оба [change_me] на имя пользователя и пароль:

    cat > /opt/cdc/grdlw/conf/jmx/jmxremote.password <<EOF
    [jmx_user] [jmx_password]
    EOF

    chown grdl-svc:grdl-svc /opt/cdc/grdlw/conf/jmx/jmxremote.password
    chmod 400 /opt/cdc/grdlw/conf/jmx/jmxremote.password
  3. Проверьте JMX файлы:

    ls -la /opt/cdc/grdlw/conf/jmx/

    Ожидаемый вывод:

    -r-------- 1 grdl-svc grdl-svc <размер> дата jmxremote.access
    -r-------- 1 grdl-svc grdl-svc <размер> дата jmxremote.password
    примечание

    JMX порты настраиваются в start.sh: порт 9020 для JMX и RMI.

Шаг 11. Настройка скрипта start.sh​

Выполнение шага представляет собой следующие этапы:

  1. Создайте скрипт запуска /opt/cdc/grdlw/conf/start.sh. Этот скрипт запускает приложение с нужными параметрами JVM.

    Важно

    Не перенаправляйте stdout/stderr в /dev/null — при запуске через systemd вывод процесса требуется для journal (command journalctl -u grdlw). Перенаправление в /dev/null сделает невозможным просмотр логов через systemd journal.

    # Если не настроен JMX, параметры вида "-Dcom.sun.management.*" из массива jar_args можно убрать
    cat > /opt/cdc/grdlw/conf/start.sh <<EOF
    #!/usr/bin/bash

    jar_args=(
    "-Dcom.sun.management.jmxremote=true"
    "-Dcom.sun.management.jmxremote.port=9020"
    "-Dcom.sun.management.jmxremote.rmi.port=9020"
    "-Dcom.sun.management.jmxremote.ssl=false"
    "-Dcom.sun.management.jmxremote.ssl.need.client.auth=false"
    "-Dcom.sun.management.jmxremote.authenticate=true"
    "-Dcom.sun.management.jmxremote.password.file=/opt/cdc/grdlw/conf/jmx/jmxremote.password"
    "-Dcom.sun.management.jmxremote.access.file=/opt/cdc/grdlw/conf/jmx/jmxremote.access"
    "-Dlogging.config=/opt/cdc/grdlw/conf/logback.xml"
    "-Dspring.config.location=/opt/cdc/grdlw/conf/grdlw.properties"
    "-Dspring.profiles.active=EXTERNAL-VM"
    "-XX:+UseG1GC"
    "-XX:InitialRAMPercentage=40.0"
    "-XX:MaxRAMPercentage=80.0"
    )
    jar_path="/opt/cdc/grdlw/bin/grdlw.jar"
    java_path="/usr/bin/java"

    exec $java_path "${jar_args[@]}" -jar $jar_path
    EOF
  2. Установите владельца и права доступа:

    chown grdl-svc:grdl-svc /opt/cdc/grdlw/conf/start.sh
    chmod 755 /opt/cdc/grdlw/conf/start.sh
  3. Проверьте скрипт:

    ls -la /opt/cdc/grdlw/conf/start.sh
    bash -n /opt/cdc/grdlw/conf/start.sh

    Ожидаемый вывод:

    -rwxr-xr-x 1 grdl-svc grdl-svc <размер> дата start.sh

    Описание ключевых параметров JVM:

    ПараметрОписание
    com.sun.management.jmxremote.*Настройки JMX мониторинга
    logging.config=...Путь к logback.xml
    spring.config.location=...Путь к grdlw.properties
    spring.profiles.active=EXTERNAL-VMАктивный профиль Spring
    XX:+UseG1GCИспользование G1 GC
    XX:InitialRAMPercentage=40.0Начальный размер heap (40% от RAM)
    XX:MaxRAMPercentage=80.0Максимальный размер heap (80% от RAM)

Шаг 12. Настройка SystemD сервиса​

Выполнение шага представляет собой следующие этапы:

  1. Создайте файл сервиса SystemD /etc/systemd/system/grdlw.service:

    Unit-файл grdlw.service
    :language: txt
    Важно

    Параметр KillMode=process обеспечивает корректную остановку основного процесса. additional ExecStop не требуется, так как KillMode управляет отправкой SIGTERM.

  2. Перезагрузите конфигурацию systemd и включите сервис:

    systemctl daemon-reload
    systemctl enable grdlw.service

    Ожидаемый вывод systemctl enable:

    Created symlink /etc/systemd/system/multi-user.target.wants/grdlw.service → /etc/systemd/system/grdlw.service.
  3. Проверьте файл сервиса:

    cat /etc/systemd/system/grdlw.service
    systemd-analyze verify /etc/systemd/system/grdlw.service

    Описание ключевых параметров сервиса:

    ПараметрОписание
    User/Group=grdl-svcПользователь и группа для запуска
    LimitNOFILE=65536Максимальное количество открытых файлов
    KillMode=processРежим остановки (SIGTERM только основному процессу)
    Restart=on-failureПерезапуск при падении
    RestartSec=30sПауза перед перезапуском

Шаг 13. Настройка прав доступа (ACL)​

Выполнение шага представляет собой следующие этапы:

  1. Настройте ACL для пользователя grdl (полный доступ):

    Команды установки acl
    setfacl -m u:grdl:rwx /opt/cdc/grdlw
    setfacl -m u:grdl:rwx /opt/cdc/grdlw/bin
    setfacl -m u:grdl:rwx /opt/cdc/grdlw/conf
    setfacl -m u:grdl:rwx /opt/cdc/grdlw/logs
    setfacl -m u:grdl:rwx /opt/cdc/grdlw/ssl
    setfacl -m u:grdl:rwx /opt/cdc/grdlw/dumps
    setfacl -m u:grdl:rwx /opt/cdc/grdlw/tmp
    setfacl -m u:grdl:rwx /opt/cdc
  2. Настройте ACL для пользователя grdl-dvps (полный доступ):

    Команды установки acl
    setfacl -m u:grdl-dvps:rwx /opt/cdc/grdlw
    setfacl -m u:grdl-dvps:rwx /opt/cdc/grdlw/bin
    setfacl -m u:grdl-dvps:rwx /opt/cdc/grdlw/conf
    setfacl -m u:grdl-dvps:rwx /opt/cdc/grdlw/logs
    setfacl -m u:grdl-dvps:rwx /opt/cdc/grdlw/ssl
    setfacl -m u:grdl-dvps:rwx /opt/cdc/grdlw/dumps
    setfacl -m u:grdl-dvps:rwx /opt/cdc/grdlw/tmp
    setfacl -m u:grdl-dvps:rwx /opt/cdc
  3. Настройте ACL для пользователя grdl-svc (ограниченный доступ):

    Команды установки acl
    setfacl -m u:grdl-svc:r-x /opt/cdc/grdlw
    setfacl -m u:grdl-svc:r-x /opt/cdc/grdlw/bin
    setfacl -m u:grdl-svc:r-x /opt/cdc/grdlw/bin/grdlw.jar
    setfacl -m u:grdl-svc:r-x /opt/cdc/grdlw/conf
    setfacl -m u:grdl-svc:r-- /opt/cdc/grdlw/conf/logback.xml
    setfacl -m u:grdl-svc:r-- /opt/cdc/grdlw/conf/grdlw.properties
    setfacl -m u:grdl-svc:rwx /opt/cdc/grdlw/logs
    setfacl -m u:grdl-svc:rwx /opt/cdc/grdlw/ssl
    setfacl -m u:grdl-svc:rwx /opt/cdc/grdlw/dumps
    setfacl -m u:grdl-svc:--- /opt/cdc/grdlw/tmp
    setfacl -m u:grdl-svc:r-x /opt/cdc
  4. Настройте ACL для пользователя grdl-ro (только чтение):

    Команды установки acl
    setfacl -m u:grdl-ro:r-x /opt/cdc/grdlw
    setfacl -m u:grdl-ro:r-x /opt/cdc/grdlw/bin
    setfacl -m u:grdl-ro:r-x /opt/cdc/grdlw/conf
    setfacl -m u:grdl-ro:r-x /opt/cdc/grdlw/logs
    setfacl -m u:grdl-ro:r-x /opt/cdc/grdlw/ssl
    setfacl -m u:grdl-ro:--- /opt/cdc/grdlw/dumps
    setfacl -m u:grdl-ro:--- /opt/cdc/grdlw/tmp
    setfacl -m u:grdl-ro:r-x /opt/cdc
  5. Проверьте ACL:

    Команды проверки acl
    getfacl /opt/cdc/grdlw
    getfacl /opt/cdc/grdlw/conf
    getfacl /opt/cdc/grdlw/bin/grdlw.jar

Шаг 14. Настройка SSL сертификатов (опционально)​

Выполнение шага представляет собой следующие этапы:

  1. Скопируйте SSL сертификаты в директорию /opt/cdc/grdlw/ssl/:

    Замените /path/to/ на пути к вашим сертификатам.

    cp /path/to/db_keystore.p12 /opt/cdc/grdlw/ssl/
    cp /path/to/client_keystore.p12 /opt/cdc/grdlw/ssl/
    cp /path/to/truststore.p12 /opt/cdc/grdlw/ssl/
  2. Установите права доступа:

    chown grdl-svc:grdl-svc /opt/cdc/grdlw/ssl/*.p12
    chmod 400 /opt/cdc/grdlw/ssl/*.p12
  3. Проверьте результат:

    ls -la /opt/cdc/grdlw/ssl/

    Ожидаемый вывод:

    -r-------- 1 grdl-svc grdl-svc <размер> дата db_keystore.p12
    -r-------- 1 grdl-svc grdl-svc <размер> дата client_keystore.p12
    -r-------- 1 grdl-svc grdl-svc <размер> дата truststore.p12
    примечание

    Пароли для сертификатов должны быть указаны в grdlw.properties (параметры management.server.ssl.key-store-password, management.server.ssl.key-password, management.server.ssl.trust-store-password, spring.ssl.bundle.jks.tls.keystore.password, spring.ssl.bundle.jks.tls.truststore.password).

Шаг 15. Запуск и проверка​

Выполнение шага представляет собой следующие этапы:

  1. Запустите сервис:

    systemctl start grdlw
  2. Проверьте статус:

    systemctl status grdlw

    Ожидаемый вывод:

    ● grdlw.service - GraDeLy replication worker service
    Loaded: loaded (/etc/systemd/system/grdlw.service; enabled; vendor preset: disabled)
    Active: active (running) since ...
  3. Просмотрите логи приложения:

    # Основные логи приложения
    tail -f /opt/cdc/grdlw/logs/log_YYYY-MM-DD_N.log

    # Логи REST вызовов
    tail -f /opt/cdc/grdlw/logs/log_audit_YYYY-MM-DD_N.log

    # Логи Vault (опционально)
    tail -f /opt/cdc/grdlw/logs/log_secman_YYYY-MM-DD_N.log

    # Логи Kafka
    tail -f /opt/cdc/grdlw/logs/log_kafka_YYYY-MM-DD_N.log
  4. Проверьте JMX порт (опционально):

    netstat -tlnp | grep 9020
    # или
    ss -tlnp | grep 9020

    Ожидаемый вывод:

    tcp6 0 0 :::9020 :::* LISTEN 1234/java
  5. Проверьте работу приложения:

    Замените [port] на значение параметра server.port из файла grdlw.properties, а [vm_host] — на IP-адрес или FQDN целевой ВМ.

    # Проверка HTTP endpoint
    curl -s http://localhost:[port]/Settings/isActive | jq

    # Проверка JMX метрик через jconsole
    jconsole [vm_host]:9020

При необходимости:

# Перезапуск сервиса
systemctl restart grdlw

# Остановка сервиса
systemctl stop grdlw

# Просмотр логов systemd
journalctl -u grdlw -f

Приложение. Часто используемые команды​

# Проверка версии Java
java -version

# Проверка статуса сервиса
systemctl status grdlw

# Запуск сервиса
systemctl start grdlw

# Остановка сервиса
systemctl stop grdlw

# Перезапуск сервиса
systemctl restart grdlw

# Включение сервиса при загрузке
systemctl enable grdlw

# Отключение сервиса при загрузке
systemctl disable grdlw

# Просмотр логов сервиса через systemd journal
journalctl -u grdlw -f

# Просмотр основных логов приложения
tail -f /opt/cdc/grdlw/logs/log_YYYY-MM-DD_N.log

# Просмотр логов REST вызовов
tail -f /opt/cdc/grdlw/logs/log_audit_YYYY-MM-DD_N.log

# Проверка JMX порта
netstat -tlnp | grep 9020

# Проверка ACL
getfacl /opt/cdc/grdlw/conf

# Проверка прав доступа
ls -la /opt/cdc/grdlw/

# Проверка sudoers файлов
cat /etc/sudoers.d/grdl-sudoers
cat /etc/sudoers.d/grdl-dvps-sudoers

# Проверка синтаксиса sudoers
visudo -cf /etc/sudoers.d/grdl-sudoers