Перейти к основному содержанию
`Ctrl`+`K`

# Администрирование системы

## Обзор компонентов администрирования

### Конфигурационные файл

`global3.config.xml` - основной конфигурационный файл сервера приложения. Данная конфигурация задается до старта сервера. Основные параметры:

- База данных.

- Квоты.

- Параметры доступа к ssh консоли сервера.

### Ssh консоль сервера приложения

Основные задачи консоли, ручное управление миграцией данных:

- синхронизация схемы базы данных;

- добавление лицензии;

- список сессий;

- отключение сессий.

Пример подключения к консоли:

    ssh admin@127.0.0.1 -p 2299

Совет

Документацию по командам смотрите командой `help` в консоли

### Настройка системы

После старта системы и разворачивания схемы базы данных доступен веб интерфейс из которого можно сконфигурировать административные параметры системы.

- `Настройка системы > Сущности > Настройка файлового хранилища` - позволяет задать правила хранения файлов в системе.

## Запуск и остановка сервера Global

Команда запуска сервера:

    systemctl start global3

Перезапуск сервера:

    systemctl restart global3

Остановка сервера:

    systemctl stop global3

## Запуск сервера через скрипт

Раздел описывает процедуру ручного запуска сервера Global 3 с использованием встроенного скрипта `start.sh`.

Скриптовый запуск предназначен для отладки и диагностики работы приложения Global 3. Он позволяет наблюдать вывод логов в реальном времени и быстро выявлять причины ошибок при старте сервера или во время его работы.

Такой способ рекомендуется использовать только в следующих случаях:

- Отладка приложения - проверка корректности конфигурации, подключения к СУБД, загрузки плагинов и т.д.

- Проверка после обновления - убедиться, что новая версия успешно запускается вручную перед активацией системного сервиса.

- Диагностика проблем с systemd - если служба global3 не стартует или завершается с ошибкой.

Важно

В рабочем (продуктивном) режиме сервер должен запускаться через systemd как сервис `global3`.
Ручной запуск через скрипт применяется только для временной диагностики и не используется в постоянной эксплуатации.

Перед запуском убедитесь, что служба global3 остановлена (если она существует):

    systemctl stop global3

Перейдите в каталог приложения. По умолчанию сервер установлен в директорию:

    cd /opt/global/globalserver

Если используется нестандартный путь, замените его на актуальный каталог расположения исполняемых файлов приложения.

Выполните запуск bash-скрипта с правами root:

    sudo ./start.sh

После успешного запуска приложение станет доступно по сетевому порту, указанному в конфигурации. По умолчанию используется порт: `8080`

Работа с активным процессом:

- Не закрывайте окно терминала, в котором выполняется сервер — это приведёт к его остановке.

- Для выполнения дополнительных команд или взаимодействия с системой откройте второе SSH-подключение или новую вкладку терминала.

- Для корректного завершения работы сервера активируйте окно с запущенным процессом и нажмите комбинацию клавиш: `Ctrl + C`.

## Запуск и остановка планировщика заданий

Команда запуска:

    systemctl start globalscheduler

Перезапуск:

    systemctl restart globalscheduler

Остановка:

    systemctl stop globalscheduler

## Настройка файлового хранилища

Система версионного хранения файлов может работать в двух режимах:

- SMB/CIFS - медленный режим. Подключается к сетевому ресурсу каждый раз, когда требуется доступ файлу.

- Локальное хранилище – быстрый режим. Работает с локальной директорией на сервере.

Рекомендуется обеспечить инкрементное резервное копирование директории или сетевого ресурса, который будет использоваться для файлового хранилища Global System.
Количество файловых хранилищ в системе Global не ограничено. Обычно хранилища создаются на каждую функциональную подсистему (Например: система документооборота, система прикрепленных файлов, система интеграции и репликации и т.д.)

Для настройки файловых хранилищ требуется открыть приложение Настройка системы:

Открыть меню: `Сущности -> Файловые хранилища`

В списке разблокировать редактирование

Указать для всех файловых хранилищ тип «локальное» и «Путь до хранилища» (Например: /mnt/1tb/globalfilestorage/)

## Перенос файлового хранилища в системе

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

### Порядок действий

#### Подготовка исходного хранилища

1. Перейдите в раздел `Настройки системы -> Сущности -> Файловые хранилища.`

2. Включите режим редактирования

Совет

Используется как для переименования, так и для создания нового хранилища.
Для активации режима редактирования нажмите соответствующую кнопку в интерфейсе списка.

3. Выберите хранилище, подлежащее переносу, и добавьте к его названию суффикс _old (например, `storage` → `storage_old`).

#### Создание нового хранилища

1. Создайте новую запись в списке файловых хранилищ.

2. Заполните обязательные поля:

   - Системное имя (Наименование старого хранилища, без суффикса `_old`)

   - Папка для хранения

   - Наименование

   - Тип файлового хранилища

   - Путь до хранилища

3. Сохраните новое хранилище.

#### Настройка переноса данных

1. У исходного хранилища (с суффиксом `_old`) перейдите на вкладку `Настройка очистки хранилища от устаревших файлов.`

2. Создайте новую запись, указав:

   - Срок хранения = 0

   - Действие = «Переместить»

   - Целевое хранилище (выберите только что созданное хранилище).

### Регламент выполнения операции

Перенос файлов выполняется автоматически в рамках ночного задания «Актуализация расположения файлов в файловых хранилищах».

### Запуск вручную

При необходимости немедленного выполнения доступны следующие варианты:

- Через Менеджер заданий (внеплановый запуск соответствующей задачи).

- Через JEXL-скрипт:

      Btk_FileStorageCleanSettingApi.procTempFiles()

## Настройка ключей шифрования

Процесс генерации и настройки ключей шифрования описан в документации GlobalScheduler.

## Обновление системы

Для обновления системы используется специальная утилита: `/opt/global/globalserver/update`

Перед использованием следует сформировать конфигурационный файл: `update/config.sh` (`config.ps1`) на основе `config.sh.origin`. После формирования файла загрузите полученные дистрибутивы в каталог, который вы указали в настройках файла в переменной `sTmp=`.

Совет

Хранить пароль в конфигурационном файле необязательно - если пароль не указан, он будет запрошен во время выполнения утилиты.

Предупреждение

Утилита провоцирует необратимые изменения в базе данных. Перед использованием делайте резервные копии БД.

### Режимы обновления

Предусмотрены следующие режимы обновления:

- upgrade - обновляет `jar`-файлы прикладных модулей. Устанавливает релиз (без рестарта).

- jarOnly - обновление только `jar` файлов прикладного решения (без рестарта), используется по умолчанию

- dbGen - обновление `jar` файлов прикладного решения с запуском генератора схемы Сервер переводится в сервисный режим, у всех пользователей автоматически выполняется выход из системы. Вход в систему разрешается после установки обновления.

- dbGenAc – тоже самое что и `dbGen` плюс синхронизация прав доступа и объектных привилегий. Полная синхронизация прав доступа может занимать продолжительное время, поэтому не рекомендуется запускать этот режим в рабочее время.

- server - обновление сервера приложений (без обновления прикладного решения). Сервер останавливается, выполняется обновление исполняемых файлов и ресурсов. После обновления сервер автоматически запускается.

- full - режим полного обновления, при котором сначала обновляется сервер, а потом образ прикладного решения.

Режим обновления передается в утилиту параметром `-m`:

    /opt/global/globalserver/update/update.sh -m DbGen

### Режим восстановления

Примечание

Режим восстановления появился недавно и поэтому может быть недоступен на вашей системе.

Во время обновления утилита автоматически создает резервные копии сервера приложений и прикладного решения (но не БД!). Вы можете откатиться к ним при помощи команды `update.sh -r`. Эта команда начнет диалог, который предложит выбрать резервные копии для восстановления, а затем и само восстановление.

Если интерактивность не требуется, вы можете также добавить аргументы `-s` и `-а`. Укажите после первого путь к резервной копии сервера приложений, а после второго - прикладного решения. Вы можете указать вместо пути слово `skip`, это позволит пропустить обновление соответствующего компонента.

    ./update.sh -r -s skip
    # выводит диалоговое окно выбора резервной копии прикладного решения и восстанавливает ее
    ./update.sh -r -s /tmp/globalupdate/update_yesterday/backup_server.tgz -a /tmp/globalupdate/update_yesterday/backup_applib.tgz
    # восстанавливает сервер приложений и прикладной решение из указанных резервных копий

## Отображение «Журнал обновления модулей»

Расположение: `Настройки системы > Аудит > Журнал обновлений` Путь к журналу Интерфейс журнала обновлений

Существующие закладки:

1. Обновление модулей - отображение в виде дерева, поделенное на раздел с обновленными и необновленными модулями.

2. Обновление схемы - содержит информацию о всех выполненных при генерации таблиц, DDL-скриптах в виде текста скрипта и возможной ошибки.

3. Скрипты обновления схемы и данных - содержит информацию о всех, выполненных при генерации таблиц, скриптах в виде модуля и наименования, версий и текста возможной ошибки.

4. Лог обновления - содержит полную информацию отчета генератора

5. Скрипты, выполненные до и после обновления схемы.

6. Миграционные задачи upTask и downTask.

- Атрибуты в виде галочек информируют о наличии записей в одноименных закладках. Соответственно, если запись есть - галочка стоит.

- Закрашивание поля красным сигнализирует о том, что в записях одноименных закладок имеются ошибки.

### Механизм построения выборки при генерации таблиц через ssh

Добавление записей в журнал происходит только при генерации таблиц через ssh.

Запись данных о версиях модулей Срабатывает метод `dataUpdate` класса `DbSchemaUpdater`

Этот метод:

- Берет старые и новые версии модулей.

- Версии комплектов сборки.

- Обновляет в соответствии с этими данными, запись с соответствующим id сессии (который каждый раз увеличивается на 1).