MongoDB

Материал из Документация Ключ-АСТРОМ
Версия от 23:24, 22 октября 2026; Azubarev (обсуждение | вклад) ([wiki-cd:ruscomtech-extensions:b0985a6744c086353b26ac217dfa652296b8c814])
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

MongoDB

Расширение MongoDB версии 2.2.2 собирает метрики сервера, баз данных, подключений, операций, памяти, блокировок, WiredTiger и репликации. Идентификатор: ru.ruscomtech.mongo-db-tls.

Расширение подключается непосредственно к процессу MongoDB через его сетевой порт; Management API и веб-интерфейс не используются. Оно не устанавливает MongoDB, не создаёт пользователей и не выполняет трассировку запросов приложений.

Требования

  • Ключ-АСТРОМ 1.318.0+ и контроллер выполнения расширений (EEC) 1.313.0+.
  • Подписанный пакет расширения, загруженный и активированный в Ключ-АСТРОМ.
  • Сетевой доступ от узла выполнения к каждому контролируемому процессу MongoDB; стандартный порт — 27017.
  • Учётная запись с правами мониторинга, в том числе serverStatus в базе admin, listDatabases и dbStats. Для типового мониторинга используется встроенная роль clusterMonitor.
  • Среда Python не ниже 3.9 в составе EEC. Драйвер и зависимости поставляются с расширением; устанавливать их в системный Python не требуется.

Режимы выполнения

  • Локальный мониторинг — ЕдиныйАгент с включённым EEC установлен на хосте MongoDB. Обычно используется подключение через localhost.
  • Удалённый мониторинг — расширение выполняется на АктивномШлюзе с включённым EEC и подключается к MongoDB по сети. ЕдиныйАгент на сервере MongoDB в этом режиме не обязателен.

Не настраивайте одновременно локальный и удалённый сбор одних и тех же процессов без необходимости: это может привести к дублированию данных.

Подготовка пользователя MongoDB

Пользователя создаёт администратор базы данных, а не расширение. Пример для mongosh:

mongosh --username admin --authenticationDatabase admin --password

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

use admin
db.createUser({
  user: "astrom-monitor",
  pwd: passwordPrompt(),
  roles: [{ role: "clusterMonitor", db: "admin" }]
})

passwordPrompt() запрашивает пароль без его открытого указания в команде. Для этого пользователя в конфигурации расширения задайте Authentication Database = admin, поскольку он создан в базе admin.

Проверьте вход под созданной учётной записью, доступность db.serverStatus(), списка баз и их статистики. Дополнительные сведения: роль clusterMonitor и passwordPrompt().

Установка и создание конфигурации

  1. В Ключ-АСТРОМ откройте Расширения, загрузите подписанный ZIP-пакет и активируйте версию 2.2.2 расширения ru.ruscomtech.mongo-db-tls.
  2. Добавьте конфигурацию мониторинга.
  3. Выберите локальный режим и нужные хосты либо удалённый режим и группу АктивныхШлюзов.
  4. Заполните подключение и учётные данные, при необходимости настройте TLS и дополнительные процессы.
  5. Выберите наборы метрик, задайте понятное описание, сохраните и включите конфигурацию.

Названия разделов интерфейса могут зависеть от версии Ключ-АСТРОМ.

Параметры подключения

  • Hostname (hostname) — DNS-имя или IP-адрес MongoDB. Обязателен в удалённом режиме.
  • Port (port) — порт процесса, по умолчанию 27017.
  • Connect via 'localhost'? (use_localhost) — только для локального режима; по умолчанию включено. Не используйте loopback для подключения к другому серверу.
  • Custom Host Name (custom_hostname) — необязательное переопределение имени хоста в локальном режиме.
  • Monitor Additional MongoDB Processes on the same host (additional_processes) — дополнительные процессы на том же хосте. Для каждого задаются отдельный порт и блок аутентификации. Параметры сертификатов общие для конфигурации.
  • Enable Debug Logging (debug_logging) — подробный журнал для диагностики; после расследования проблемы отключите его.

Каждое подключение направлено на конкретный процесс MongoDB. Для контроля нескольких узлов набора реплик добавьте подключения к нужным узлам, а не только к одному из них.

Аутентификация

  • Use credential vault — использовать хранилище учётных данных. Выберите запись типа Username and password в Select vault credentials.
  • User (auth_user) и Password (auth_password) — пользователь мониторинга и его пароль, если хранилище не используется. Пароль задаётся в секретном поле.
  • Auth Mechanism (auth_mechanism) — механизм аутентификации, соответствующий настройкам пользователя MongoDB, например SCRAM-SHA-256.
  • Authentication Database (auth_db) — база, в которой создан пользователь. Это не список баз для сбора метрик.
  • Authentication Mechanism Properties (auth_mechanism_properties) — дополнительные свойства выбранного механизма. Для типового SCRAM-подключения заполнять не требуется.

Не помещайте пароли в Git, описание конфигурации или команды с открытыми аргументами.

TLS

Для защищённого подключения задайте параметры, соответствующие TLS-настройкам MongoDB:

  • Path to CA PEM File (tls_ca_file_path) — путь к PEM-файлу доверенного центра сертификации. Указание CA-файла включает TLS с проверкой сертификата сервера.
  • Path to Client Certificate Key File (tls_certificate_key_file) — путь к PEM-файлу, содержащему клиентский сертификат и закрытый ключ, если сервер требует клиентский сертификат.
  • Password to Client Certificate Key File (tls_certificate_key_file_password) — пароль закрытого ключа, если он зашифрован.

Пути относятся к узлу выполнения расширения: к хосту ЕдиногоАгента при локальном сборе или к АктивномуШлюзу при удалённом. Файлы должны существовать и быть доступны служебной учётной записи на каждом выбранном узле выполнения. Закрытые ключи не добавляйте в репозиторий.

Enable insecure TLS (tls_insecure) включает TLS без проверки сертификатов и имеет приоритет над указанными CA-файлом, клиентским сертификатом и его паролем. Не используйте этот режим в рабочей среде: настройте доверенную цепочку и корректное имя сервера.

Наборы метрик

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

  • default — основные метрики сервера и баз данных: подключения, операции, память и статистика баз.
  • wiredTiger — метрики движка WiredTiger.
  • locks — метрики блокировок.
  • replicaSet — состояние репликации.

Выбирайте дополнительные наборы с учётом конфигурации MongoDB. Данные WiredTiger и replica set доступны только там, где соответствующие компоненты используются. Наборов Instance и Database в этой версии нет.

Проверка работы

  1. Убедитесь, что конфигурация включена, выбран правильный узел выполнения и EEC работает.
  2. Дождитесь первых циклов сбора и проверьте отсутствие ошибок подключения и аутентификации.
  3. Откройте обзорную панель расширения и проверьте поступление метрик.
  4. Проверьте созданные сущности хоста, процесса, баз данных и, для соответствующей конфигурации, набора реплик.

В модели расширения используются типы mongodb:host, mongodb:process, mongodb:database и mongodb:replicaset. Состав сущностей зависит от полученных данных и обязательных измерений.

Возможные проблемы

  • Ошибка подключения — проверьте DNS, адрес, порт, сетевые правила и настройки прослушивания MongoDB со стороны узла выполнения.
  • Ошибка авторизации — проверьте пользователя, пароль или выбранную запись хранилища, механизм аутентификации, базу auth_db и роль clusterMonitor.
  • Ошибка TLS — проверьте наличие PEM-файлов именно на узле выполнения, права чтения, срок действия, цепочку доверия и соответствие имени сервера сертификату.
  • Нет части метрик — проверьте выбранные наборы, доступность соответствующих команд в вашей версии MongoDB и права пользователя. Для standalone-процесса не ожидаются метрики набора реплик.
  • Нет сущностей баз данных — проверьте, что пользователь может получить список баз и выполнить dbStats, а сбор завершился без ошибок.
  • Нулевые значения — при отсутствии нагрузки это может быть нормальным состоянием; сравните данные с диагностическими командами MongoDB.

История версий

Версия 2.2.2

Начало поддержки расширения для Ключ-АСТРОМ 1.318.0+; требуется EEC 1.313.0+.

  • Поддерживаются локальный и удалённый мониторинг MongoDB.
  • Доступны наборы default, wiredTiger, locks и replicaSet.
  • Поддерживаются TLS, хранилище учётных данных и мониторинг нескольких процессов на одном хосте.