Prometheus ölçümleri beklenen eşikleri aştığında veya anormal desenler sergilediğinde olayların büyümesini önlemek için zamanında bildirim almak önemlidir. ARMS Prometheus uyarı kuralları, önceden ayarlanmış bir ölçümü seçerek veya özel bir PromQL ifadesi yazarak herhangi bir ölçüm için koşul tanımlamanıza olanak tanır. Bildirimleri metin mesajı, e-posta, telefon araması, DingTalk sohbet robotu, WeCom sohbet robotu veya webhook aracılığıyla ekibinize yönlendirebilirsiniz.
Ön koşullar
Prometheus hizmetine bağlısınız. Daha fazla bilgi için bkz.:
Giriş
ARMS konsolu oturumunu açın.
Sol gezinme bölmesinde seçeneğini belirleyin.
Managed Service for Prometheus konsolu oturumunu açın.
Sol gezinme bölmesinde View Alert Rules seçeneğine tıklayın.
Prometheus Alert Rules sayfasında Create Prometheus Alert Rule seçeneğine tıklayın.
Statik bir eşige dayalı olarak Prometheus uyarı kuralı oluşturma
Statik eşik denetimi türü, önceden tanımlanmış uyarı ölçümleri sağlar. Uyarı kurallarını hızlıca oluşturmak için bu ölçümleri seçebilirsiniz.
-
Create Prometheus Alert Rule sayfasında aşağıdaki uyarı parametrelerini yapılandırın.
Parametre
Açıklama
Örnek
Alert Name
Uyarının adı.
prod-cluster-container-cpu-alert
Check Type
Static threshold seçeneğini belirleyin.
Static threshold
Prometheus Instance
Uyarıyı oluşturmak istediğiniz Prometheus örneğini seçin.
Production Cluster
Alert Group
Bir uyarı grubu seçin.
Farklı Prometheus türleri farklı uyarı gruplarını destekler. Kullanılabilir uyarı grubu seçenekleri, seçilen Prometheus örnek türüne göre değişir.
Kubernetes Workloads
Alert Metric
Uyarıyı yapılandırmak istediğiniz ölçümü seçin. Her uyarı grubu farklı ölçümlere karşılık gelir.
Container CPU utilization
Alert Condition
Uyarı ölçümünün önceden tanımlanmış içeriğine göre bir uyarı olayını tetikleyen koşulları ayarlayın.
Konteyner CPU kullanımı
greater than80% olduğunda uyarı koşulu karşılanır.Filter Condition
Uyarı ölçümüne göre uyarı kuralının kapsamını tanımlayın. Filtreleme koşullarını karşılayan herhangi bir kaynak uyarı kuralını sağladığında bir uyarı olayı tetiklenir.
Aşağıdaki filtreleme koşulları kullanılabilir:
Traverse: Uyarı kuralı, mevcut Prometheus örneğindeki tüm kaynaklar için geçerlidir. Traverse varsayılan filtreleme koşuludur.
Equal To: Bu koşulu seçtikten sonra belirli bir kaynak adı girin. Uyarı kuralı yalnızca bu kaynak için geçerlidir. Birden fazla kaynak adı giremezsiniz.
Not Equal To: Bu koşulu seçtikten sonra belirli bir kaynak adı girin. Uyarı kuralı, belirtilen kaynak hariç tüm kaynaklar için geçerlidir. Birden fazla kaynak adı giremezsiniz.
Match Regular Expression: Bu koşulu seçtikten sonra ihtiyaçlarınıza göre kaynak adlarını eşleştirmek için bir düzenli ifade girin. Uyarı kuralı, düzenli ifadeyle eşleşen tüm kaynaklar için geçerlidir.
Do Not Match Regular Expression: Bu koşulu seçtikten sonra ihtiyaçlarınıza göre kaynak adlarını eşleştirmek için bir düzenli ifade girin. Uyarı kuralı, düzenli ifadeyle eşleşen tüm kaynakları filtreler.
NotFiltreleme koşullarını ayarladıktan sonra Data Preview alanı görünür.
Filtreleme koşulu 300 karakteri aşamaz.
Traverse
Data Preview
Data Preview alanı, uyarı koşuluna karşılık gelen Prometheus Query Language (PromQL) ifadesini görüntüler. Ayrıca izleme ölçümünün değerlerini bir zaman serisi eğrisi olarak gösterir.
Varsayılan olarak yalnızca bir kaynağın gerçek zamanlı değeri görüntülenir. Bu alandaki filtre kutusunda bir hedef kaynak ve zaman aralığı seçerek farklı kaynaklar ve zaman aralıkları için değerleri görüntüleyebilirsiniz.
NotZaman serisi eğrisinde uyarı eşiği kırmızı düz bir çizgi olarak görünür. Eşiği karşılayan eğri kısmı koyu kırmızı, karşılamayan kısım ise mavi renkte görüntülenir.
Belirli bir zamandaki kaynak ayrıntılarını görüntülemek için zaman serisi eğrisinin üzerine gelin.
Bu dönem için eğriyi görüntülemek üzere zaman serisi eğrisinde bir zaman aralığı seçin.
Yok
Duration
Bir uyarı koşulu karşılandığında uyarı olayı hemen tetiklenir: Herhangi bir veri noktası eşiği karşıladığında bir uyarı olayı tetiklenir.
Bir uyarı olayı yalnızca bir uyarı koşulu N dakika boyunca devam ettikten sonra tetiklenir: Bir uyarı olayı yalnızca eşiğin karşılandığı süre N dakikadan büyük veya eşit olduğunda tetiklenir.
1
Alert Level
Uyarı düzeyini özelleştirin. Varsayılan uyarı düzeyi Default şeklindedir. Önem düzeyi Default, P4, P3, P2 ve P1 şeklinde artar.
Default
Alert Content
Kullanıcıların aldığı uyarı bilgileri. Uyarı içeriğindeki uyarı parametre değişkenlerini özelleştirmek için Go şablon sözdizimini kullanabilirsiniz.
Namespace: {{$labels.namespace}} / Pod: {{$labels.pod_name}} / Container: {{$labels.container}} CPU utilization {{$labels.metrics_params_opt_label_value}} {{$labels.metrics_params_value}}%, Current value: {{ printf "%.2f" $value }}%
Alert Notification
Simple Mode: Notification Receiver, Notification Period ve Whether to Resend Notifications ayarlarını yapabilirsiniz.
Standard Mode:
Bildirim ilkesi belirtmeyin: Bu seçeneği belirlerseniz uyarı kuralını oluşturduktan sonra Notification Policy sayfasında yeni bir bildirim ilkesi oluşturabilir ve uyarı kuralını eşleştirmek için uyarı kuralı adı gibi eşleştirme kuralları ve koşulları belirtebilirsiniz. Uyarı kuralı tetiklendiğinde ve bir uyarı olayı oluşturduğunda uyarı bilgileri, bildirim ilkesinde belirtilen kişilere veya kişi gruplarına gönderilir. Daha fazla bilgi için bkz. Bildirim ilkeleri.
Bir bildirim ilkesi belirtin: Bu seçeneği belirlerseniz ARMS, ilgili bildirim ilkesine otomatik olarak bir eşleştirme kuralı ekler. Eşleştirme kuralı içeriği, uyarı kuralı adı olarak sunulan uyarı kuralı kimliğidir. Bu, mevcut uyarı kuralı tarafından oluşturulan uyarı olaylarının seçilen bildirim ilkesi tarafından eşleştirilmesini sağlar.
ÖnemliHızlıca bir bildirim ilkesi belirtmek, yalnızca mevcut uyarı kuralından gelen uyarı olaylarının seçilen bildirim ilkesi tarafından eşleştirilmesini ve ilgili uyarıların oluşturulmasını sağlar. Ancak, mevcut uyarı kuralından gelen olaylar bulanık eşleştirme ile yapılandırılmış diğer bildirim ilkeleri tarafından da eşleştirilebilir; bu da uyarıların oluşturulmasına neden olur. Uyarı olayları ile bildirim ilkeleri arasındaki ilişki çoktan çoğa eşlemedir.
Bildirim kuralı belirtmeyin
Advanced Settings
Alert Check Interval
Sistemin verilerin uyarı koşullarını karşılayıp karşılamadığını belirlemek için uyarı kuralını denetlediği aralık. Varsayılan 1 dakikadır ve minimum değer 1 dakikadır.
1
Check after data is complete
Evet
Hayır
Evet
Tags
Uyarı için etiketler ayarlayın. Etiketler, bildirim ilkesi eşleştirme kuralları için seçenek olarak kullanılabilir.
Yok
Annotations
Uyarı için açıklamalar ayarlayın.
Yok
-
Yapılandırmayı tamamladıktan sonra Save seçeneğine tıklayın. Prometheus uyarı kuralı listesi sayfasında mevcut uyarı kuralının durumunu görüntüleyebilirsiniz.
Uyarı kuralının Status durumu Automatic Interruption ise kesintinin nedenini gidermek için uyarı kuralını düzenleyin. Ardından Start seçeneğine tıklayın ve görüntülenen iletişim kutusunda Confirm seçeneğine tıklayın. Sorunu çözemezseniz DingTalk üzerinden (Kimlik: d9j_rg9e4062f) ARMS uyarı özelliği ekibiyle iletişime geçerek yardım alın.
Bir uyarı kuralı aşağıdaki nedenlerle otomatik olarak kesintiye uğrayabilir:
Kural sorgusu %1.500'den fazla sonuç döndürür.
Uyarı yönetim sisteminde bildirim alıcısı yapılandırılmamış.
Prometheus örneği kaldırılmış veya kullanılamıyor.
Özel PromQL sorgusu kullanarak Prometheus uyarı kuralı oluşturma
Önceden yapılandırılmış statik eşikler tarafından kapsanmayan ölçümleri izlemek için özel bir Prometheus Query Language (PromQL) sorgusu içeren bir uyarı kuralı oluşturun.
-
Create Prometheus Alert Rule sayfasında aşağıdaki uyarı parametrelerini ayarlayın.
Parametre
Açıklama
Örnek
Alert Name
Uyarının adı.
Pod CPU kullanımı %8'den büyük
Check Type
Custom PromQL query olarak ayarlayın.
Custom PromQL query
Prometheus Instance
Uyarıyı oluşturmak istediğiniz Prometheus örneğini seçin.
Yok
Reference Alert Group
Bir uyarı grubu seçin.
Farklı Prometheus türleri farklı uyarı gruplarını destekler. Kullanılabilir uyarı grubu seçenekleri, seçilen Prometheus örnek türüne göre değişir.
Kubernetes Workload
Reference Alert Metric
İsteğe bağlı. Referans ölçümleri, yaygın ölçümler için özel PromQL yapılandırmaları sağlar. Alanları önceden doldurmak için benzer bir ölçüm seçin. Ardından yapılandırmayı ihtiyaca göre değiştirin.
Reference Metric parametresi, seçilenPrometheus örnek türüne göre desteklenen uyarı ölçümlerini otomatik olarak filtreler.
Pod disk kullanımı uyarısı
Custom PromQL Statement
Uyarı kuralı ifadesini ayarlamak için bir PromQL ifadesi kullanın.
Namespace: {{$labels.namespace}}/Pod: {{$labels.pod_name}}/Disk device: {{$labels.device}} usage exceeds %90, current value {{ printf "%.2f" $value }}%max(container_fs_usage_bytes{pod!="", namespace!="arms-prom",namespace!="monitoring"}) by (pod_name, namespace, device)/max(container_fs_limit_bytes{pod!=""}) by (pod_name,namespace, device) * 100 > 90
Data Preview
Data Preview alanı, uyarı koşuluna karşılık gelen Prometheus Query Language (PromQL) ifadesini görüntüler. Ayrıca izleme ölçümünün değerlerini bir zaman serisi eğrisi olarak gösterir.
Varsayılan olarak yalnızca bir kaynağın gerçek zamanlı değeri görüntülenir. Bu alandaki filtre kutusunda bir hedef kaynak ve zaman aralığı seçerek farklı kaynaklar ve zaman aralıkları için değerleri görüntüleyebilirsiniz.
NotBelirli bir veri noktası için kaynak ayrıntılarını görüntülemek üzere fareyi zaman serisi eğrisinin üzerine getirin.
Bu dönem için zaman serisini görüntülemek üzere eğride bir zaman aralığı seçin.
Yok
Duration
Herhangi bir veri noktası eşiği karşıladığında uyarı hemen tetiklenir.
Uyarı yalnızca koşul N dakika boyunca ardışık olarak devam ederse tetiklenir.
1
Alert Level
Uyarı düzeyini özelleştirin. Varsayılan uyarı düzeyi Default şeklindedir. Önem düzeyi Default, P4, P3, P2 ve P1 şeklinde artar.
Default
Alert Content
Kullanıcıların aldığı uyarı bilgileri. Uyarı içeriğindeki parametre değişkenlerini özelleştirmek için Go şablon sözdizimini kullanın.
Aşağıdaki örnek, pod yeniden başlatma uyarısı için bir şablon gösterir. Bu, okunabilir bildirim içeriği yapılandırmanıza yardımcı olur:
Namespace: {{$labels.namespace}}/Pod: {{$labels.pod_name}} restarted more than {{ $labels.metrics_params_value}} times in {{$labels.metrics_params_time}} minutes. Current restarts: {{ $value }}
Namespace: {{$labels.namespace}}/Pod: {{$labels.pod_name}}/Disk device: {{$labels.device}} usage exceeds %90, current value {{ printf "%.2f" $value }}%
Alert Notification
Simple Mode: Notification Receiver, Notification Period ve Whether to Resend Notifications ayarlarını yapabilirsiniz.
Standard Mode:
Bildirim ilkesi belirtmeyin: Bu seçeneği belirlerseniz uyarı kuralını oluşturduktan sonra Notification Policy sayfasında yeni bir bildirim ilkesi oluşturabilir ve uyarı kuralını eşleştirmek için uyarı kuralı adı gibi eşleştirme kuralları ve koşulları belirtebilirsiniz. Uyarı kuralı tetiklendiğinde ve bir uyarı olayı oluşturduğunda uyarı bilgileri, bildirim ilkesinde belirtilen kişilere veya kişi gruplarına gönderilir. Daha fazla bilgi için bkz. Bildirim ilkeleri.
Bir bildirim ilkesi belirtin: Bu seçeneği belirlerseniz ARMS, ilgili bildirim ilkesine otomatik olarak bir eşleştirme kuralı ekler. Eşleştirme kuralı içeriği, uyarı kuralı adı olarak sunulan uyarı kuralı kimliğidir. Bu, mevcut uyarı kuralı tarafından oluşturulan uyarı olaylarının seçilen bildirim ilkesi tarafından eşleştirilmesini sağlar.
ÖnemliHızlıca bir bildirim ilkesi belirtmek, yalnızca mevcut uyarı kuralından gelen uyarı olaylarının seçilen bildirim ilkesi tarafından eşleştirilmesini ve ilgili uyarıların oluşturulmasını sağlar. Ancak, mevcut uyarı kuralından gelen olaylar bulanık eşleştirme ile yapılandırılmış diğer bildirim ilkeleri tarafından da eşleştirilebilir; bu da uyarıların oluşturulmasına neden olur. Uyarı olayları ile bildirim ilkeleri arasındaki ilişki çoktan çoğa eşlemedir.
Bildirim kuralı belirtmeyin
Advanced Settings
Alert Check Period
Uyarı kuralını denetlemek için dakika cinsinden aralık. Minimum değer 1 dakikadır.
1
Check After Data Is Complete
Evet
Hayır
Evet
Tags
Uyarı için etiketler ayarlayın. Etiketler, bildirim ilkesi eşleştirme kuralları için seçenek olarak kullanılabilir.
Yok
Annotations
Uyarı için açıklamalar ayarlayın.
Yok
-
Parametreleri yapılandırdıktan sonra Save seçeneğine tıklayın. Prometheus uyarı kuralları listesi sayfasında uyarı kuralının durumunu görüntüleyebilirsiniz.
Uyarı kuralının Status durumu Automatic Interruption ise verilen nedene dayanarak kuralı tekrar düzenleyin. Ardından Start seçeneğine tıklayın ve görüntülenen iletişim kutusunda Confirm seçeneğine tıklayın. Kesintiyi çözemiyorsanız yardım almak için ARMS uyarı özelliği hizmet hesabıyla (d9j_rg9e4062f) iletişime geçin.
Bir uyarı kuralı aşağıdaki nedenlerle otomatik olarak kesintiye uğrayabilir:
Kural sorgusu %1.500'den fazla sonuç döndürür.
Uyarı yönetim sisteminde bildirim alıcısı yapılandırılmamış.
Prometheus örneği kaldırılmış veya kullanılamıyor.
Uyarı kurallarını yönetme
Managed Service for Prometheus konsolunun Uyarı Kuralları sayfasında oluşturulan uyarılar için (statik eşik ve özel Prometheus Query Language (PromQL) uyarıları gibi) uyarıları düzenleyebilir, etkinleştirebilir (Durdurulmuş durumdaki uyarılar için), devre dışı bırakabilir (Çalışıyor durumdaki uyarılar için), silebilir ve kopyalayabilir; ayrıca olay geçmişlerini görüntüleyebilirsiniz.
Diğer Alibaba Cloud ürünlerinin konsollarında oluşturulan uyarılar için uyarı olay geçmişini görüntüleyebilir veya ilgili ürünün uyarı listesine dönebilirsiniz.
Bir uyarı kuralını değiştirdikten sonra mevcut kurtarılmamış uyarı olayları önceki kurala göre tetiklenmeye devam eder. Yeni kural, Alert Sending History sayfasında ilgili kurtarılmamış olayları talep edip çözdükten sonra yalnızca sonraki uyarı tetiklemeleri için geçerli olur.
SSS
Uyarı kurtarma bildirimleri neden gecikiyor?
Sistem, aracı raporlama gecikmelerinden kaynaklanan yanlış negatifleri önlemek için yerleşik bir gecikme süresine sahiptir. Her denetim sırasında uyarı motoru son 10 dakikalık verileri inceler. Ölçüm artık uyarı koşulunu karşılamasa bile bu zaman penceresi geçmeden uyarı kurtarılmış olarak onaylanmaz.
Kurtarma süresi: Ölçüm uyarıyı tetiklemeyi bıraktıktan yaklaşık 10 dakika sonra kurtarma bildirimi gönderilir.
Mekanizma ayrıntıları: Prometheus yerel bir otomatik kurtarma özelliğine sahip değildir. Bu işlevsellik için ARMS algılama mekanizmasına güvenir.
Bir uyarı kuralı şablonu uyguladıktan sonra bildirim ilkesi kaybolursa ne yapmalıyım?
Neden: Uyarı kuralı şablonları bildirim ilkesi ayarlarını içermez. Bir şablonu yeniden uyguladığınızda kural kimliği değişebilir. Bu durum, orijinal bildirim ilkesinin artık _aliyun_arms_alert_rule_id etiketini eşleştirememesine neden olur.
Çözüm: yoluna gidin ve etkilenen ilkeyi bulun. Dispatch Conditions bölümünde kural kimliği yerine alertname veya küme adı cluster gibi daha kararlı bir etiket kullanarak kuralı yeniden ilişkilendirin.
Uyarı ifadesini artıracak şekilde değiştirdikten sonra hala yinelenen uyarılar alıyorsam ne yapmalıyım?
Neden: Bildirim ilkeniz her N dakikada bir bildirimleri yeniden göndermek üzere yapılandırılmışsa ve manuel kurtarmaya ayarlanmışsa sistem, ölçüm yeni ifadenin koşullarını karşıladığı sürece yeni uyarı olayları oluşturmaya devam eder.
Çözüm: Bildirim ilkesini değiştirin. Yinelenen bildirim ayarını 'Yalnızca ilk tetiklemede bildir' olarak değiştirin veya 'Otomatik kurtarma' moduna geçin. Ayrıca yeni ifadenin kaydedildiğinden ve etkin olduğundan emin olun.
Yapılandırmadan sonra veri içermeyen veya tetiklenmeyen bir Prometheus uyarı kuralını nasıl sorun gideririm?
Araştırmak için şu adımları izleyin:
Bileşenleri kontrol edin: ACK kümenizde kube-state-metrics bileşeninin yüklü olduğundan emin olun. Yüklü değilse yükleyin. Prometheus bileşeninin durumunu kontrol edin. Gerekirse ack-arms-prometheus bileşenini yeniden yükleyin.
Tetiklenme geçmişini doğrulayın: Tetiklenme kayıtlarını kontrol etmek için kuralın yanındaki Alert History seçeneğine tıklayın. Kayıt olmaması kuralın koşullarının karşılanmadığını gösterir. Olası nedenler arasında yanlış ölçüm adı, boş veri veya geçersiz bir sorgu zaman aralığı bulunur. Kayıtlar varsa ancak bildirim gönderilmediyse bildirim ilkenizdeki dağıtım kurallarını kontrol edin. Etiketlerin, küme adının ve diğer koşulların dağıtım kurallarındaki kriterlerle eşleştiğinden emin olun.
Öneri: En son Alibaba Cloud tarafından doğrulanan uyarı şablonlarını kullanın. Bu, eski şablonlarla ortaya çıkabilecek yanlış pozitifleri veya tetiklenmeyen uyarıları önlemeye yardımcı olur.
Sözdizimini kontrol edin: Sayfa hatası görürseniz PromQL sorgunuzdaki düzenli ifadeyi kontrol edin.
{pvc=~}gibi boş bir ifade geçersizdir ve hataya neden olur. Bunu{pvc=~".*"}veya belirli bir değerle düzeltin.
ACS kümelerindeki Prometheus izlemesinden gelen pod belleği uyarıları için ücretlendirme var mı?
Evet. ACS kümeleri pod belleği ölçümleri için izleme ve uyarıyı destekler. Metin mesajı ve sesli arama yoluyla gönderilen uyarılar için ücretlendirilirsiniz. DingTalk Robot ve Webhook aracılığıyla gönderilen uyarılar ücretsizdir.