کانفیگ Prometheus و Grafana روی اوبونتو، بهعنوان دو ابزار قدرتمند متنباز، به شما امکان میدهد تا معیارهای عملکرد را بهصورت بلادرنگ جمعآوری، ذخیره و با داشبوردهای بصری جذاب تحلیل کنید.
نظارت بر عملکرد سرورها و برنامهها یکی از مهمترین وظایف مدیران سرور برای کانفیگ سرور است که میتواند از قطعیهای ناگهانی و کاهش کارایی جلوگیری کند.
Prometheus برای جمعآوری دادههای زمانی و Grafana برای تجسم آنها، ترکیبی بینظیر برای مانیتورینگ ایجاد میکنند. در این راهنمای جامع، شما را با مراحل گامبهگام نصب، پیکربندی و ادغام Prometheus و Grafana آشنا میکنیم تا بتوانید بهراحتی این ابزارها را راهاندازی کرده و زیرساختهای خود را به سطحی حرفهای ارتقا دهید. همراه ما باشید تا با تسلط بر این ابزارها، دنیای مانیتورینگ را فتح کنید!
چرا کانفیگ Prometheus و Grafana برای مانیتورینگ انتخابی ایدهآل هستند؟
Prometheus و Grafana به دلیل قابلیتهای پیشرفته و انعطافپذیری، یکی از محبوبترین ترکیبها برای مانیتورینگ زیرساختهای فناوری اطلاعات هستند. Prometheus دادههای زمانی را با دقت بالا جمعآوری میکند، در حالی که Grafana داشبوردهای بصری قدرتمندی برای تحلیل این دادهها ارائه میدهد. پیکربندی Prometheus و Grafana به شما کمک میکند تا از وضعیت سرورها، برنامهها و شبکههای خود بهصورت بلادرنگ آگاه شوید.
ویژگیهای کلیدی Prometheus و Grafana
این دو ابزار امکانات متعددی ارائه میدهند که آنها را از سایر راهحلهای مانیتورینگ متمایز میکند:
- جمعآوری دادههای بلادرنگ با Prometheus: ثبت معیارهای عملکرد با فواصل کوتاه.
- زبان پرسوجوی PromQL: تحلیل دادهها با انعطافپذیری بالا.
- داشبوردهای تعاملی Grafana: نمایش دادهها با چارتهای بصری جذاب.
- هشدارهای هوشمند: ارسال اعلان از طریق ایمیل، Slack یا تلگرام.
این ویژگیها باعث شدهاند که نصب Prometheus و Grafana به یکی از مهارتهای ضروری برای مدیران سرور تبدیل شود.
مقایسه با سایر ابزارهای مانیتورینگ
در مقایسه با ابزارهایی مانند Zabbix یا Nagios، Prometheus و Grafana به دلیل تمرکز بر دادههای زمانی و ادغام آسان با سیستمهای مدرن، برای محیطهای ابری و کانتینری مناسبتر هستند.
پیشنیازهای نصب Prometheus و Grafana
قبل از شروع کانفیگ Prometheus و Grafana، باید اطمینان حاصل کنید که سرور اوبونتو شما آماده است. اوبونتو به دلیل پایداری و پشتیبانی گسترده، یکی از بهترین سیستمعاملها برای میزبانی این ابزارهاست.
سختافزار و نرمافزار موردنیاز
برای نصب Prometheus و Grafana روی اوبونتو، سرور شما باید حداقل مشخصات زیر را داشته باشد:
- سیستمعامل: اوبونتو 20.04 یا 22.04 LTS.
- پردازنده: حداقل 2 هسته CPU.
- حافظه رم: حداقل 4 گیگابایت (8 گیگابایت توصیه میشود).
- فضای دیسک: حداقل 20 گیگابایت فضای خالی.
همچنین، ابزارهای زیر موردنیاز هستند:
- دسترسی به اینترنت برای دانلود بستهها.
- ابزارهای خط فرمان مانند
wgetوtar. - مرورگر وب برای دسترسی به رابط کاربری Grafana.
دسترسیهای لازم
برای راهاندازی Prometheus و Grafana، به دسترسی root یا sudo نیاز دارید. همچنین، اطمینان حاصل کنید که سرور به اینترنت متصل است.
بررسی اتصال به اینترنت
قبل از شروع، اتصال اینترنت سرور را بررسی کنید:
ping google.comاگر پاسخ دریافت کردید، سرور آماده دانلود بستههاست.
نصب Prometheus روی اوبونتو
حالا که پیشنیازها را آماده کردهاید، وقت آن است که با نصب Prometheus شروع کنیم.
بهروزرسانی سیستمعامل
اولین قدم در پیکربندی Prometheus، بهروزرسانی سیستمعامل است:
sudo apt update && sudo apt upgrade -yاین دستور تمام بستههای نرمافزاری را بهروزرسانی میکند.
دانلود و نصب Prometheus
آخرین نسخه Prometheus را دانلود کنید:
wget https://github.com/prometheus/prometheus/releases/download/v2.47.1/prometheus-2.47.1.linux-amd64.tar.gz
tar -xvf prometheus-2.47.1.linux-amd64.tar.gz
sudo mv prometheus-2.47.1.linux-amd64 /usr/local/prometheusایجاد کاربر و سرویس Prometheus
یک کاربر سیستمی برای Prometheus ایجاد کنید:
sudo useradd --no-create-home --shell /bin/false prometheus
sudo mkdir /etc/prometheus /var/lib/prometheus
sudo chown prometheus:prometheus /etc/prometheus /var/lib/prometheusفایل تنظیمات را کپی کنید:
sudo cp /usr/local/prometheus/prometheus.yml /etc/prometheus/
sudo chown prometheus:prometheus /etc/prometheus/prometheus.ymlپیکربندی Prometheus
پس از نصب، باید Prometheus را برای جمعآوری دادهها پیکربندی کنید.
ویرایش فایل تنظیمات Prometheus
فایل تنظیمات را ویرایش کنید:
sudo nano /etc/prometheus/prometheus.ymlمحتوای نمونه:
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']ایجاد فایل سرویس Systemd
فایل سرویس را ایجاد کنید:
sudo nano /etc/systemd/system/prometheus.serviceمحتوای فایل:
[Unit]
Description=Prometheus Monitoring
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/prometheus/prometheus \
--config.file /etc/prometheus/prometheus.yml \
--storage.tsdb.path /var/lib/prometheus/ \
--web.console.templates=/usr/local/prometheus/consoles \
--web.console.libraries=/usr/local/prometheus/console_libraries
[Install]
WantedBy=multi-user.targetسرویس را فعال کنید:
sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheusبررسی وضعیت سرویس
برای اطمینان از اجرای صحیح:
sudo systemctl status prometheusنصب Grafana روی اوبونتو
Grafana برای تجسم دادههای جمعآوریشده توسط Prometheus استفاده میشود.
نصب بسته Grafana
مخزن Grafana را اضافه کنید:
sudo apt-get install -y apt-transport-https software-properties-common
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
sudo apt update
sudo apt install -y grafanaسرویس را اجرا کنید:
sudo systemctl enable grafana-server
sudo systemctl start grafana-serverدسترسی به رابط کاربری Grafana
مرورگر خود را باز کنید و به آدرس زیر بروید:
http://your_server_ip:3000با نام کاربری و رمز عبور پیشفرض (admin/admin) وارد شوید.
تنظیم فایروال
پورت 3000 را باز کنید:
sudo ufw allow 3000/tcp
sudo ufw reloadادغام Prometheus و Grafana
ادغام این دو ابزار، قلب کانفیگ Prometheus و Grafana است.
افزودن Prometheus به Grafana
در رابط کاربری Grafana، به مسیر Configuration > Data Sources بروید و Prometheus را با آدرس http://localhost:9090 اضافه کنید.
ایجاد داشبورد در Grafana
یک داشبورد جدید ایجاد کنید و معیارهایی مانند:
- بار CPU: نمایش درصد استفاده از پردازنده.
- مصرف حافظه: تحلیل استفاده از RAM.
- ترافیک شبکه: بررسی پهنای باند.
نمونه پرسوجوی PromQL
برای نمایش بار CPU:
rate(node_cpu_seconds_total{mode="user"}[5m])نصب Node Exporter برای جمعآوری معیارهای سرور
Node Exporter معیارهای سیستمی مانند CPU و حافظه را به Prometheus ارسال میکند.
دانلود و نصب Node Exporter
Node Exporter را دانلود کنید:
wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz
tar -xvf node_exporter-1.6.1.linux-amd64.tar.gz
sudo mv node_exporter-1.6.1.linux-amd64 /usr/local/node_exporterایجاد سرویس Node Exporter
فایل سرویس را ایجاد کنید:
sudo nano /etc/systemd/system/node_exporter.serviceمحتوای فایل:
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
ExecStart=/usr/local/node_exporter/node_exporter
[Install]
WantedBy=multi-user.targetسرویس را اجرا کنید:
sudo systemctl daemon-reload
sudo systemctl start node_exporter
sudo systemctl enable node_exporterافزودن Node Exporter به Prometheus
فایل prometheus.yml را ویرایش کنید:
scrape_configs:
- job_name: 'node_exporter'
static_configs:
- targets: ['localhost:9100']تنظیم هشدارها در Prometheus و Grafana
هشدارها به شما کمک میکنند تا مشکلات را سریعاً شناسایی کنید.
نصب Alertmanager
Alertmanager را دانلود کنید:
wget https://github.com/prometheus/alertmanager/releases/download/v0.26.0/alertmanager-0.26.0.linux-amd64.tar.gz
tar -xvf alertmanager-0.26.0.linux-amd64.tar.gz
sudo mv alertmanager-0.26.0.linux-amd64 /usr/local/alertmanagerپیکربندی Alertmanager
فایل تنظیمات را ایجاد کنید:
sudo nano /etc/prometheus/alertmanager.ymlمحتوای نمونه:
route:
receiver: 'email'
receivers:
- name: 'email'
email_configs:
- to: 'your_email@example.com'
from: 'alertmanager@example.com'
smarthost: 'smtp.example.com:587'
auth_username: 'your_username'
auth_password: 'your_password'سرویس Alertmanager را راهاندازی کنید:
sudo nano /etc/systemd/system/alertmanager.serviceمحتوای فایل:
[Unit]
Description=Alertmanager
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
ExecStart=/usr/local/alertmanager/alertmanager \
--config.file=/etc/prometheus/alertmanager.yml
[Install]
WantedBy=multi-user.targetسرویس را اجرا کنید:
sudo systemctl daemon-reload
sudo systemctl start alertmanager
sudo systemctl enable alertmanagerایجاد قانون هشدار
فایل قوانین هشدار را ایجاد کنید:
sudo nano /etc/prometheus/alert.rules.ymlمحتوای نمونه:
groups:
- name: example
rules:
- alert: HighCPUUsage
expr: rate(node_cpu_seconds_total{mode="user"}[5m]) > 0.8
for: 5m
labels:
severity: critical
annotations:
summary: "High CPU usage detected"بهینهسازی عملکرد Prometheus و Grafana
برای اطمینان از عملکرد بهینه، باید تنظیمات را بهینه کنید.
بهینهسازی Prometheus
فواصل جمعآوری داده را تنظیم کنید:
global:
scrape_interval: 30sبهینهسازی Grafana
حافظه کش Grafana را افزایش دهید:
sudo nano /etc/grafana/grafana.iniمحتوای نمونه:
[caching]
enabled = trueسوالات متداول درباره کانفیگ Prometheus و Grafana
Prometheus و Grafana چه تفاوتی با Zabbix دارند؟
Prometheus برای دادههای زمانی و Grafana برای تجسم بصری بهینه شدهاند، در حالی که Zabbix برای مانیتورینگ جامعتر مناسب است.
آیا این ابزارها رایگان هستند؟
بله، هر دو ابزار متنباز و رایگان هستند.
جدول مقایسه Prometheus و Grafana با سایر ابزارها
| ابزار | تمرکز اصلی | مناسب برای |
|---|---|---|
| Prometheus & Grafana | مانیتورینگ و تجسم دادههای زمانی | محیطهای ابری |
| Zabbix | مانیتورینگ جامع | سازمانهای بزرگ |
نکات پیشرفته برای استفاده از Prometheus و Grafana
برای استفاده حرفهای، میتوانید از قابلیتهای پیشرفته مانند Service Discovery استفاده کنید.
استفاده از Service Discovery
Prometheus را برای کشف خودکار سرورها پیکربندی کنید:
scrape_configs:
- job_name: 'discovery'
consul_sd_configs:
- server: 'consul:8500'نمونه داشبورد پیشرفته
ایجاد داشبورد برای مانیتورینگ کانتینرهای Docker.
نتیجهگیری
کانفیگ Prometheus و Grafana روی اوبونتو یکی از بهترین راهها برای مانیتورینگ بلادرنگ زیرساختهای شماست. با این راهنمای جامع، میتوانید این ابزارها را بهراحتی نصب، پیکربندی و ادغام کنید و از قابلیتهای آنها برای بهبود عملکرد سرورهایتان استفاده کنید. اگر سوال یا تجربهای دارید، در بخش نظرات با ما به اشتراک بگذارید و بیایید با هم دنیای مانیتورینگ را فتح کنیم!




