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:

  1. Откройте раздел настройки агента

  2. Добавьте новый экспортер mongodb_exporter

  3. Укажите параметры запуска и строку подключения

Через файл конфигурации:

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_exporter читайте в официальной документации и Percona документации.

Ключевые метрики для мониторинга

При настройке мониторинга обратите внимание на следующие группы метрик:

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

  • Ресурсы: использование CPU, памяти, дискового пространства, размер баз данных и коллекций

  • Соединения: количество активных соединений, максимальное количество соединений

  • Репликация: состояние реплик, задержки репликации, лаг репликации, статус oplog

  • Шардирование: состояние шардов, балансировка данных, миграции чанков

  • Индексы: использование индексов, эффективность индексирования

  • Ошибки: количество ошибок в логах, ошибки подключений, ошибки репликации

Собираемые метрики mongodb_exporter

Ниже представлен список основных метрик, собираемых mongodb_exporter, с их описанием и назначением.

Метрики общего состояния (mongodb_up, mongodb_*)

Метрика

Тип

Описание

mongodb_up

Gauge

Доступность MongoDB (1 = доступен, 0 = недоступен)

mongodb_uptime_seconds

Gauge

Время работы сервера в секундах

mongodb_connections_current

Gauge

Текущее количество активных подключений

mongodb_connections_available

Gauge

Доступное количество подключений

mongodb_connections_active

Gauge

Количество активных подключений

mongodb_network_bytes_in_total

Counter

Объем входящего сетевого трафика (байты)

mongodb_network_bytes_out_total

Counter

Объем исходящего сетевого трафика (байты)

mongodb_network_num_requests_total

Counter

Общее количество сетевых запросов

Метрики операций (mongodb_opcounters_*)

Метрика

Тип

Описание

mongodb_opcounters_insert_total

Counter

Количество операций INSERT

mongodb_opcounters_query_total

Counter

Количество операций QUERY

mongodb_opcounters_update_total

Counter

Количество операций UPDATE

mongodb_opcounters_delete_total

Counter

Количество операций DELETE

mongodb_opcounters_getmore_total

Counter

Количество операций GETMORE

mongodb_opcounters_command_total

Counter

Количество команд

Метрики памяти (mongodb_memory_*)

Метрика

Тип

Описание

mongodb_memory_resident_megabytes

Gauge

Использование резидентной памяти (МБ)

mongodb_memory_virtual_megabytes

Gauge

Использование виртуальной памяти (МБ)

mongodb_memory_mapped_megabytes

Gauge

Использование отображенной памяти (МБ)

mongodb_memory_mapped_with_journal_megabytes

Gauge

Использование отображенной памяти с журналом (МБ)

Метрики репликации (mongodb_replset_*)

Метрика

Тип

Описание

mongodb_replset_member_state

Gauge

Состояние члена реплика-сета (1=Primary, 2=Secondary, и т.д.)

mongodb_replset_member_health

Gauge

Здоровье члена реплика-сета (1 = здоров, 0 = нездоров)

mongodb_replset_member_uptime_seconds

Gauge

Время работы члена реплика-сета (секунды)

mongodb_replset_lag_seconds

Gauge

Задержка репликации в секундах

mongodb_replset_optime_date

Gauge

Время последней операции репликации (Unix timestamp)

mongodb_replset_heartbeat_lag_seconds

Gauge

Задержка heartbeat в секундах

Метрики шардирования (mongodb_sharding_*)

Метрика

Тип

Описание

mongodb_sharding_chunks_total

Gauge

Общее количество чанков

mongodb_sharding_chunks_balance

Gauge

Баланс чанков между шардами

mongodb_sharding_mongos_uptime_seconds

Gauge

Время работы mongos (секунды)

Метрики баз данных и коллекций (mongodb_db_, mongodb_collection_)

Метрика

Тип

Описание

mongodb_db_data_size_bytes

Gauge

Размер данных базы данных (байты)

mongodb_db_storage_size_bytes

Gauge

Размер хранилища базы данных (байты)

mongodb_db_index_size_bytes

Gauge

Размер индексов базы данных (байты)

mongodb_collection_count_total

Gauge

Количество документов в коллекции

mongodb_collection_size_bytes

Gauge

Размер коллекции (байты)

mongodb_collection_index_size_bytes

Gauge

Размер индексов коллекции (байты)

Метрики индексов (mongodb_index_*)

Метрика

Тип

Описание

mongodb_index_accesses_ops_total

Counter

Количество обращений к индексу

mongodb_index_misses_total

Counter

Количество промахов индекса

Метрики журналирования (mongodb_oplog_*)

Метрика

Тип

Описание

mongodb_oplog_size_bytes

Gauge

Размер oplog (байты)

mongodb_oplog_used_bytes

Gauge

Использованный размер oplog (байты)

mongodb_oplog_first_event_timestamp

Gauge

Временная метка первого события в oplog

mongodb_oplog_last_event_timestamp

Gauge

Временная метка последнего события в oplog

Метрики дисковых операций (mongodb_disk_*)

Метрика

Тип

Описание

mongodb_disk_io_utilization_percent

Gauge

Использование диска в процентах

mongodb_disk_io_ops_total

Counter

Общее количество дисковых операций

Системные метрики экспортера

Метрика

Тип

Описание

mongodb_exporter_last_scrape_duration_seconds

Gauge

Длительность последнего сбора метрик (секунды)

mongodb_exporter_scrapes_total

Counter

Общее количество сборов метрик

mongodb_exporter_scrape_errors_total

Counter

Количество ошибок при сборе метрик

Примечание

Важно: Данный список метрик может быть неполным или устаревшим, так как mongodb_exporter постоянно развивается и добавляет новые метрики. Для получения актуального и полного списка метрик рекомендуется обращаться к официальной документации mongodb_exporter на GitHub, где представлен актуальный список всех собираемых метрик с подробными описаниями.

Дополнительная информация

Связанные разделы