Релизы

v1.6.1

Веб-интерфейс управления кластером, аудитные логи, провайдер DeepSeek, обновлённые дашборды, MCP Gateway и гранулярные права доступа через Role Binding.

Что добавлено

Веб-интерфейс управления кластером

В разделе Cluster появились страницы для наблюдения за кластером и управления им без обращения к API:

  • Status — состояние узлов, Raft-реплик и gossip. Узлы можно добавлять, выводить из работы (drain), активировать и исключать, а лидерство групп — передавать другим узлам.
  • Shards — шарды, их реплики, число заказчиков и миграции. Шарды можно добавлять и удалять.
  • Journal — история версий топологии кластера.
  • Events — хронология смен лидеров, потери и восстановления кворума, изменений доступности узлов.

Заказчика можно перенести на другой шард со страницы заказчика.

Страница состояния кластера

Подробнее — в разделе Кластеризация.

Журнал аудитных логов

Страница Governance → Audit Logs показывает решения системы прав доступа: какой пользователь запросил какое разрешение к какому ресурсу, было ли обращение разрешено и по какой причине. Журнал фильтруется по периоду, разрешению, уровню ресурса и решению.

Запись включается параметром authz.access_audit_mode в config.json. По умолчанию она выключена.

Страница аудитных логов

Подробнее — на странице Аудитные логи.

Провайдер DeepSeek

Добавлен провайдер DeepSeek:

  • Chat Completions и Responses API со streaming, tool calling и reasoning;
  • beta text completions;
  • подсчёт токенов;
  • режим Anthropic-совместимых эндпоинтов на уровне ключа или алиаса модели.

Подробнее — на странице DeepSeek.

Обновлённые дашборды и расширенная фильтрация

Страница Observability → Dashboard получила новый интерфейс:

  • вкладки обзора, использования провайдеров, рейтингов моделей, рейтингов по измерениям и MCP;
  • графики объёма запросов, токенов, стоимости, задержки, пропускной способности и попаданий в кэш;
  • экспорт данных.

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

MCP Gateway и каталог MCP-серверов

Появился раздел MCP Gateway для подключения MCP-серверов и управления ими:

  • MCP Catalog — каталог инструментов подключённых MCP-серверов;
  • MCP Library — установка MCP-серверов из подобранной библиотеки;
  • Auth Sessions и OAuth Grants — пользовательские OAuth-сессии и выданные разрешения для MCP-серверов;
  • MCP Settings — настройки шлюза;
  • MCP Logs — журнал вызовов MCP-инструментов.

Использование MCP-инструментов отображается на отдельной вкладке дашборда.

Гранулярные права доступа через Role Binding

Права доступа назначаются привязкой встроенной роли к пользователю в определённой области: на весь шлюз, на заказчика, команду или пользователя. Привязки управляются на странице Governance → Role Bindings.

РольОбластьНазначение
g.adminВесь шлюзГлобальный администратор
g.viewerВесь шлюзПросмотр без изменений
g.user-managerВесь шлюзУправление пользователями и governance
g.budget-managerВесь шлюзУправление бюджетами
s.adminЗаказчик, команда, пользовательАдминистратор области
s.user-managerЗаказчик, командаУправление пользователями области
s.budget-managerЗаказчик, командаУправление бюджетами области
s.viewerЗаказчик, команда, пользовательПросмотр области
Страница Role Bindings

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

Подробнее — на странице Управление ролями (RBAC).

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

Локальное хранилище Raft WAL и снапшотов

Обязательный шаг для кластера и режимов с PostgreSQL. В 1.6.1 Raft-журнал (WAL) и снапшоты бюджетных шардов хранятся не в PostgreSQL, а в локальном каталоге каждого узла. Перед обновлением подготовьте на каждом узле постоянное хранилище. Без него состояние Raft теряется при перезапуске контейнера или пода.

Требования к хранилищу:

  • Постоянное. Каталог должен переживать перезапуск процесса, контейнера и пода. emptyDir в Kubernetes и файловая система контейнера без volume не подходят.
  • Своё у каждого узла. Общий NFS или один volume на все узлы недопустим.
  • Производительное. В каталог пишутся журнал и снапшоты всех шардов узла. Его размер и IOPS входят в профиль нагрузки.
  • Резервное копирование. Бэкап базы данных больше не содержит Raft-журнал. Сохраняйте и базу, и каталог данных каждого узла.

Путь к каталогу задаётся в порядке приоритета: переменная MERIDIAN_DATA_DIR, поле cluster_config.data_dir, значение по умолчанию /var/lib/meridian/data. Docker-образ Meridian задаёт MERIDIAN_DATA_DIR=/app/data.

РазвёртываниеЧто сделать
Docker / Docker ComposeСмонтируйте отдельный volume в /app/data для каждого узла.
KubernetesИспользуйте StatefulSet с volumeClaimTemplates: отдельный PVC на под, смонтированный в /app/data.
Виртуальные машиныРазместите data_dir на постоянном локальном диске узла и дайте процессу права на запись.

Раскладка каталога:

<data_dir>/
  node.bolt        журнал событий отказоустойчивости
  raft/
    _meta.bolt       топология кластера
    budget/<shard_id>/
      identity.json    привязка узла, кластера, шарда и реплики
      state.bolt       применённый индекс и маркер снапшота
      wal/             сегменты журнала
      snap/            снапшоты

Что происходит при первом запуске 1.6.1:

  1. Узел один раз копирует состояние Raft из таблиц PostgreSQL прежнего формата в локальный каталог и оставляет маркер. Старые строки не изменяются.
  2. Дальше новые записи существуют только в локальном каталоге.

Откат на предыдущую версию возвращает состояние только на момент первого запуска 1.6.1. Не удаляйте таблицы прежнего формата, пока в кластере остаются узлы предыдущей версии.

Если каталог данных узла стёрт или смонтирован не к тому узлу, запуск завершается фатальной ошибкой привязки identity. Это защита от небезопасного возврата в кворум. Шаблоны Docker Compose, StatefulSet и systemd с правильным хранилищем — в разделе Конфигурация кластера.

Прочие изменения

  • Пользователи с прежними ролями admin, auditor и user_manager получают соответствующие глобальные роли g.admin, g.viewer и g.user-manager.
  • Поле deployments в настройках ключей Azure, Vertex и Bedrock заменено на aliases. Значения, сохранённые в базе данных, переносятся автоматически. В config.json перенесите их вручную — см. Алиасы моделей.
  • Запись аудитных логов по умолчанию выключена. Чтобы вести журнал, задайте authz.access_audit_mode.

Установка

Основной реестр — GitHub (ghcr.io). Веб-интерфейс кластера, аудитные логи и привязки ролей доступны в Enterprise-образе.

docker pull ghcr.io/neria-cloud/meridian:1.6.1
# или
docker pull cr.yandex/crpkr81t74cospldeta1/meridian:1.6.1
docker pull ghcr.io/neria-cloud/meridian-ent:1.6.1
# или
docker pull cr.yandex/crpkr81t74cospldeta1/meridian-ent:1.6.1

Ссылки

Содержание