Администрирование системы
Администрирование системы
Руководство по мониторингу, резервному копированию, обновлению и устранению неисправностей 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 Dashboard для визуализации метрик.
Настройка алертов
Рекомендуемые пороги для срабатывания алертов:
Метрика | Условие срабатывания | Описание |
---|---|---|
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
Проверка восстановления
- Проверьте подключение к базе данных
- Убедитесь в работе health checks
- Протестируйте основные функции (вход, создание диаграммы)
- Проверьте логи на наличие ошибок
Обновление версии
Процедура обновления
Шаг | Действие | Описание |
---|---|---|
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_ORIGINS | https://your.domain | CORS настройки (не используйте * !) |
STORM_DISABLE_SIMPLE_AUTH | false | Отключение базовой авторизации |
STORM_DISABLE_ENV_IN_UI | true | Скрытие ENV в админке |
STORM_DISABLE_ANON_SHARING | true | Запрет анонимного доступа |
STORM_SENTRY_ENABLE | false | Отключение Sentry |
STORM_ENABLE_SAAS_FEATURES | false | Отключение SaaS функций |
GOTENBERG_URL | http://gotenberg:3001 | URL сервиса конвертации |
Версия ≥ 6.6.559
Требуется расширение PostgreSQL:
CREATE EXTENSION IF NOT EXISTS pgcrypto;
Disaster Recovery
При обновлении
Если обновление прошло неудачно:
Сохранить логи контейнера
docker logs stormbpmn > /tmp/update_error_logs.txt
Восстановить базу данных
pg_restore --format=t -c -N -O -h localhost -p 5432 -U storm_user -d storm_db /backup/latest_backup.tar
Откатить версию контейнера
docker load < backup_image.tar docker-compose up -d
Перезапустить контейнеры
docker-compose restart
Обратиться в поддержку с информацией:
- Исходная версия
- Целевая версия
- Логи ошибок
- Конфигурация системы
При базовой эксплуатации
При проблемах в работе системы:
Сохранить логи
docker logs stormbpmn > /tmp/error_logs.txt
Перезапустить контейнеры
docker-compose restart
Проверить состояние
- Health checks отвечают
- Метрики в норме
- Пользователи могут войти
При сохранении проблем - обращение в поддержку
Связанная документация
- Конфигурация - настройка системы
- Production-Ready - развертывание для продакшена
- Безопасность - настройки безопасности