پیکربندی آلرتینگ در پرومتئوس
بازارچه ابریخواندن 6 دقیقه
پرومتئوس شرطهای آلرت را ارزیابی میکند و در صورت نیاز وضعیت آنها را به Alertmanager میفرستد تا گروهبندی، سکوت و ارسال اعلان از آنجا مدیریت شود.
در این راهنما، کانفیگ ازپیشتعریفشده اپ پرومتئوس ویرایش میشود تا ruleهای آلرت و مقصد Alertmanager تنظیم شوند.
در اپ آماده پرومتئوس بازارچه، کانفیگ prometheus-config از قبل تعریف شده و روی مسیر /etc/config مانت میشود. این کانفیگ سه فایل را در یک ConfigMap نگه میدارد:
| کلید در data | مسیر داخل کانتینر | کاربرد |
|---|---|---|
prometheus.yml | /etc/config/prometheus.yml | کانفیگ اصلی؛ از جمله اتصال به Alertmanager و ارجاع به فایل ruleها |
alerting_rules.yml | /etc/config/alerting_rules.yml | تعریف alerting ruleها |
recording_rules.yml | /etc/config/recording_rules.yml | تعریف recording ruleها (اختیاری) |
برای پیکربندی آلرتینگ، همین کانفیگ موجود ویرایش میشود؛ نیازی به ساخت کانفیگ جدید نیست.
پیشنیازها
- یک اپ فعال پرومتئوس در بازارچه ابری همروش
- یک سرویس Alertmanager در دسترس از شبکه پرومتئوس (آدرس و در صورت نیاز پورت آن)
گام اول: باز کردن کانفیگ موجود
- وارد صفحه اپ پرومتئوس در کنسول همروش شوید.
- از تب تنظیمات و بخش کانفیگها، کانفیگ
prometheus-configرا برای ویرایش باز کنید. - مقدار نام کانفیگ باید
prometheus-configو mountPath برابر/etc/configباشد. این مقادیر را تغییر ندهید.
در ادیتور data.yaml سه کلید دیده میشود. مقدار اولیه آنها معمولاً شبیه نمونه زیر است:
prometheus.yml: |-
rule_files:
- /etc/config/recording_rules.yml
- /etc/config/alerting_rules.yml
alerting_rules.yml: |-
# alert
recording_rules.yml: |-
# record
گام دوم: افزودن آدرس Alertmanager در prometheus.yml
در همان ادیتور، زیر کلید prometheus.yml بخش alerting اضافه میشود تا پرومتئوس بداند آلرتها را به کجا بفرستد. اگر Alertmanager با Basic Auth محافظت میشود، بلوک basic_auth هم در همین بخش میآید. rule_files از قبل به مسیرهای داخل /etc/config اشاره میکند و باید حفظ شود:
prometheus.yml: |-
global:
scrape_interval: 15s
evaluation_interval: 15s
alerting:
alertmanagers:
- scheme: https
basic_auth:
username: hamravesh-user
password: YOUR_PASSWORD
static_configs:
- targets:
- alertmanager.example.com
rule_files:
- /etc/config/recording_rules.yml
- /etc/config/alerting_rules.yml
scrape_configs:
- job_name: prometheus
static_configs:
- targets:
- localhost:9090
- بهجای
alertmanager.example.comآدرس واقعی Alertmanager قرار داده میشود. - بهجای
YOUR_PASSWORDهمان رمزی گذاشته میشود که هش bcrypt آن درweb.config.ymlمربوط به Alertmanager ثبت شد ه است. - اگر Alertmanager روی HTTP و پورت پیشفرض باشد، میتوان
schemeراhttpگذاشت و پورت را درtargetsآورد؛ مثلاًalertmanager.example.com:9093. - job مربوط به
localhost:9090اسکرپ خودِ پرومتئوس را نگه میدارد.
گام سوم: تکمیل alerting_rules.yml
بدون حداقل یک alerting rule، پرومتئوس آلرتی برای ارسال به Alertmanager تولید نمیکند. بهجای کامنت # alert، محتوای واقعی rule در کلید alerting_rules.yml قرار میگیرد:
alerting_rules.yml: |-
groups:
- name: instance-availability
rules:
- alert: InstanceDown
expr: up == 0
for: 1m
labels:
severity: critical
annotations:
summary: "Instance {{ $labels.instance }} is down"
description: "Job {{ $labels.job }} has been unreachable for more than 1 minute."
کلید recording_rules.yml در صورت نیاز به recording rule تکمیل میشود؛ برای فقط اتصال به Alertmanager میتوان آن را خالی یا با کامنت باقی گذاشت.
پس از ویرایش، روی ویرایش کلیک میشود تا تغییرات ذخیره شوند.
گام چهارم: بررسی از UI پرومتئوس
پس از ریاستارت، از پنل وب پرومتئوس بررسی میشود که کانفیگ واقعاً بارگذاری شده و Alertmanager در لیست فعالها دیده میشود.
۱. بارگذاری کانفیگ
از منوی بالا مسیر Status > Configuration باز میشود. در YAML نمایشدادهشده باید این موارد دیده شوند:
- بخش
alerting.alertmanagersبا همانtargetsکه در کانفیگ گذاشته شده است - مقادیر
rule_filesبرابر/etc/config/recording_rules.ymlو/etc/config/alerting_rules.yml
اگر این بخشها نبودند، تغییرات ذخیره نشده یا پاد با کانفیگ قبلی بالا آمده است؛ ریاستارت را دوباره انجام دهید.
۲. شناسایی Alertmanager
از مسیر Status > Alertmanagers وضعیت کشف Alertmanager بررسی میشود:
- در فهرست Active باید URL مربوط به Alertmanager (مثلاً
https://alertmanager.example.com/api/v2/alerts) دیده شود - خالیبودن Active و پر بودن Dropped معمولاً یعنی آدرس،
schemeیا دسترسی شبکه اشتباه است
۳. بارگذاری ruleها
از مسیر Status > Rules گروه instance-availability و rule با نام InstanceDown باید در حالت سالم (بدون خطا) دیده شوند. اگر rule با پیام خطا نمایش داده شود، سینتکس YAML یا عبارت expr را اصلاح کنید.
۴. وضعیت آلرتها
از منوی Alerts وضعیت هر rule قابل مشاهده است:
- Inactive: شرط برقرار نیست
- Pending: شرط برقرار است ولی هنوز مدت
forتمام نشده - Firing: آلرت فعال است و باید به Alertmanager ارسال شود
برای تست سریع میتوان موقتاً یک target عمداً از دسترس خارج کرد یا rule آزمایشی با شرط همیشه درست (مثل vector(1)) تعریف کرد تا وضعیت Firing دیده شود؛ پس از تست، rule آزمایشی حذف شود.
۵. مشاهده در UI مربوط به Alertmanager
اگر Alertmanager UI در دسترس باشد، آلرتهای Firing باید در صفحه Alerts همان سرویس هم ظاهر شوند. نبودن آلرت در Alertmanager با وجود Firing در پرومتئوس، معمولاً به مشکل شبکه یا URL نادرست در بخش Alertmanagers برمیگردد.
قدمهای بعدی
- برای راهاندازی Alertmanager آزمایشی روی دارکوب، به راهنمای ساخت اپ دارکوبی Alertmanager مراجعه کنید.
- برای نگهداری طولانیتر متریکها، به راهنمای تنظیم Retention در پرومتئوس مراجعه کنید.
- برای نمایش متریکها در داشبورد، به راهنمای اتصال پرومتئوس به گرافانا مراجعه کنید.
راهنماییهای مرتبط
این راهنمایی کاربردی بود؟
با ثبت بازخوردتان در بهبود کیفیت مستندات مشارکت داشته باشید.