رفتن به محتوای اصلی
دیدگاه کلود | ارائه‌کننده سرورهای ابری و اختصاصی
آموزش مانیتورینگ MongoDB با Grafana و Prometheus روی Ubuntu 20.04

آموزش مانیتورینگ MongoDB با Grafana و Prometheus روی Ubuntu 20.04

در این آموزش نحوه مانیتورینگ دیتابیس MongoDB با استفاده از Prometheus و Grafana روی Ubuntu 20.04 را یاد می‌گیرید. شامل نصب Prometheus، راه‌اندازی MongoDB Exporter، اتصال به Grafana و ساخت داشبورد حرفه‌ای برای بررسی لحظه‌ای عملکرد، مصرف منابع و وضعیت کلی دیتابیس.

برای هر مدیر دیتابیس، بدترین سناریو این است که مشکل عملکرد یا مصرف منابع زمانی دیده شود که کار از کار گذشته. اینجاست که ابزارهای مانیتورینگ حرفه‌ای وارد بازی می‌شوند.

Prometheus یک سیستم مانیتورینگ و Alerting متن‌باز است که متریک‌ها را به‌صورت داده‌های سری زمانی (Time-Series) جمع‌آوری و ذخیره می‌کند.
Grafana هم یک پلتفرم قدرتمند برای نمایش گرافیکی، تحلیل داده‌ها و ساخت داشبوردهای حرفه‌ای است.

ترکیب این دو ابزار به شما اجازه می‌دهد:

  • وضعیت لحظه‌ای MongoDB را ببینید

  • مصرف منابع و عملکرد دیتابیس را تحلیل کنید

  • هشدار (Alert) تنظیم کنید

  • مشکلات را قبل از تبدیل شدن به بحران شناسایی کنید

در این آموزش، یک سرور MongoDB را به کمک MongoDB Exporter به Prometheus متصل می‌کنیم و سپس داده‌ها را داخل Grafana نمایش می‌دهیم.


پیش‌نیازها

قبل از شروع، موارد زیر باید آماده باشد:

  • سرور Ubuntu 20.04

  • یک کاربر با دسترسی sudo

  • فعال بودن فایروال UFW

  • نصب بودن MongoDB

  • نصب و ایمن‌سازی Grafana

  • نصب بودن Nginx (در صورت استفاده از دامنه)

  • داشتن دامنه متصل به سرور (برای دسترسی به Grafana از طریق وب)


مرحله ۱: نصب و راه‌اندازی Prometheus

بروزرسانی سیستم

 
sudo apt update

ساخت دایرکتوری‌های موردنیاز

 
sudo mkdir -p /etc/prometheus sudo mkdir -p /var/lib/prometheus

دانلود Prometheus

نسخه باینری را دانلود کنید:

 
wget https://github.com/prometheus/prometheus/releases/download/v2.31.0/prometheus-2.31.0.linux-amd64.tar.gz tar -xvf prometheus-2.31.0.linux-amd64.tar.gz cd prometheus-2.31.0.linux-amd64

انتقال فایل‌ها

 
sudo mv prometheus promtool /usr/local/bin/ sudo mv consoles/ console_libraries/ /etc/prometheus/ sudo mv prometheus.yml /etc/prometheus/prometheus.yml

ساخت کاربر اختصاصی

 
sudo groupadd --system prometheus sudo useradd -s /sbin/nologin --system -g prometheus prometheus sudo chown -R prometheus:prometheus /etc/prometheus/ /var/lib/prometheus/

ساخت سرویس systemd

فایل زیر را ایجاد کنید:

 
sudo nano /etc/systemd/system/prometheus.service

محتوا:

 
[Unit] Description=Prometheus Wants=network-online.target After=network-online.target [Service] User=prometheus Group=prometheus Type=simple ExecStart=/usr/local/bin/prometheus \ --config.file=/etc/prometheus/prometheus.yml \ --storage.tsdb.path=/var/lib/prometheus \ --web.console.templates=/etc/prometheus/consoles \ --web.console.libraries=/etc/prometheus/console_libraries \ --web.listen-address=0.0.0.0:9090 [Install] WantedBy=multi-user.target

سرویس را اجرا کنید:

 
sudo systemctl daemon-reload sudo systemctl start prometheus sudo systemctl enable prometheus

در صورت نیاز، پورت را باز کنید:

 
sudo ufw allow 9090

مرحله ۲: نصب MongoDB Exporter

Prometheus برای خواندن متریک‌های MongoDB به Exporter نیاز دارد.

دانلود Exporter

 
mkdir mongodb-exporter cd mongodb-exporter wget https://github.com/percona/mongodb_exporter/releases/download/v0.7.1/mongodb_exporter-0.7.1.linux-amd64.tar.gz tar xvzf mongodb_exporter-0.7.1.linux-amd64.tar.gz sudo mv mongodb_exporter /usr/local/bin/

فعال‌سازی احراز هویت در MongoDB

وارد شل MongoDB شوید:

 
mongo use admin

ساخت کاربر مانیتورینگ:

 
db.createUser({ user: "monitor", pwd: "strongpassword", roles: [ { role: "clusterMonitor", db: "admin" }, { role: "read", db: "local" } ] })

تنظیم متغیر اتصال:

 
export MONGODB_URI="mongodb://monitor:strongpassword@localhost:27017"

اجرای MongoDB Exporter به‌صورت سرویس

 
sudo nano /lib/systemd/system/mongodb_exporter.service

محتوا:

 
[Unit] Description=MongoDB Exporter [Service] Type=simple Restart=always ExecStart=/usr/local/bin/mongodb_exporter [Install] WantedBy=multi-user.target

اجرا:

 
sudo systemctl daemon-reload sudo systemctl start mongodb_exporter

تست:

 
curl http://localhost:9216/metrics

مرحله ۳: اتصال Exporter به Prometheus

فایل کانفیگ را ویرایش کنید:

 
sudo nano /etc/prometheus/prometheus.yml

اضافه کنید:

 
scrape_configs: - job_name: "prometheus" static_configs: - targets: ["localhost:9090"] - job_name: "mongodb" static_configs: - targets: ["localhost:9216"]

سپس:

 
sudo systemctl restart prometheus

مرحله ۴: ساخت داشبورد در Grafana

  1. ورود به Grafana (پورت 3000)

  2. رفتن به Configuration → Data Sources

  3. افزودن Prometheus با آدرس:

 
http://your_server_ip:9090
  1. ذخیره و تست اتصال

ایمپورت داشبورد MongoDB

  • مسیر: Create → Import

  • Dashboard ID: 7353

  • انتخاب Data Source = Prometheus

حالا داشبورد مانیتورینگ MongoDB آماده است و می‌توانید موارد زیر را ببینید:

  • تعداد Connectionها

  • عملیات خواندن/نوشتن

  • مصرف حافظه

  • وضعیت Cursorها

  • صف عملیات دیتابیس


جمع‌بندی

با راه‌اندازی این ساختار:

MongoDB → Exporter → Prometheus → Grafana

شما یک سیستم مانیتورینگ حرفه‌ای دارید که:

  • عملکرد دیتابیس را لحظه‌ای نمایش می‌دهد

  • امکان تحلیل روندها را می‌دهد

  • پایه‌ای برای Alertهای هوشمند فراهم می‌کند

این ساختار یکی از استانداردهای مانیتورینگ در محیط‌های Production محسوب می‌شود و برای هر زیرساخت جدی، ضروری است.