فارسی

جمع‌آوری معیارها را با پرومتئوس و گرافانا کاوش کنید. بیاموزید چگونه برنامه‌ها و زیرساخت‌های خود را به طور موثر با این ابزارهای قدرتمند متن‌باز نظارت کنید.

جمع‌آوری معیارها: راهنمای جامع با استفاده از پرومتئوس و گرافانا

در چشم‌انداز پیچیده فناوری اطلاعات امروز، نظارت مؤثر برای حفظ سلامت و عملکرد برنامه‌ها و زیرساخت‌ها حیاتی است. جمع‌آوری معیارها پایه و اساس این نظارت را فراهم می‌کند و شما را قادر می‌سازد شاخص‌های کلیدی عملکرد (KPIs) را ردیابی کنید، مسائل بالقوه را شناسایی کرده و استفاده از منابع را بهینه سازید. این راهنمای جامع به بررسی چگونگی استفاده از پرومتئوس و گرافانا، دو ابزار قدرتمند متن‌باز، برای جمع‌آوری و بصری‌سازی قوی معیارها خواهد پرداخت.

جمع‌آوری معیارها چیست؟

جمع‌آوری معیارها شامل گردآوری داده‌های عددی است که وضعیت و رفتار سیستم‌ها، برنامه‌ها و اجزای مختلف زیرساخت را در طول زمان نشان می‌دهد. این معیارها می‌توانند شامل مصرف CPU، مصرف حافظه، ترافیک شبکه، زمان پاسخ، نرخ خطا و بسیاری از شاخص‌های مرتبط دیگر باشند. با تجزیه و تحلیل این معیارها، می‌توانید بینش‌های ارزشمندی در مورد عملکرد و سلامت محیط خود کسب کنید.

چرا جمع‌آوری معیارها مهم است؟

معرفی پرومتئوس و گرافانا

پرومتئوس یک جعبه‌ابزار نظارت و هشداردهی سیستم‌های متن‌باز است که در ابتدا در ساوندکلاود توسعه یافت. این ابزار در جمع‌آوری و ذخیره‌سازی داده‌های سری زمانی، که داده‌های فهرست‌شده بر اساس برچسب زمانی هستند، برتری دارد. پرومتئوس از یک مدل مبتنی بر "کشیدن" (pull-based) برای جمع‌آوری (scrape) معیارها از اهداف (مانند سرورها، برنامه‌ها) در فواصل زمانی منظم استفاده می‌کند. این ابزار یک زبان پرس‌وجوی قدرتمند (PromQL) برای تجزیه و تحلیل داده‌های جمع‌آوری شده و تعریف قوانین هشداردهی ارائه می‌دهد.

گرافانا یک پلتفرم بصری‌سازی داده و نظارت متن‌باز است. این ابزار به شما امکان می‌دهد داشبوردهای تعاملی و نمودارها را برای بصری‌سازی داده‌ها از منابع مختلف، از جمله پرومتئوس، ایجاد کنید. گرافانا مجموعه‌ای غنی از گزینه‌های بصری‌سازی، شامل نمودارها، چارت‌ها، جداول و گیج‌ها را فراهم می‌کند. همچنین از هشداردهی پشتیبانی می‌کند و شما را قادر می‌سازد هنگام عبور از آستانه‌های خاص، اعلان دریافت کنید.

با هم، پرومتئوس و گرافانا یک راهکار نظارتی قدرتمند و انعطاف‌پذیر را تشکیل می‌دهند که می‌تواند با طیف گسترده‌ای از محیط‌ها و موارد استفاده سازگار شود. آنها به طور گسترده در رویکردهای DevOps و SRE (مهندسی قابلیت اطمینان سایت) در سراسر جهان استفاده می‌شوند.

معماری و مفاهیم پرومتئوس

درک اجزای اصلی پرومتئوس برای پیاده‌سازی و استفاده مؤثر ضروری است:

جریان کار پرومتئوس

  1. اهداف (برنامه‌ها، سرورها و غیره) معیارها را نمایش می‌دهند. این معیارها معمولاً از طریق یک نقطه پایانی HTTP نمایش داده می‌شوند.
  2. سرور پرومتئوس معیارها را از اهداف پیکربندی شده جمع‌آوری می‌کند. این سرور به صورت دوره‌ای معیارها را از این نقاط پایانی دریافت می‌کند.
  3. پرومتئوس معیارهای جمع‌آوری شده را در پایگاه داده سری زمانی خود ذخیره می‌کند.
  4. کاربران معیارها را با استفاده از PromQL پرس‌وجو می‌کنند. این به آنها امکان می‌دهد داده‌ها را تجزیه و تحلیل کرده و نمودارها و داشبوردها را ایجاد کنند.
  5. قوانین هشداردهی بر اساس معیارهای ذخیره شده ارزیابی می‌شوند. اگر شرط یک قانون برآورده شود، یک هشدار فعال می‌شود.
  6. Alertmanager هشدارهای فعال شده را مدیریت می‌کند. این ابزار آنها را حذف تکرار، گروه‌بندی و به کانال‌های اطلاع‌رسانی مناسب هدایت می‌کند.

معماری و مفاهیم گرافانا

گرافانا پرومتئوس را با ارائه یک رابط کاربری دوستانه برای بصری‌سازی و تجزیه و تحلیل معیارهای جمع‌آوری شده تکمیل می‌کند:

جریان کار گرافانا

  1. پیکربندی منابع داده: گرافانا را به سرور پرومتئوس خود متصل کنید.
  2. ایجاد داشبوردها: داشبوردها را برای بصری‌سازی معیارهای خود طراحی کنید.
  3. افزودن پنل به داشبوردها: پنل‌ها را برای نمایش نقاط داده خاص از پرومتئوس با استفاده از پرس‌وجوهای PromQL اضافه کنید.
  4. پیکربندی هشداردهی (اختیاری): قوانین هشداردهی را در گرافانا تنظیم کنید تا اعلان‌ها را بر اساس آستانه‌های معیار خاص دریافت کنید.
  5. اشتراک‌گذاری داشبوردها: داشبوردها را با تیم خود به اشتراک بگذارید تا در نظارت و تجزیه و تحلیل همکاری کنید.

راه‌اندازی پرومتئوس و گرافانا

این بخش یک راهنمای گام به گام برای راه‌اندازی پرومتئوس و گرافانا ارائه می‌دهد.

نصب پرومتئوس

1. دانلود پرومتئوس:

آخرین نسخه پرومتئوس را از وب‌سایت رسمی دانلود کنید: https://prometheus.io/download/. بسته مناسب برای سیستم عامل خود (مثلاً لینوکس، ویندوز، macOS) را انتخاب کنید.

2. استخراج آرشیو:

آرشیو دانلود شده را در پوشه دلخواه خود استخراج کنید.

3. پیکربندی پرومتئوس:

یک فایل پیکربندی `prometheus.yml` ایجاد کنید. این فایل اهدافی را که پرومتئوس جمع‌آوری خواهد کرد و سایر گزینه‌های پیکربندی را تعریف می‌کند. یک پیکربندی پایه ممکن است به این صورت باشد:


global:
  scrape_interval:     15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']

  - job_name: 'node_exporter'
    static_configs:
      - targets: ['localhost:9100']

این پیکربندی دو وظیفه جمع‌آوری را تعریف می‌کند: یکی برای خود پرومتئوس (جمع‌آوری معیارهای خود) و دیگری برای node_exporter که روی پورت 9100 لوکال‌هاست اجرا می‌شود. `scrape_interval` مشخص می‌کند که پرومتئوس هر چند وقت یکبار اهداف را جمع‌آوری کند.

4. راه‌اندازی پرومتئوس:

فایل اجرایی پرومتئوس را از پوشه‌ای که آرشیو را استخراج کرده‌اید، اجرا کنید:

./prometheus --config.file=prometheus.yml

پرومتئوس به طور پیش‌فرض روی پورت 9090 راه‌اندازی می‌شود و گوش می‌دهد. می‌توانید از طریق مرورگر خود در http://localhost:9090 به رابط وب پرومتئوس دسترسی پیدا کنید.

نصب گرافانا

1. دانلود گرافانا:

آخرین نسخه گرافانا را از وب‌سایت رسمی دانلود کنید: https://grafana.com/grafana/download. بسته مناسب برای سیستم عامل خود را انتخاب کنید.

2. نصب گرافانا:

دستورالعمل‌های نصب مربوط به سیستم عامل خود را دنبال کنید. به عنوان مثال، در دبیان/اوبونتو:


sudo apt-get update
sudo apt-get install -y apt-transport-https
sudo apt-get install -y software-properties-common wget
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 -a /etc/apt/sources.list.d/grafana.list
sudo apt-get update
sudo apt-get install grafana

3. راه‌اندازی گرافانا:

سرویس گرافانا را راه‌اندازی کنید:

sudo systemctl start grafana-server

4. دسترسی به گرافانا:

گرافانا به طور پیش‌فرض روی پورت 3000 راه‌اندازی می‌شود و گوش می‌دهد. می‌توانید از طریق مرورگر خود در http://localhost:3000 به رابط وب گرافانا دسترسی پیدا کنید.

نام کاربری و رمز عبور پیش‌فرض `admin` و `admin` است. در اولین ورود از شما خواسته می‌شود رمز عبور را تغییر دهید.

اتصال گرافانا به پرومتئوس

برای بصری‌سازی معیارها از پرومتئوس در گرافانا، باید پرومتئوس را به عنوان یک منبع داده در گرافانا پیکربندی کنید.

1. افزودن منبع داده:

در رابط وب گرافانا، به پیکربندی > منابع داده بروید و روی افزودن منبع داده کلیک کنید.

2. انتخاب پرومتئوس:

پرومتئوس را به عنوان نوع منبع داده انتخاب کنید.

3. پیکربندی اتصال پرومتئوس:

آدرس URL سرور پرومتئوس خود را وارد کنید (مثلاً `http://localhost:9090`). سایر گزینه‌ها را در صورت نیاز پیکربندی کنید (مثلاً احراز هویت).

4. ذخیره و تست:

روی ذخیره و تست کلیک کنید تا تأیید شود گرافانا می‌تواند با موفقیت به پرومتئوس متصل شود.

ایجاد داشبوردها در گرافانا

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

1. ایجاد یک داشبورد جدید:

در رابط وب گرافانا، روی نماد + در نوار کناری کلیک کرده و داشبورد را انتخاب کنید.

2. افزودن پنل:

برای افزودن یک پنل جدید به داشبورد، روی افزودن یک پنل خالی کلیک کنید.

3. پیکربندی پنل:


rate(process_cpu_seconds_total{job="node_exporter"}[5m])

این پرس‌وجو نرخ تغییر زمان CPU استفاده شده توسط فرآیندها را که توسط node_exporter در یک بازه 5 دقیقه‌ای جمع‌آوری شده‌اند، محاسبه می‌کند.

4. ذخیره داشبورد:

برای ذخیره داشبورد روی نماد ذخیره کلیک کنید.

PromQL: زبان پرس‌وجوی پرومتئوس

PromQL یک زبان پرس‌وجوی قدرتمند است که برای بازیابی و دستکاری معیارهای ذخیره شده در پرومتئوس استفاده می‌شود. این به شما امکان می‌دهد طیف گسترده‌ای از عملیات را انجام دهید، از جمله:

نمونه‌های PromQL


rate(process_cpu_seconds_total{job="node_exporter"}[5m])

node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes

(node_filesystem_size_bytes{mountpoint="/"} - node_filesystem_free_bytes{mountpoint="/"}) / node_filesystem_size_bytes{mountpoint="/"} * 100

rate(http_requests_total[5m])

یادگیری PromQL برای استفاده مؤثر از پرومتئوس و گرافانا ضروری است. برای یک راهنمای جامع درباره این زبان، به مستندات پرومتئوس مراجعه کنید.

هشداردهی با پرومتئوس و Alertmanager

پرومتئوس یک سیستم هشداردهی قوی را فراهم می‌کند که به شما امکان می‌دهد قوانین را بر اساس مقادیر معیارها تعریف کنید. هنگامی که شرط یک قانون برآورده شود، یک هشدار فعال می‌شود و Alertmanager فرآیند اطلاع‌رسانی را مدیریت می‌کند.

تعریف قوانین هشداردهی

قوانین هشداردهی در فایل پیکربندی `prometheus.yml` تعریف می‌شوند. در اینجا نمونه‌ای از یک قانون هشداردهی آورده شده است که هنگام تجاوز مصرف CPU از 80٪ فعال می‌شود:


rule_files:
  - "rules.yml"

سپس، در فایلی به نام `rules.yml`، قوانینی مانند این را قرار دهید:


groups:
- name: example
  rules:
  - alert: HighCPUUsage
    expr: rate(process_cpu_seconds_total{job="node_exporter"}[5m]) > 0.8
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: "High CPU usage detected"
      description: "CPU usage is above 80% on {{ $labels.instance }}"

توضیح:

پیکربندی Alertmanager

Alertmanager مسیریابی و اطلاع‌رسانی هشدارها را مدیریت می‌کند. شما باید Alertmanager را پیکربندی کنید تا مشخص کنید هشدارها به کجا ارسال شوند (مثلاً ایمیل، اسلک، پیجردیوتی). برای دستورالعمل‌های پیکربندی دقیق، به مستندات Alertmanager مراجعه کنید.

یک پیکربندی `alertmanager.yml` حداقل ممکن است به این صورت باشد:


global:
  resolve_timeout: 5m

route:
  group_by: ['alertname']
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 12h
  receiver: 'web.hook'

receivers:
- name: 'web.hook'
  webhook_configs:
  - url: 'http://localhost:8080/'

این پیکربندی هشدارها را به یک وب‌هوک در پورت 8080 لوکال‌هاست ارسال می‌کند. می‌توانید بخش `receivers` را برای استفاده از سرویس‌هایی مانند اسلک یا ایمیل سفارشی‌سازی کنید.

مثال‌های کاربردی و موارد استفاده

پرومتئوس و گرافانا می‌توانند برای نظارت بر طیف گسترده‌ای از برنامه‌ها و اجزای زیرساخت استفاده شوند. در اینجا چند مثال کاربردی آورده شده است:

مثال: نظارت بر معماری میکروسرویس‌ها

در یک معماری میکروسرویس‌ها، پرومتئوس و گرافانا می‌توانند برای نظارت بر سلامت و عملکرد سرویس‌های منفرد، و همچنین کل سیستم استفاده شوند. هر سرویس می‌تواند معیارهای خود را، مانند نرخ درخواست‌ها، زمان پاسخ و نرخ خطا، نمایش دهد. پرومتئوس سپس می‌تواند این معیارها را جمع‌آوری کرده و گرافانا می‌تواند برای بصری‌سازی آنها استفاده شود. این به شما امکان می‌دهد گلوگاه‌های عملکردی یا خرابی‌ها را در سرویس‌های خاص به سرعت شناسایی کنید.

تکنیک‌های پیشرفته و بهترین روش‌ها

برای دستیابی به حداکثر بهره‌وری از پرومتئوس و گرافانا، تکنیک‌های پیشرفته و بهترین روش‌های زیر را در نظر بگیرید:

عیب‌یابی مسائل رایج

حتی با برنامه‌ریزی و پیاده‌سازی دقیق، ممکن است هنگام استفاده از پرومتئوس و گرافانا با مشکلاتی مواجه شوید. در اینجا برخی از مسائل رایج و راه‌حل‌های آنها آورده شده است:

راهکارهای نظارت جایگزین

در حالی که پرومتئوس و گرافانا ابزارهای قدرتمندی هستند، تنها گزینه‌ها برای جمع‌آوری و بصری‌سازی معیارها نیستند. سایر راهکارهای نظارت محبوب شامل:

بهترین راهکار نظارتی برای سازمان شما به الزامات و بودجه خاص شما بستگی دارد.

نتیجه‌گیری

جمع‌آوری معیارها برای حفظ سلامت و عملکرد برنامه‌ها و زیرساخت‌ها ضروری است. پرومتئوس و گرافانا یک راهکار متن‌باز قدرتمند و انعطاف‌پذیر برای جمع‌آوری، ذخیره‌سازی و بصری‌سازی معیارها ارائه می‌دهند. با درک مفاهیم اصلی و پیروی از بهترین روش‌های ذکر شده در این راهنما، می‌توانید از پرومتئوس و گرافانا برای ساخت یک سیستم نظارتی قوی که نیازهای سازمان شما را برآورده می‌کند، بهره ببرید.

نظارت مؤثر، همراه با هشداردهی پیشگیرانه و پاسخ سریع به حوادث، سنگ بنای عملیات فناوری اطلاعات مدرن است. استفاده از ابزارهایی مانند پرومتئوس و گرافانا سازمان‌ها را قادر می‌سازد تا خدمات قابل اعتماد و با عملکرد بالا را به کاربران خود ارائه دهند، صرف نظر از موقعیت مکانی یا صنعت آنها.