رفتن به محتوای اصلی
iServer24 | ارائه‌کننده سرورهای ابری و اختصاصی
آموزش مانیتورینگ 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راه‌اندازی سرویس جمع‌آوری و ذخیره متریک‌ها
۲. نصب MongoDB Exporterاستخراج متریک‌های MongoDB برای Prometheus
۳. اتصال Exporter به Prometheusتعریف Exporter به‌عنوان یک هدف مانیتورینگ
۴. ساخت داشبورد در Grafanaنمایش گرافیکی و لحظه‌ای وضعیت MongoDB

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

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

sudo apt update
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

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

2 خط
sudo mkdir -p /etc/prometheus
sudo mkdir -p /var/lib/prometheus
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

دانلود Prometheus

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

3 خط
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
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

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

3 خط
sudo mv prometheus promtool /usr/local/bin/
sudo mv consoles/ console_libraries/ /etc/prometheus/
sudo mv prometheus.yml /etc/prometheus/prometheus.yml
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

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

3 خط
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
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

محتوا:

18 خط
[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
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

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

3 خط
sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheus
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

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

sudo ufw allow 9090
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

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

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

دانلود Exporter

5 خط
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 شوید:

2 خط
mongo
use admin
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

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

8 خط
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
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

محتوا:

10 خط
[Unit]
Description=MongoDB Exporter

[Service]
Type=simple
Restart=always
ExecStart=/usr/local/bin/mongodb_exporter

[Install]
WantedBy=multi-user.target
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

اجرا:

2 خط
sudo systemctl daemon-reload
sudo systemctl start mongodb_exporter
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

تست:

curl http://localhost:9216/metrics
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

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

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

sudo nano /etc/prometheus/prometheus.yml
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

اضافه کنید:

8 خط
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 محسوب می‌شود و برای هر زیرساخت جدی، ضروری است.

زیرساخت ابری برای اجرای همین آموزش

سرور ابری ساعتی را برای Docker، Ubuntu و DevOps راه‌اندازی کنید — پرداخت به میزان مصرف یا ماهانه.

ادامه یادگیری:Docker·Ubuntu·VPS