Установка Enterprise версии
Запуск Meridian Enterprise из Docker-образа, подключение лицензии и проверка корректного старта.
Образ
Enterprise-сборка публикуется отдельно от Community и доступна по адресу:
ghcr.io/neria-cloud/meridian-ent:latestИспользуйте тег latest для последнего стабильного релиза или конкретную версию вида v1.2.3 для production. Образ структурно идентичен Community-сборке, но содержит закрытые модули (кластеризация, шардирование, расширенная аутентификация и т.д.), которые активируются по лицензии.
Минимальный запуск:
docker pull ghcr.io/neria-cloud/meridian-ent:latest
docker run -p 8080:8080 \
-v meridian-data:/app/data \
-v $(pwd)/meridian.lic.txt:/opt/neria/meridian.lic.txt:ro \
ghcr.io/neria-cloud/meridian-ent:latestБез действующей лицензионного ключа контейнер сразу завершит работу с кодом 78.
Подключение лицензии
Лицензионный ключ — это короткий текст. Контейнер ищет лицензию в трёх местах в следующем порядке:
- Переменная окружения
MERIDIAN_LICENSE_STR— содержимое ключа передаётся напрямую. Удобно для Kubernetes Secret и аналогичных систем, в которых секреты приходят как переменные окружения. - **Файл
MERIDIAN_LICENSE_FILE- путь к файлу с ключем, по умолчанию -/opt/neria/meridian.lic.txt. Если смонтировать файл по этому пути, никакие переменные окружения задавать не нужно. Это рекомендуемый способ для большинства развёртываний. - HTTPS-адрес в переменной
MERIDIAN_LICENSE_URL— контейнер скачает лицензию при старте. Поддерживается только HTTPS, таймаут 10 секунд. Подходит для централизованной выдачи лицензий собственным сервисом.
Достаточно одного из трёх способов; следующий используется, только если предыдущий не задан.
Жизненный цикл
- Истечение во время работы не останавливает контейнер. Раз в час в журнал пишется предупреждение, в API-эндпоинте
GET /api/editionполеexpiredстановитсяtrue, в веб-интерфейсе появляется баннер. - Замена лицензии требует перезапуска контейнера. Обновление без перезапуска не поддерживается.
- Невалидная или просроченная на старте лицензия всегда приводит к завершению с кодом
78. Автоматического перехода в Community-режим не происходит — это сделано осознанно, чтобы не маскировать проблему.
Проверка запуска
При корректной конфигурации контейнер выводит на старте две строки, фиксирующие активную редакцию:
Meridian — Enterprise build · license: Enterprise · customer: "Acme Co" · expires: 2027-01-01T00:00:00Z
level=info edition binary=enterprise license_edition=enterprise customer="Acme Co" expires_at=2027-01-01T00:00:00ZПервая строка — человекочитаемый баннер. Вторая — структурированная запись для систем сбора логов; на неё удобно ставить мониторинг и алерты.
Поля баннера:
license—ProилиEnterprise. Pro-лицензия не активирует кластеризацию и шардирование; это нормальное поведение, не ошибка.customer— название компании из лицензии.expires— дата истечения в UTC.
После баннера идёт обычная инициализация сервера и запуск HTTP-слушателя на порту 8080.
Признаки проблем
| Что в журнале | Что значит | Что делать |
|---|---|---|
license_load failed: … и выход с кодом 78 | Лицензия не найдена или не прошла проверку | Проверьте путь к файлу, переменные окружения и срок действия лицензии |
Баннер показывает license: Pro, хотя ожидалась Enterprise | Подключена не та лицензия | Запросите Enterprise-лицензию у поддержки сервиса |
Раз в час повторяется license_expired | Лицензия истекла после старта | Запросите новую, примените ее и перезапустите контейнер |
Дальнейшие шаги
- Кластеризация — высокодоступное развёртывание из нескольких контейнеров.
- Шардирование — распределение нагрузки по шардам.
Кластеризация
Высокодоступное развёртывание Meridian на нескольких нодах с peer-to-peer-архитектурой, gossip-протоколом и Raft-координацией бюджетов.
Шардинг
Партиционирование governance-состояния по шардам для горизонтального роста пишущей нагрузки. Customer (со всеми его командами и виртуальными ключами) — единица назначения; миграция между шардами поддерживается без потери in-flight запросов.