Перейти к основному содержимому
Версия: 6.2

Настройки SM-MCP

Общая информация​

SM-MCP — серверная часть чата AI-ассистента. Сервис получает вопрос из Smart Monitor Web, обращается к языковой модели через SM-AI и выполняет операции с платформой под учетной записью пользователя. Встроенные операции работают только на чтение.

Для сохранения диалогов используется отдельный индекс истории. Содержимое сообщений шифруется сервисом до записи. Доступ пользователя к своим диалогам проверяется API SM-MCP.

Требования к размещению и порядок подключения компонентов приведены в статье Установка AI-ассистента.

Подготовка к установке​

Подготовьте:

  • архив sm-mcp-<версия>.tar.gz из поставки Smart Monitor
  • адрес API хранилища со схемой и портом и сертификат CA кластера
  • готовые сертификат и ключ HTTPS SM-MCP либо ключ CA для выпуска сертификата
  • установленный SM-AI, его адрес с /v1 и имя модели из реестра
  • административную учетную запись платформы для загрузки знаний и скиллов, подготовки и проверки защиты истории
  • доступ к конфигурации всех узлов хранилища и окно для их поочередного перезапуска
  • обычную учетную запись с правом чтения нужных данных, .sm_mcp_knowledge и .sm_agent_skills

Сертификат SM-MCP должен проверяться по CA из opensearch.ssl.certificateAuthorities на серверах Smart Monitor Web. С сервера SM-MCP должны быть доступны платформа и SM-AI.

Установка сервиса​

Распакуйте архив и запустите инсталлятор:

tar -xzf sm-mcp-<версия>.tar.gz
cd sm-mcp-<версия>
sudo ./setup.sh install

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

ГруппаЧто указать
API чатаАдрес и порт прослушивания, параметры HTTPS
ПлатформаАдрес API хранилища и путь к CA
МодельАдрес SM-AI с /v1 и имя записи его реестра
Знания и скиллыЗагрузку и проверку корпуса и скиллов из поставки
ИсторияПодготовку индексов, технической учетной записи и ключа шифрования
Smart Monitor WebНужно ли записать адрес SM-MCP в кластерные настройки

Перед изменениями инсталлятор показывает итог и запрашивает подтверждение. Административный пароль вводится с клавиатуры. Для работы AI-ассистента выберите загрузку и проверку знаний и скиллов, а также подготовку истории.

Инсталлятор создает каталоги, устанавливает конфигурацию и службу, подготавливает сертификат HTTPS и при выбранной настройке добавляет CA в системное хранилище доверия. Это необходимо для проверки сертификата SM-AI.

Параметры можно задать в файле ответов:

cp example_config_sm-mcp.yaml answers.yaml
# Заполните answers.yaml перед запуском.
sudo ./setup.sh install -c answers.yaml

Пароль администратора запрашивается отдельно. Без команды setup.sh открывает меню. Режим --no-root выводит привилегированные команды для выполнения администратором; он не является предварительным просмотром. Для первоначальной подготовки истории требуется выполнение команд с правами root.

По умолчанию API чата доступен по HTTPS на 0.0.0.0:8088. Предоставьте сетевой доступ к нему только серверам Smart Monitor Web. HTTP допускается только на петлевом адресе, когда оба компонента размещены на одном сервере.

Расположение файлов​

ПутьНазначение
/app/sm-mcp/sm-mcpИсполняемый файл
/app/sm-mcp/config.yamlНастройки сервиса
/app/sm-mcp/ca-cert.pemCA кластера
/app/sm-mcp/corpus/, /app/sm-mcp/skills/Корпус знаний и скиллы из поставки
/app/sm-mcp/tls/node.pem, node-key.pemСертификат и ключ HTTPS API чата
/app/sm-mcp/keys/Ключи шифрования истории
/etc/sm-mcp/history.envПароль технической учетной записи истории
/etc/systemd/system/sm-mcp.serviceСлужба systemd
/etc/systemd/system/sm-mcp.service.d/history.confПодключение пароля истории к службе после проверки защиты

Указаны пути, используемые установщиком. Служба работает от пользователя opensearch; при отсутствии пользователя инсталлятор может его создать.

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

Инсталлятор формирует /app/sm-mcp/config.yaml. Основные параметры:

ПараметрНазначение
listenАдрес и порт API чата
tls.enabledHTTPS API чата; по умолчанию включен
tls.certificate, tls.private_keyСертификат и ключ HTTPS
opensearch.url, opensearch.ca_fileАдрес API хранилища и путь к CA
platform.versionВерсия платформы
model.api_baseАдрес SM-AI с /v1
model.nameИмя записи из реестра SM-AI
model.context_tokensРазмер контекста; 0 использует сведения модели из SM-AI
model.max_tokensМаксимальный объем ответа модели
model.timeoutТаймаут одного обращения к модели
model.streamПотоковое получение ответа модели
runtime.default_tzЧасовой пояс по умолчанию; при установке Europe/Moscow
history.retentionСрок хранения диалогов; при установке 720h (30 дней)
history.key_dirКаталог ключей шифрования истории

После изменения настроек перезапустите службу:

sudo systemctl restart sm-mcp

Имя модели должно совпадать с записью name в реестре SM-AI. Размер контекста и лимит ответа выбирайте по возможностям своей модели.

История диалогов​

Установка подготавливает историю, если выбран соответствующий шаг. Служба начинает сохранять диалоги после защиты индексов и отдельного включения истории.

  1. Сохраните резервную копию /app/sm-mcp/keys/ отдельно от резервных копий кластера. Без ключа зашифрованные сообщения восстановить нельзя
  2. На каждом узле хранилища добавьте в opensearch.yml:
plugins.security.protected_indices.enabled: true
plugins.security.protected_indices.indices: [".sm_mcp_history*"]
plugins.security.protected_indices.roles: ["sm_mcp_history_runtime"]

Если защита других индексов уже настроена, дополните существующие списки, сохранив их значения.

  1. Поочередно перезапустите все узлы хранилища
  2. После перезапуска последнего узла выполните из каталога установщика:
sudo ./setup.sh enable-history

Команда запрашивает административную учетную запись и проверяет запрет записи в историю через узлы кластера. Ожидаемый результат — HTTP 403. При обнаружении доступной записи история не включается.

Если узел недоступен для автоматической проверки по опубликованному TLS-адресу, интерактивный режим может запросить ручное подтверждение. До подтверждения проверьте настройку и перезапуск этого узла; не подтверждайте защиту только по успешной проверке остальных узлов.

После проверки команда подключает пароль технической учетной записи к службе и перезапускает SM-MCP. В ответе /readyz поле history должно иметь значение ok.

По умолчанию диалог хранится 30 дней с последнего сообщения. Параметр history.retention: 0s отключает удаление по сроку. Резервируйте конфигурацию, каталог ключей и файл history.env; ограничьте доступ к этим копиям. Не меняйте права ключей на общедоступные: служба проверяет владельца и права доступа.

Подключение Smart Monitor Web​

Инсталлятор может записать настройки подключения сразу для всех серверов Smart Monitor Web. Если этот шаг пропущен, выполните в консоли разработчика:

PUT _cluster/settings
{
"persistent": {
"sme.mcp.enabled": true,
"sme.mcp.service_url": "https://mcp.example.org",
"sme.mcp.service_port": 8088,
"sme.mcp.timeout": 600000
}
}

Подставьте имя SM-MCP из сертификата. Адрес задается со схемой, порт — отдельным параметром.

Вместо кластерных настроек можно задать адрес на каждом сервере Smart Monitor Web в opensearch_dashboards.yml:

smart_monitor.ai.baseUrl: https://mcp.example.org:8088

После изменения файла перезапустите Smart Monitor Web. Кластерные настройки подключения имеют приоритет над smart_monitor.ai.baseUrl.

Сертификат SM-MCP проверяется по opensearch.ssl.certificateAuthorities в opensearch_dashboards.yml, включая совпадение имени сервиса. Отключать проверку сертификата для подключения не требуется.

Проверка работоспособности​

Проверьте службу и API с сервера Smart Monitor Web или SM-MCP:

sudo systemctl status sm-mcp
curl --cacert /app/sm-mcp/ca-cert.pem https://mcp.example.org:8088/healthz
curl --cacert /app/sm-mcp/ca-cert.pem -u '<логин>' https://mcp.example.org:8088/readyz

Используйте имя из сертификата и доступный на машине путь к CA. В запросе /readyz укажите обычную учетную запись будущего пользователя чата; curl запросит пароль.

/healthz возвращает {"status":"ok"}. В /readyz проверьте opensearch, model и knowledge; после включения истории — также history. Ожидаемое состояние этих компонентов — ok. Поле skills до первого обращения чата может иметь значение unknown: диагностический запрос сам не загружает каталог скиллов. После первого вопроса повторите проверку.

Без учетной записи /readyz выполняет ограниченную проверку и не подтверждает доступ пользователя к знаниям и модели. Диагностические ответы не заменяют проверку вопроса и сохранения диалога.

СитуацияЧто проверить
Служба не запускаетсяКонфигурацию, пути к TLS-сертификату и ключу, права каталога ключей истории
model: errorАдрес SM-AI, доступ к /models с учетной записью пользователя, имя модели, CA в системном хранилище и NO_PROXY
knowledge не готова или skills остается неготовым после первого вопросаЗагрузку корпуса и скиллов, права чтения пользователя на их индексы
history не готоваПодготовку истории, защиту на всех узлах и результат enable-history
SM-MCP работает, но чат недоступенАдрес сервиса в настройках платформы или Web, сетевой доступ и доверие сертификату

Журнал службы:

sudo journalctl -u sm-mcp -o cat

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

До обновления сохраните конфигурацию, ключи истории и пароль технической учетной записи. Ознакомьтесь с примечаниями к полученной версии.

Распакуйте новую поставку и выполните из ее каталога:

sudo ./setup.sh update

Инсталлятор заменяет бинарь, корпус и скиллы. Конфигурация, индексы и ключи истории сохраняются; предыдущие файлы получают суффикс .prev. Обновление может временно выключать чат через sme.mcp.enabled и загружать новые знания и скиллы — проверьте выбранные параметры перед подтверждением.

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

Подключение внешних клиентов MCP​

Маршрут /mcp доступен на основном порту SM-MCP вместе с API чата. Для внешних клиентов можно выделить дополнительный адрес и порт, на котором доступны только /mcp и /healthz. Дополнительный порт по умолчанию выключен.

Для его включения задайте в config.yaml адрес и сертификат:

mcp:
listen: 0.0.0.0:9443
tls_cert: /app/sm-mcp/tls/node.pem
tls_key: /app/sm-mcp/tls/node-key.pem

Сертификат должен подходить к имени, по которому обращаются клиенты, и быть подписан доверенным им CA. После изменения перезапустите SM-MCP.

Клиент подключается к https://mcp.example.org:9443/mcp с учетной записью платформы в заголовке Authorization. Операции доступны в пределах прав этой учетной записи и работают только на чтение. Открывайте порт только нужным клиентам. Данные, прочитанные внешним клиентом, обрабатываются его моделью; учитывайте это при выборе клиента и предоставлении доступа.