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

- 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