MongoDB
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().
Установка и создание конфигурации
- В Ключ-АСТРОМ откройте Расширения, загрузите подписанный ZIP-пакет и активируйте версию
2.2.2расширенияru.ruscomtech.mongo-db-tls. - Добавьте конфигурацию мониторинга.
- Выберите локальный режим и нужные хосты либо удалённый режим и группу АктивныхШлюзов.
- Заполните подключение и учётные данные, при необходимости настройте TLS и дополнительные процессы.
- Выберите наборы метрик, задайте понятное описание, сохраните и включите конфигурацию.
Названия разделов интерфейса могут зависеть от версии Ключ-АСТРОМ.
Параметры подключения
- 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 в этой версии нет.
Проверка работы
- Убедитесь, что конфигурация включена, выбран правильный узел выполнения и EEC работает.
- Дождитесь первых циклов сбора и проверьте отсутствие ошибок подключения и аутентификации.
- Откройте обзорную панель расширения и проверьте поступление метрик.
- Проверьте созданные сущности хоста, процесса, баз данных и, для соответствующей конфигурации, набора реплик.
В модели расширения используются типы 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, хранилище учётных данных и мониторинг нескольких процессов на одном хосте.