۳۰ دقیقه سریع‌تر مشکل را حل کنید

با دستیار هوشمند SRE

راهنمای استفاده از افزونه مانیتورینگ Kube-Prometheus Stack

به منظور فراهم‌سازی مانیتورینگ پیش‌فرض برای کلاسترهای کوبرنتیز، سرویس ابری ما به صورت خودکار افزونه kube-prometheus را روی کلاستر شما نصب و پیکربندی کرده است. این افزونه مجموعه‌ای یکپارچه از Prometheus، Alertmanager و Grafana به همراه داشبوردها و قوانین هشدار از پیش آماده‌شده را ارائه می‌دهد. دقت داشته باشید که برای پایش کلاستر کوبر در سطح اپلیکیشن‌ لازم است که شما به صورت شخصی‌سازی شده از این افزونه استفاده نمایید؛ به این صورت که متریک‌های مورد نظر خود را در اپلیکیشن‌تان تعریف و با استفاده از service-monitor و pod-monitor اقدام به جمع‌آوری آنها کنید، در گرافانا داشبوردهای مورد نیاز خودتان را بسازید و هشدارهای لازم را تنظیم نمایید. در صورتی که تمایل به استفاده از افزونه مانیتورینگ پیش فرض را ندارید، می‌توانید در اسلک پشتیبانی پیام داده و این افزونه برای شما حذف گردد و از راهکار مدنظر خود استفاده نمایید.

kube-prom-stack
  • Prometheus

جمع‌آوری و ذخیره‌سازی متریک‌ها از اجزای کوبرنتیز (kubelet، API Server، etcd و …) و همچنین سرویس‌های نصب‌شده.

  • Alertmanager

مدیریت هشدارها بر اساس قوانین تعریف‌شده در Prometheus و ارسال آن‌ها به کانال‌های مختلف (مانند ایمیل، Slack و … در صورت پیکربندی).

  • Grafana

داشبوردهای گرافیکی از پیش آماده برای مشاهده وضعیت نودها، پادها، سرویس‌ها و منابع کلاستر.

  • kube-state-metrics

استخراج متریک‌های وضعیت منابع کوبرنتیز (Deployments، StatefulSets، Pods و …).

  • node-exporter

جمع‌آوری متریک‌های سخت‌افزاری نودها (CPU، Memory، Disk، Network).

Grafana

دسترسی موقت با Port-Forward:

سپس به آدرس http://localhost:3000 مراجعه کنید.

نام کاربری و رمز عبور اولیه:

username: <از تیم پشتیبانی دریافت کنید>
password: <از تیم پشتیبانی دریافت کنید>

توجه: پس از اولین ورود توصیه می‌شود رمز عبور خود را تغییر دهید.

برای دسترسی دائمی میتوانید از اینگرس و لودبالانسر ستون استفاده نمایید.

Prometheus

رابط کاربری برای کوئری‌زدن روی متریک‌های جمع‌آوری شده.

دسترسی موقت با Port-Forward:

سپس به آدرس http://localhost:9090 مراجعه کنید.

Alertmanager

مدیریت هشدارها و مشاهده وضعیت آن‌ها.

دسترسی موقت با Port-Forward:

سپس به آدرس http://localhost:9093 مراجعه کنید.

برخی داشبوردهایی که به صورت آماده در اختیار شما قرار دارند:

  • Kubernetes / Compute Resources / Cluster: نمای کلی منابع کلاستر
  • Kubernetes / Compute Resources / Namespace: مصرف منابع به تفکیک namespace
  • Kubernetes / Compute Resources / Pod: جزئیات مصرف منابع هر پاد
  • Node Exporter / Nodes: متریک‌های سخت‌افزاری نودها (CPU، Memory، Disk، Network)
  • Kubernetes / Kubelet: وضعیت Kubelet نودها
  • Prometheus / Overview: وضعیت سلامت خود Prometheus
  • etcd: وضعیت عملکرد etcd
  • هشدارهای عمومی (مانند پرشدن دیسک، بالارفتن مصرف CPU/Memory، CrashLoopBackOff شدن پادها) به طور پیش‌فرض فعال هستند.
  • برای مشاهده لیست هشدارهای فعال به Prometheus بروید: Alerts یا در Alertmanager به Status > Alerts.
  • برای شخصی‌سازی هشدارها یا اضافه کردن کانال‌های اطلاع‌رسانی (ایمیل، Slack، Webhook و …) می‌توانید با تیم پشتیبانی تماس بگیرید.

شما می‌توانید سرویس‌های اختصاصی خود را نیز با استفاده از ServiceMonitor یا PodMonitor پایش کنید.

نمونه ServiceMonitor

فرض کنید یک سرویس به نام my-service در namespace خودتان دارید که متریک‌ها را روی پورت http-metrics، مسیر /metrics عرضه می‌کند و برچسب app=my-service را دارد:

اعمال ServiceMonitor:

بررسی وضعیت:

  • در رابط Prometheus به Status > Targets بروید تا سرویس خود را مشاهده کنید.

نمونه PodMonitor

برای پایش کردن مستقیم پادها بدون نیاز به Service:

دقت داشته باشید که Pod مورد نظرتان برچسب app=my-app را داشته باشد و متریک‌ها را روی پورت metrics و مسیر /metrics عرضه می‌کند.

نمونه PrometheusRule برای هشدار سفارشی

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

اعمال Rule:

  • Retention داده‌های پرومتئوس: ۱۵ روز
  • فضای ذخیره‌سازی: 20GB
  • Namespace پیش‌فرض: sotoon-system
آیا این مقاله به شما کمک کرد؟

با نظر دادن به بهبود کیفیت مستندات کمک کنید

sotoon

کلیه حقوق مادی و معنوی محفوظ است. © ۱۴۰۴ ستون/ شرکت رایانش ابری واحد هزاردستان