MongoDB
MongoDB — документоориентированная NoSQL база данных. Мониторинг MongoDB позволяет отслеживать производительность запросов, использование ресурсов, состояние репликации, состояние шардирования и другие критичные метрики для обеспечения стабильной работы базы данных.
Примечание
Данные с экспортеров могут использоваться для различных продуктов.
Обратите внимание на использование тегов product и component в документации к конкретному продукту
Способы мониторинга
Для мониторинга MongoDB используется экспортер mongodb_exporter или percona/mongodb_exporter.
mongodb_exporter
mongodb_exporter — стандартный экспортер для сбора метрик MongoDB в формате Prometheus. Предоставляет детальную информацию о состоянии сервера, производительности запросов, использовании ресурсов, репликации и шардировании.
Поддерживаемые версии
MongoDB 3.2+
MongoDB 4.0+
MongoDB 5.0+
MongoDB 6.0+
Примечание
Для более старых версий MongoDB (ниже 3.2) рекомендуется использовать альтернативные экспортеры или обновить версию MongoDB.
Шаг 1: Подготовка MongoDB
Для корректной работы mongodb_exporter требуется создать пользователя с необходимыми правами для сбора статистики.
Подключитесь к MongoDB как администратор:
// Создайте пользователя для мониторинга
use admin
db.createUser({
user: "exporter",
pwd: "your_secure_password",
roles: [
{ role: "clusterMonitor", db: "admin" },
{ role: "read", db: "local" }
]
})
Важно
Для работы mongodb_exporter требуется пользователь с правами clusterMonitor для сбора метрик кластера и репликации. Для standalone-инсталляций достаточно роли read на базе данных local.
Шаг 2: Настройка подключения
Настройте строку подключения через переменную окружения или параметры командной строки.
Вариант 1: Переменная окружения
export MONGODB_URI="mongodb://exporter:your_secure_password@localhost:27017/?authSource=admin"
Вариант 2: Параметры командной строки
--mongodb.uri="mongodb://exporter:your_secure_password@localhost:27017/?authSource=admin"
Примечание
Для реплика-сетов укажите несколько хостов в URI:
mongodb://exporter:password@host1:27017,host2:27017,host3:27017/?replicaSet=rs0&authSource=admin
Шаг 3: Настройка агента
Добавьте экспортер в конфигурацию агента через UI или файл конфигурации.
Через UI:
Откройте раздел настройки агента
Добавьте новый экспортер
mongodb_exporterУкажите параметры запуска и строку подключения
Через файл конфигурации:
exporters:
enabled: true
exporters:
- name: mongodb_exporter
start_type: args
args: "--mongodb.uri=mongodb://exporter:your_secure_password@localhost:27017/?authSource=admin --web.listen-address=0.0.0.0:9216"
address: 127.0.0.1:9216
labels:
product: mongodb
component: database
environment: production
Примечание
Если используется переменная окружения MONGODB_URI, она должна быть доступна агенту при запуске экспортера.
Шаг 4: Проверка работы
Убедитесь, что метрики доступны:
curl http://localhost:9216/metrics
Должны отображаться метрики в формате Prometheus, включая метрики MongoDB.
Шаг 5: Визуализация
Рекомендуемые дашборды для Grafana:
MongoDB Overview (ID: 2583)
MongoDB Cluster (ID: 14914)
Примечание
Подробнее о настройке mongodb_exporter читайте в официальной документации и Percona документации.
Ключевые метрики для мониторинга
При настройке мониторинга обратите внимание на следующие группы метрик:
Производительность: время выполнения запросов, количество операций в секунду, медленные запросы
Ресурсы: использование CPU, памяти, дискового пространства, размер баз данных и коллекций
Соединения: количество активных соединений, максимальное количество соединений
Репликация: состояние реплик, задержки репликации, лаг репликации, статус oplog
Шардирование: состояние шардов, балансировка данных, миграции чанков
Индексы: использование индексов, эффективность индексирования
Ошибки: количество ошибок в логах, ошибки подключений, ошибки репликации
Собираемые метрики mongodb_exporter
Ниже представлен список основных метрик, собираемых mongodb_exporter, с их описанием и назначением.
Метрики общего состояния (mongodb_up, mongodb_*)
Метрика |
Тип |
Описание |
|---|---|---|
|
Gauge |
Доступность MongoDB (1 = доступен, 0 = недоступен) |
|
Gauge |
Время работы сервера в секундах |
|
Gauge |
Текущее количество активных подключений |
|
Gauge |
Доступное количество подключений |
|
Gauge |
Количество активных подключений |
|
Counter |
Объем входящего сетевого трафика (байты) |
|
Counter |
Объем исходящего сетевого трафика (байты) |
|
Counter |
Общее количество сетевых запросов |
Метрики операций (mongodb_opcounters_*)
Метрика |
Тип |
Описание |
|---|---|---|
|
Counter |
Количество операций INSERT |
|
Counter |
Количество операций QUERY |
|
Counter |
Количество операций UPDATE |
|
Counter |
Количество операций DELETE |
|
Counter |
Количество операций GETMORE |
|
Counter |
Количество команд |
Метрики памяти (mongodb_memory_*)
Метрика |
Тип |
Описание |
|---|---|---|
|
Gauge |
Использование резидентной памяти (МБ) |
|
Gauge |
Использование виртуальной памяти (МБ) |
|
Gauge |
Использование отображенной памяти (МБ) |
|
Gauge |
Использование отображенной памяти с журналом (МБ) |
Метрики репликации (mongodb_replset_*)
Метрика |
Тип |
Описание |
|---|---|---|
|
Gauge |
Состояние члена реплика-сета (1=Primary, 2=Secondary, и т.д.) |
|
Gauge |
Здоровье члена реплика-сета (1 = здоров, 0 = нездоров) |
|
Gauge |
Время работы члена реплика-сета (секунды) |
|
Gauge |
Задержка репликации в секундах |
|
Gauge |
Время последней операции репликации (Unix timestamp) |
|
Gauge |
Задержка heartbeat в секундах |
Метрики шардирования (mongodb_sharding_*)
Метрика |
Тип |
Описание |
|---|---|---|
|
Gauge |
Общее количество чанков |
|
Gauge |
Баланс чанков между шардами |
|
Gauge |
Время работы mongos (секунды) |
Метрики баз данных и коллекций (mongodb_db_, mongodb_collection_)
Метрика |
Тип |
Описание |
|---|---|---|
|
Gauge |
Размер данных базы данных (байты) |
|
Gauge |
Размер хранилища базы данных (байты) |
|
Gauge |
Размер индексов базы данных (байты) |
|
Gauge |
Количество документов в коллекции |
|
Gauge |
Размер коллекции (байты) |
|
Gauge |
Размер индексов коллекции (байты) |
Метрики индексов (mongodb_index_*)
Метрика |
Тип |
Описание |
|---|---|---|
|
Counter |
Количество обращений к индексу |
|
Counter |
Количество промахов индекса |
Метрики журналирования (mongodb_oplog_*)
Метрика |
Тип |
Описание |
|---|---|---|
|
Gauge |
Размер oplog (байты) |
|
Gauge |
Использованный размер oplog (байты) |
|
Gauge |
Временная метка первого события в oplog |
|
Gauge |
Временная метка последнего события в oplog |
Метрики дисковых операций (mongodb_disk_*)
Метрика |
Тип |
Описание |
|---|---|---|
|
Gauge |
Использование диска в процентах |
|
Counter |
Общее количество дисковых операций |
Системные метрики экспортера
Метрика |
Тип |
Описание |
|---|---|---|
|
Gauge |
Длительность последнего сбора метрик (секунды) |
|
Counter |
Общее количество сборов метрик |
|
Counter |
Количество ошибок при сборе метрик |
Примечание
Важно: Данный список метрик может быть неполным или устаревшим, так как mongodb_exporter постоянно развивается и добавляет новые метрики. Для получения актуального и полного списка метрик рекомендуется обращаться к официальной документации mongodb_exporter на GitHub, где представлен актуальный список всех собираемых метрик с подробными описаниями.