ARMS uyarı yönetimi API'si, herhangi bir kaynaktan gelen uyarıları merkezi işlemeye almak üzere ARMS içine almanızı sağlar.
1. Adım: Özel entegrasyon oluşturun
ARMS konsolu oturumunu açın. Sol gezinme bölmesinde seçeneğini belirleyin.
Alert Integration sekmesinde Custom Integration öğesine tıklayın.
-
Create Custom Event Integration iletişim kutusunda bir entegrasyon adı girin, uyarının otomatik kurtarma süresini ayarlayın, gerekirse bir açıklama ekleyin ve ardından Save and Configure düğmesine tıklayın.
NotZaman aşımı sonrası otomatik kurtarma süresi: Belirtilen süre içinde bir uyarı olayı tekrar tetiklenmezse uyarı olayı otomatik olarak temizlenir.
2. Adım: API uç noktasını yapılandırın
Üçüncü taraf kaynağınızdan sağlanan API uç noktası URL'sini kullanarak uyarıları ARMS uyarı yönetimine gönderin.
Edit Integration sayfasında API Configuration bölümünden uç nokta URL'sini ve API anahtarını kopyalayın.
-
Üçüncü taraf uyarı kaynağınızdan uç nokta URL'sini kullanarak uyarı içeriğini bildirin.
Örnek:
curl -k -H "Content-Type: application/json" -d '{ "trigger-type": "network", "trigger-location": "cn-hangzhou", "trigger-severity": "MAX", "trigger-policy": "package errors > 5%", "trigger-event": "inbound tcp package errors is 20%", "trigger-check": "tcp package error percentage", "trigger-value": "20", "trigger-time": "1629702922000", "metadata": [ { "agent": "SERVER", "ip": "141.219.XX.XX", "fqdn": "websrv1.damenport.org", "microServiceId": "ms-login-2251", "accountId": "1504000433993", "service": "login-0" }, { "agent": "CONTAINER", "ip": "172.1.XX.XX", "fqdn": "websrv2.damenport.org", "microServiceId": "ms-login-2252", "accountId": "129930302939", "service": "login-1" } ], "equipments": [ { "equipmentId": "112" }, { "equipmentId": "113" } ] }' "https://alerts.aliyuncs.com/api/v1/integrations/custom/ymQBN******"curl komutunu ilk çalıştırdığınızda aşağıdaki hatanın dönmesi beklenir:
{ "requestId":null,"traceId":"0bc3b4a********71e4aa7","code":601,"data":{},"success":false,"errorCode":"Invalid incident, labels.alertname is required","message":"Invalid incident, labels.alertname is required","httpStatusCode":601,"errorCodeParams":null,"dynamicMessage":nullEşlemeyi
bölümünde tamamladıktan sonra komutu tekrar çalıştırırsanız doğru veriler döndürülür.
Test verileri göndererek de uyarıları bildirebilirsiniz. Bunu ilk yaptığınızda, eşlemeyi 3. Adım bölümünde tamamlamanızı isteyen bir mesaj görüntülenir.
Send Test Data
açılır penceresinde ilk kez
Send
düğmesine tıkladığınızda sayfa şu mesajı gösterir:
Upload successful, but no event was generated. Please configure event mapping rules based on the raw data!
Bu istemi takip ederek 3. Adımdaki eşlemeyi tamamlayın.
3. Adım: Uyarı alanı eşlemesini yapılandırın
Event Mapping bölümünde üçüncü taraf uyarı kaynağından gelen alanları ARMS uyarı olayı alanlarıyla eşleyin.
Bu bölümde süreç bir örnek üzerinden açıklanmaktadır.
Senaryo: Makine ağında bir TCP paketi hatası oluştu.
Üçüncü taraf uyarı içeriği:
{
"trigger-type": "network", // Event type: network.
"trigger-location": "cn-hangzhou", // Region where the event occurred.
"trigger-severity": "MAX", // Custom event severity level, such as MAX, MID, or LOW.
"trigger-policy": "package errors > 5%", // Trigger policy.
"trigger-event": "inbound tcp package errors is 20%", // Event content: The inbound TCP package error rate for the service is 20%.
"trigger-check": "tcp package error percentage", // Event check item: TCP package error rate.
"trigger-value": "20", // Alert sample value.
"trigger-time": "1629702922000", // Alert start time.
"metadata": [
{
"agent": "SERVER", // Agent type: server.
"ip": "141.219.XX.XX", // IP address.
"fqdn": "websrv1.damenport.org", // Service domain name information.
"microServiceId": "ms-login-2251", // Microservice ID. If 'agent' is 'CONTAINER', this field is conditionally mapped to the ARMS 'service' field.
"accountId": "1504000433993", // User ID. Not included in the alert notification.
"service": "login-0" // Service ID. If 'agent' is 'SERVER', this field is conditionally mapped to the ARMS 'service' field.
},
{
"agent": "CONTAINER", // Agent type: container.
"ip": "172.1.XX.XX", // IP address.
"fqdn": "websrv2.damenport.org", // Service domain name information.
"microServiceId": "ms-login-2252", // Microservice ID. If 'agent' is 'CONTAINER', this field is conditionally mapped to the ARMS 'service' field.
"accountId": "129930302939", // User ID. Not included in the alert notification.
"service": "login-1" // Service ID. If 'agent' is 'SERVER', this field is conditionally mapped to the ARMS 'service' field.
}
],
"equipments": [ // Another array node.
{
"equipmentId": "112"
},
{
"equipmentId": "113"
}
]
}
Event Mapping bölümünde Send Test Data düğmesine tıklayın.
-
Send Test Data iletişim kutusunda üçüncü taraf kaynağınızdaki uyarı içeriğini JSON biçiminde girin ve ardından Send düğmesine tıklayın.
NotUploaded. No events are generated. Configure mappings based on the original data. mesajı görünüyorsa uyarı kaynağının alanları ARMS uyarı olaylarının alanlarıyla eşlenmemiş demektir. Gönderilen veriler sol taraftaki kutuda görüntülenir. Bu sayede eşlemeleri yapılandırırken kaynak alanları seçebilirsiniz.
Uploaded. mesajı görünüyorsa uyarı içeriği Alert Event History sayfasına bildirilir. Daha fazla bilgi için bkz. Uyarı olayı geçmişini görüntüleme.
Send Test Data iletişim kutusunda Disable düğmesine tıklayın.
Event Mapping bölümünün sol kısmında eşleme yapılandırmak istediğiniz veri kayıtlarına tıklayarak ayrıntıları görüntüleyin.
-
Event Mapping bölümünün sağ bölmesinde uyarı kaynağı alanları ile ARMS uyarı alanları arasındaki eşlemeyi yapılandırın.
NotBir uyarı çözümlendikten sonra kurtarma bildirimi veya e-postası almazsanız aşağıdakileri kontrol edin:
Kurtarma olayının ve orijinal uyarı olayının aynı özel entegrasyon kanalı üzerinden gönderildiğinden emin olun.
Orijinal uyarının hala Triggered durumunda olduğundan; zaman aşımı nedeniyle otomatik olarak kurtarılmadığından veya manuel olarak kapatılmadığından emin olun.
Kurtarma olayındaki
alertnamedeğerinin orijinal uyarınınalertnamedeğeriyle tam olarak eşleştiğini doğrulayın.
-
İsteğe bağlı: Select Root Node bölümünde toplu işlemenin kullanılıp kullanılmayacağını belirtin.
Uyarı verileriniz bir dizi içeriyorsa bunu toplu işleme için kök düğüm olarak belirtebilirsiniz.
Use Batch Processing seçeneğini belirledikten sonra toplu olarak işlemek istediğiniz dizi düğümünü kök düğüm olarak seçin.
NotUyarı verileri birden çok dizi düğümü içeriyorsa ARMS uyarı yönetimi toplu işleme için yalnızca bir dizi düğümü seçmenize olanak tanır.
Örneğin örnek uyarıda metadata dizi düğümü iki adet
servicealanı içerir. Kök düğüm olarak metadata'yı seçerseniz bu düğüm altındaki ikiservicealanı aynı belirtilen ARMS uyarı alanına eşlenir.Bir kök düğüm seçerseniz dizideki tüm öğeler için
$.metadata[*].serviceniteliğinin değerlerini ARMSservicealanına yinelenebilir şekilde eşleyebilirsiniz.Bir kök düğüm seçmezseniz belirli bir öğenin değerini (örneğin
$.metadata[0].serviceveya$.metadata[1].service) ARMSservicealanına eşleyebilirsiniz.
-
İsteğe bağlı:Configure Alert Recovery Events seçeneğini belirleyin ve uyarıları temizlemek için alan koşullarını yapılandırın.
ARMS olayları aldıktan sonra belirtilen alan değerlerini içeren uyarıları arar ve bu uyarıları temizler. Uyarıları temizlemek için belirttiğiniz alan, olayda uyarı önem düzeyine karşılık gelen bir alan olmalıdır. Uyarıları temizlemek için
$.severityalanını kullanamazsınız. Örneğin uyarıları temizlemek için belirttiğiniz alan{$.eventType ="resolved"}ise sistem entegrasyonda eventType değeri resolved olan tüm uyarıları otomatik olarak temizler. -
Map Source Fields to Target Fields bölümünde uyarı kaynağı alanlarını ARMS uyarı alanlarıyla eşleyin.
Alan eşleme yöntemini değiştirmek için eşleme simgesine tıklayın.
Doğrudan: Belirtilen uyarı kaynağı alanı doğrudan ilgili ARMS uyarı alanıyla eşlenir.
-
Seriler: Birden çok kaynak alanı bir sınırlayıcıyla birleştirir ve sonucu bir ARMS uyarı alanına eşler. Sınırlayıcı olarak yalnızca özel karakterler desteklenir.
Örneğin
$.trigger-typeve$.trigger-policyalanlarını alt çizgi (_) ile birleştirerek$.trigger-type_$.trigger-policyoluşturabilir ve sonucu ARMSalertnamealanına eşleyebilirsiniz. -
Koşul: Belirtilen bir koşul karşılandığında bir kaynak alanı hedef ARMS alanına eşler.
Örneğin metadata dizi düğümündeki
agentalanı için şu koşulu ayarlayabilirsiniz:agentdeğeri CONTAINER isemicroServiceIdniteliğinin değerini ARMSservicealanına eşle (If koşulu).agentdeğeri SERVER iseserviceniteliğinin değerini ARMSservicealanına eşle (Else If koşulu). Eşleme tablosu: Uyarı kaynağının uyarı önem düzeyleri ile ARMS'teki önem düzeyleri arasında bir eşleme kurar. Eşleme tablosu yalnızca önem düzeyi alanı için gereklidir.
Aşağıdaki tabloda ARMS uyarı alanları açıklanmıştır.
Parametre Açıklama Örnek eşleme yöntemi Örnek kaynak alanı alertname Özel uyarının adı. Seriler $.trigger-type,$.trigger-policyseverity Uyarı önem düzeylerinin eşlendiği alan. Bu alan için bir eşleme tablosu yapılandırmanız gerekir ve eşleme yöntemi Doğrudan olarak ayarlanmalıdır. Yöntem: Doğrudan (gerekli) Eşleme tablosu:
- MAX: P1
- MID: P2
- MIN: P3
$.trigger-severitymessage Bildirimlerde kullanılan uyarı olayına ilişkin ayrıntılı bilgiler. Maksimum uzunluk: 15.000 karakter. Doğrudan $.trigger-eventvalue Bir ölçümün örnek değeri. Doğrudan $.trigger-valueimageUrl Grafana ölçüm grafiklerini eşlemek için kullanılan bir ölçüm çizgi grafiğinin URL'si. Yok Yok check Uyarının denetim öğesi. Örnekler: CPU, JVM, Application Crash ve Deployment. Doğrudan $.trigger-checksource Uyarı olayının kaynağı. Doğrudan $.metadata[*].ipclass Ana bilgisayar gibi uyarı olayının nesne türü. Doğrudan $.trigger-typeservice logService gibi işle ilgili kaynak hizmet. Koşul $.metadata[*].agentdeğeri CONTAINER ise$.metadata[*].microServiceIddeğerini ARMSservicealanına eşle.$.metadata[*].agentdeğeri SERVER ise$.metadata[*].servicedeğerini ARMSservicealanına eşle.
startat Olay başlangıç zaman damgası. Doğrudan $.trigger-timeendat Olay bitiş zaman damgası. Yok Yok generatorUrl Olay ayrıntılarının URL'si. Yok Yok NotÇok koşullu uyarı modunu (tek bir uyarı kuralının birden çok koşul içermesi) kullanıyorsanız ve uyarı sayısı tahmininin 0 olarak görüntülendiğini veya grafikte veri anormallikleri olduğunu gözlemlerseniz alan eşlemelerinizi kontrol edin. Hem
alertnamehem deseverityalanlarının doğru şekilde eşlendiğinden ve olay etiketlerinin eksiksiz olduğundan emin olun. Çok koşullu uyarı modunda eksik veya hatalı eşlemeler uyarı sayısı tahmininin 0 döndürmesine veya grafik verilerinin yanlış görüntülenmesine neden olabilir.
4. Adım: Olay yinelenmesini önlemeyi yapılandırın
Sistem yinelenen verileri azaltmak için belirtilen alanları olay yinelenmesini önleme temeli olarak kullanır. ARMS uyarı yönetimi Event Mapping bölümündeki geçmiş olay verileri için yinelenmesini önleme gruplama sonuçlarını önizlemenize olanak tanır. Yinelenmesini önleme alanlarını gerektiği gibi ayarlayabilirsiniz.
Yinelenmesini önlemeyi yalnızca temizlenmemiş olaylar için yapılandırabilirsiniz.
-
Event Deduplication bölümünde yinelenmesini önlemek için kullanılacak alanları seçin.
Birden çok olay seçilen alanlar için aynı değerlere sahip olduğunda bunlar tek bir uyarı bildiriminde birleştirilir.
Örneğin ARMS
sourcevecheckalanlarını yinelenmesini önleme anahtarları olarak ayarlayın. Örnek senaryoda üçüncü taraf uyarı kaynağındaki$.metadata[*].ipalanı ARMSsourcealanına ve$.trigger-checkalanı ARMScheckalanına eşlenir. Sonuç olarak aynı IP adresine ve denetim öğesine sahip olaylar tek bir olayda birleştirilirken farklı IP adreslerine veya denetim öğelerine sahip olaylar ayrı kalır. -
Deduplication Test düğmesine tıklayarak yinelenmesini önlemeden sonraki uyarı gruplarını önizleyin.
NotYinelenmesini önleme testi
Event Mapping
bölümünün sol bölmesine yüklenen son 10 test verisi kaydı için uygulanır.
Select fields for deduplication
alanında
source
ve
check
öğelerini seçin ve ardından
Deduplication Test
düğmesine tıklayın. Test sonuçları seçilen alanlara göre gruplanır. Örneğin olaylar farklı kaynak IP adreslerine (141.219.xxx ve 172.1.xxx) ve aynı denetim öğesine (tcp package error percentage) göre iki gruba ayrılır. Her gruptaki uyarı olayları source ve check alanları için aynı değerlere sahiptir.
Yapılandırmayı tamamladıktan sonra Save düğmesine tıklayın.
Sonuçlar
Yapılandırma tamamlandıktan sonra Integrations sayfasında oluşturduğunuz özel entegrasyon görüntülenir.
Entegrasyon listesinde özel entegrasyonun adı, uç nokta URL'si, türü, oluşturma zamanı ve durumu gibi bilgiler görüntülenir. Uç nokta URL'sinin yanındaki
Copy
düğmesine tıklayarak URL'yi kopyalayabilirsiniz. Actions sütununda
Edit
,
Delete
ve
Disable
gibi işlemler bulunur.
Entegrasyonları yönetin
Sol gezinme bölmesinde seçeneğini belirleyin. Alert Integration sekmesinde oluşturduğunuz entegrasyonlar üzerinde aşağıdaki işlemleri gerçekleştirebilirsiniz:
Bir entegrasyonun ayrıntılarını görüntüleme: Entegrasyonu bulun ve ardından satıra tıklayın. Integration Details sayfasında entegrasyon ayrıntılarını görüntüleyin.
-
Anahtarı güncelleme: Hedef entegrasyonun Actions sütununda seçeneklerini belirleyin. Görüntülenen iletişim kutusunda Confirm düğmesine tıklayın.
ÖnemliAnahtarı güncelledikten sonra uyarı kaynağındaki uç nokta URL'sini de
bölümünde açıklandığı şekilde güncellemeniz gerekir.
Bir entegrasyonu değiştirme: Entegrasyonu bulun ve ardından Actions sütunundaki Edit düğmesine tıklayın. Integration Details sayfasında entegrasyon bilgilerini değiştirin ve ardından Save düğmesine tıklayın.
Bir entegrasyonu etkinleştirme veya devre dışı bırakma: Entegrasyonu bulun ve ardından Actions sütunundaki Disable veya Enable düğmesine tıklayın.
Bir entegrasyonu silme: Entegrasyonu bulun ve ardından Actions sütunundaki Delete düğmesine tıklayın. Görüntülenen mesajda OK düğmesine tıklayın.
Bir entegrasyona olay işleme akışı ekleme: Entegrasyonu bulun ve Actions sütunundaki Add Event Processing Flow düğmesine tıklayın. Daha fazla bilgi için bkz. Olay işleme akışı.
Bildirim ilkesi oluşturma: Bildirim ilkesi oluşturmak istediğiniz entegrasyonu bulun ve Actions sütununda More öğesine tıklayın. Görüntülenen listede Create Notification Policy seçeneğine tıklayın. Daha fazla bilgi için bkz. Bildirim ilkeleri.
Sonraki adımlar
Bir bildirim ilkesi oluşturduktan sonra sistem bildirilen uyarı olayları için oluşturulan uyarıları ve uyarı bildirimlerini oluşturduğunuz bildirim ilkesine göre gönderir. Daha fazla bilgi için bkz. Bildirim ilkeleri. Alert Sending History sayfasında yapılandırılan bildirim ilkesine göre oluşturulan uyarıları görüntüleyebilirsiniz. Daha fazla bilgi için bkz. Uyarı gönderme geçmişini görüntüleme.