Як моніторити MongoDB за допомогою Grafana та Prometheus на Ubuntu 20.04
Вступ
MongoDB – це популярна база даних NoSQL, яка широко використовується для зберігання та керування великими обсягами даних. Моніторинг його продуктивності та стану є важливим для забезпечення оптимальної роботи програми та швидкого виявлення та вирішення будь-яких проблем.
У цій статті ми покажемо вам, як налаштувати моніторинг MongoDB за допомогою Prometheus та Grafana на сервері Ubuntu 20.04. Prometheus – це система збору та зберігання часових рядів, а Grafana – це інструмент візуалізації та панелі приладів, який використовує дані Prometheus для створення розширених графіків, діаграм та звітів.
Передумови
* Сервер Ubuntu 20.04
* Користувач із привілеями sudo
* Встановлена MongoDB
* Встановлений Docker
Налаштування Prometheus
1. Встановіть Prometheus:
bash
sudo apt update
sudo apt install prometheus
2. Налаштуйте файл конфігурації Prometheus:
Відредагуйте файл /etc/prometheus/prometheus.yml
за допомогою вашого улюбленого текстового редактора:
global:
scrape_interval: 15s
Інтервал збору
scrape_configs:
- job_name: 'mongodb'
static_configs:
- targets: ['localhost:27017']
3. Запустіть Prometheus:
bash
sudo systemctl start prometheus
sudo systemctl enable prometheus
Налаштування експортера MongoDB
1. Встановіть експортер MongoDB:
bash
docker pull prom/mongo-exporter:latest
2. Запустіть контейнер експортера MongoDB:
bash
docker run -d --name mongo-exporter \
-p 9216:9216 \
prom/mongo-exporter:latest \
--mongodb.uri "mongodb://localhost:27017" \
--mongodb.db "admin"
3. Налаштуйте конфігурацію експортера Prometheus:
Відредагуйте файл /etc/prometheus/prometheus.yml
та додайте таке налаштування:
- job_name: 'mongo-exporter'
scrape_configs:
- targets: ['mongo-exporter:9216']
4. Перезапустіть Prometheus:
bash
sudo systemctl restart prometheus
Налаштування Grafana
1. Встановіть Grafana:
bash
sudo apt-get install grafana
2. Налаштуйте джерело даних Prometheus:
Увійдіть до інтерфейсу Grafana за адресою http://localhost:3000 і перейдіть до розділу “Налаштування” > “Джерела даних”. Натисніть “Додати джерело даних” і виберіть “Prometheus”. Налаштуйте джерело даних за допомогою наступних параметрів:
* Ім’я: “Prometheus”
* URL-адреса: “http://localhost:9090”
3. Створіть панель приладів MongoDB:
Перейдіть до розділу “Панелі приладів” і натисніть “Створити панель приладів”. Назвіть панель приладів “MongoDB” і додайте такі графіки:
* Активність запитів: SELECT mean(mongodb_query_executor_total_time_seconds) FROM “mongodb_query_executor_total_time_seconds”
* Час відповіді запиту: SELECT mean(mongodb_query_response_latency_seconds) FROM “mongodb_query_response_latency_seconds”
Пам’ять, що використовується: SELECT 100 – (mongodb_memory_resident_bytes / mongodb_memory_total_bytes) 100 FROM “mongodb_memory_resident_bytes”
Зайняте ЦП: SELECT 100 (mongodb_background_flushes{job=”mongodb”} + mongodb_background_flushes{job=”mongo-exporter”}) / (mongodb_process_cpu_seconds_total{job=”mongodb”} + mongodb_process_cpu_seconds_total{job=”mongo-exporter”}) FROM “mongodb_process_cpu_seconds_total”
* З’єднання: SELECT mongodb_connections FROM “mongodb_connections”
Висновок
Налаштувавши Prometheus та Grafana для моніторингу MongoDB, ви отримаєте потужний інструмент для відстеження продуктивності вашої бази даних та швидкого виявлення та вирішення будь-яких проблем. Панелі приладів Grafana надають чіткі візуалізації важливих показників MongoDB, що дозволяє легко відстежувати стан вашої бази даних та забезпечувати її оптимальну роботу.
Ця система моніторингу не лише покращить надійність та доступність вашого екземпляра MongoDB, але й допоможе вам оптимізувати його продуктивність та забезпечити високий рівень обслуговування для ваших користувачів.
Поширені запитання
1. Які переваги використання Prometheus та Grafana для моніторингу MongoDB?
– Збір часових рядів із необмеженою кількістю вимірів та міток
– Потужний мова запитів для створення складних графіків та діаграм
– Розширені функції панелей приладів для створення інформативних панелей приладів
– Системи сповіщень для швидкого оповіщення про проблеми
2. Як оновити панель приладів MongoDB?
– Перейдіть до розділу “Панелі приладів” у Grafana.
– Клацніть на панель приладів “MongoDB” та виберіть “Редагувати”.
– Внесіть необхідні зміни та натисніть “Зберегти”.
3. Як налаштувати сповіщення для панелі приладів MongoDB?
– Перейдіть до розділу “Панелі приладів” у Grafana.
– Клацніть на панель приладів “MongoDB” та виберіть “Налаштування”.
– Перейдіть до вкладки “Сповіщення” та налаштуйте потрібні сповіщення.
4. Як налаштувати розширений моніторинг за допомогою експортера MongoDB?
– Додайте додаткові параметри в команду запуску контейнера експортера MongoDB (наприклад, –collect.auth, –collect.stats).
– Налаштуйте конфігурацію Prometheus, щоб зібрати додаткові показники (наприклад, mongodb_auth_failures_total, mongodb_document_count).
5. Які інші інструменти моніторингу можна використовувати з MongoDB?
– MongoDB Compass
– MongoDB Cloud Manager
– Opsgenie
– Nagios
6. Як налаштувати візуалізацію топології для моніторингу репліки?
– Встановіть grafana-plugin-mongodb-topology-map.
– Налаштуйте джерело даних MongoDB у Grafana та вкажіть наявність реплік.
7. Як моніторити споживання ресурсів MongoDB за допомогою cAdvisor?
– Увімкніть збір показників cAdvisor в експортері MongoDB.
– Зберіть показники cAdvisor у Prometheus.
– Створіть графіки в Grafana для візуалізації споживання ресурсів.
8. Як настроїти моніторинг на кількох серверах MongoDB?
– Налаштуйте реплікацію MongoDB для резервного копіювання та відмовостійкості.
– Встановіть Prometheus на кожному сервері та налаштуйте їх для збору показників з усіх серверів MongoDB.
– Налаштуйте Grafana для відображення показників з усіх серверів MongoDB на одній панелі приладів.
9. Як масштабувати систему моніторингу для обробки великих обсягів даних?
– Використовуйте Prometheus для федерації та зберігання часових рядів на кількох серверах.
– Встановіть Grafana Enterprise для масштабованого відтворення панелей приладів та управління користувачами.
– Налаштуйте систему сигналізації, таку як Prometheus Alert Manager, для ефективної обробки сповіщень.
10. **Які найкра