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

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

Около 2 мин

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

Руководство по мониторингу, резервному копированию, обновлению и устранению неисправностей StormBPMN Enterprise.

Основные задачи администратора

  • Мониторинг - отслеживание состояния системы и производительности
  • Резервное копирование - регулярное сохранение данных
  • Обновления - установка новых версий и исправлений
  • Устранение неисправностей - диагностика и решение проблем

Мониторинг системы

Метрики Prometheus

StormBPMN предоставляет HTTP-endpoint с метриками в формате Micrometer для мониторинга через Prometheus.

Конфигурация Prometheus:

- job_name: "stormbpmn-node-1"
  metrics_path: "/actuator/prometheus"
  scrape_interval: 15s
  static_configs:
      - targets: ["10.1.0.3:8080"]

Готовый дашборд Grafana

Используйте Spring Boot Statistics Dashboardopen in new window для визуализации метрик.

Настройка алертов

Рекомендуемые пороги для срабатывания алертов:

МетрикаУсловие срабатыванияОписание
CPU Usage> 90% в течение 5 минутВысокая загрузка процессора
Request Count /api/v1/> 100 запросов в минутуАномально высокая нагрузка
HEAP Memory Used> 90% в течение 5 минутНехватка памяти JVM
No Data> 5 минут без данныхНедоступность сервиса

При срабатывании алертов

Переходите к разделу Disaster Recovery

Health Checks

StormBPMN предоставляет эндпоинты для проверки состояния:

livenessProbe:
    httpGet:
        path: /api/health/liveness
        port: 8080
    initialDelaySeconds: 30
    periodSeconds: 5

readinessProbe:
    httpGet:
        path: /api/health/readiness
        port: 8080
    initialDelaySeconds: 30
    periodSeconds: 5

Резервное копирование

Что необходимо копировать

Вся критически важная информация (диаграммы, описания, пользователи) хранится в базе данных PostgreSQL.

Достаточно резервного копирования БД

S3-файлы (изображения, документы) можно восстановить, но рекомендуется включить их в backup стратегию.

Создание резервной копии

Пример команды для PostgreSQL:

pg_dump -h localhost -d storm_db -U storm_user -W -Ft -b > /backup/storm_$(date +%Y%m%d_%H%M%S).tar

Рекомендуемый скрипт автоматизации:

#!/bin/bash
BACKUP_DIR="/backup/stormbpmn"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="$BACKUP_DIR/storm_backup_$DATE.tar"

# Создание резервной копии
pg_dump -h $DB_HOST -d $DB_NAME -U $DB_USER -W -Ft -b > $BACKUP_FILE

# Проверка успешности
if [ $? -eq 0 ]; then
    echo "Backup successful: $BACKUP_FILE"
    # Отправка уведомления об успехе
else
    echo "Backup failed!"
    # Отправка алерта администратору
fi

# Очистка старых копий (старше 30 дней)
find $BACKUP_DIR -name "storm_backup_*.tar" -mtime +30 -delete

Требования к резервному копированию


Восстановление из резервной копии

Восстановление PostgreSQL

# Остановка приложения
docker stop stormbpmn

# Восстановление базы данных
pg_restore --format=t -c -N -O -h localhost -p 5432 -U storm_user -d storm_db /backup/storm_backup_20231201_120000.tar

# Запуск приложения
docker start stormbpmn

Проверка восстановления

  1. Проверьте подключение к базе данных
  2. Убедитесь в работе health checks
  3. Протестируйте основные функции (вход, создание диаграммы)
  4. Проверьте логи на наличие ошибок

Обновление версии

Процедура обновления

ШагДействиеОписание
0Сделать бэкап базы данных
1Убедиться, что бэкап базы разворачивается
2Определить текущую версиюdocker images | grep stormbpmn
3Изучить changelogЖурнал изменений
4Выбрать целевую версиюПроверить совместимость
5Создать резервную копиюОбязательно перед любым обновлением
6Сохранить текущий образdocker save stormbpmn:current > backup.tar
7Скачать новую версиюdocker pull stormbpmn....
8Обновить тег в текущем контейнереИзменить версию образа
9Перезапустить контейнерыdocker-compose up -d
10Проверить health checksДождаться успешных ответов

Критические обновления

Версия < 6.3.231 → новее

Требуется миграция базы данных:

UPDATE databasechangelog
SET filename = CONCAT('/db/changelog/changes/', SUBSTRING(filename, 35));

Версия ≥ 6.6.441

Требуются новые ENV переменные:

ПеременнаяЗначениеОписание
STORM_ALLOWED_ORIGINShttps://your.domainCORS настройки (не используйте *!)
STORM_DISABLE_SIMPLE_AUTHfalseОтключение базовой авторизации
STORM_DISABLE_ENV_IN_UItrueСкрытие ENV в админке
STORM_DISABLE_ANON_SHARINGtrueЗапрет анонимного доступа
STORM_SENTRY_ENABLEfalseОтключение Sentry
STORM_ENABLE_SAAS_FEATURESfalseОтключение SaaS функций
GOTENBERG_URLhttp://gotenberg:3001URL сервиса конвертации

Версия ≥ 6.6.559

Требуется расширение PostgreSQL:

CREATE EXTENSION IF NOT EXISTS pgcrypto;

Disaster Recovery

При обновлении

Если обновление прошло неудачно:

  1. Сохранить логи контейнера

    docker logs stormbpmn > /tmp/update_error_logs.txt
    
  2. Восстановить базу данных

    pg_restore --format=t -c -N -O -h localhost -p 5432 -U storm_user -d storm_db /backup/latest_backup.tar
    
  3. Откатить версию контейнера

    docker load < backup_image.tar
    docker-compose up -d
    
  4. Перезапустить контейнеры

    docker-compose restart
    
  5. Обратиться в поддержку с информацией:

    • Исходная версия
    • Целевая версия
    • Логи ошибок
    • Конфигурация системы

При базовой эксплуатации

При проблемах в работе системы:

  1. Сохранить логи

    docker logs stormbpmn > /tmp/error_logs.txt
    
  2. Перезапустить контейнеры

    docker-compose restart
    
  3. Проверить состояние

    • Health checks отвечают
    • Метрики в норме
    • Пользователи могут войти
  4. При сохранении проблем - обращение в поддержку


Связанная документация