ARMS警示管理提供API接入的能力,通過對接警示管理的API,可以將任意警示源產生的警示接入ARMS警示管理進行統一處理。
步驟一:建立自訂整合
- 登入ARMS控制台,在左側導覽列選擇 。
- 在警示整合頁簽單擊自訂整合。
- 在建立自訂事件整合對話方塊輸入集成名稱,設定警示自動回復時間,根據需要添加整合描述,然後單擊儲存並配置。說明 警示事件自動回復時間:當警示事件在設定的時間內都沒有再觸發,警示事件將會自動回復。
步驟二:配置介面連結
通過提供者連結,將第三方警示源發送到ARMS警示管理。
- 在編輯整合頁面的介面配置地區,複製介面和API密鑰連結。
- 在第三方警示源訪問上一步擷取的介面地址並上報警示內容。
上報樣本:
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會返回如下所示的錯誤提示,這是正常的。
您需要在下文步驟三完成映射後,再次執行時,curl命令則會返回正確的資料。{ "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":null
您也可以通過發送測試資料進行警示上報。首次執行時會出現如下提示,根據提示您可以在下文步驟三完成映射。
步驟三:設定警示欄位對應
在事件映射地區設定第三方警示源與ARMS警示事件欄位的映射。
此處操作將使用以下情境作為樣本。
警示資料情境:機器網路發生TCP Package錯誤。
第三方警示內容:
{
"trigger-type": "network", //事件類型:網路。
"trigger-location": "cn-hangzhou", //事件發生地區。
"trigger-severity": "MAX", //自訂的事件等級,例如:MAX、MID、LOW。
"trigger-policy": "package errors > 5%", //觸發策略。
"trigger-event": "inbound tcp package errors is 20%", //事件內容:服務入站TCP包錯誤率為20%。
"trigger-check": "tcp package error percentage", //事件檢查項:TCP包錯誤率。
"trigger-value": "20", //警示樣本值。
"trigger-time": "1629702922000", //警示開始時間。
"metadata": [
{
"agent": "SERVER", //探測端類型:伺服器。
"ip": "141.219.XX.XX", // IP地址。
"fqdn": "websrv1.damenport.org", //服務網域名稱資訊。
"microServiceId": "ms-login-2251", //微服務ID ,"agent"為CONTAINER時,該欄位條件映射到ARMS的service欄位。
"accountId": "1504000433993", //使用者ID,警示通知中不體現。
"service": "login-0" //服務ID ,"agent"為SERVER時,該欄位條件映射到ARMS的service欄位。
},
{
"agent": "CONTAINER", //探測端類型:容器。
"ip": "172.1.XX.XX", // IP地址。
"fqdn": "websrv2.damenport.org", //服務網域名稱資訊。
"microServiceId": "ms-login-2252", //微服務ID ,"agent"為CONTAINER時,該欄位條件映射到ARMS的service欄位。
"accountId": "129930302939", //使用者ID,警示通知中不體現。
"service": "login-1" //服務ID ,"agent"為SERVER時,該欄位條件映射到ARMS的service欄位。
}
],
"equipments": [ //另一個數組節點。
{
"equipmentId": "112"
},
{
"equipmentId": "113"
}
]
}
- 在事件映射地區左側單擊發送測試資料。
- 在發送測試資料對話方塊,輸入第三方警示源的JSON格式的警示內容,然後單擊發送。說明
- 如果顯示上傳成功,但未建置事件,請根據未經處理資料配置事件映射規則!,表示警示源與ARMS警示事件的欄位沒有映射,實際發送資料會被儲存在左側記錄框中,以便配置映射時可以直接選取對應警示源欄位。
- 如果顯示上傳成功!,則表明對應的警示內容已上報至警示事件歷史頁面。更多資訊,請參見查看警示事件歷史。
- 在發送測試資料對話方塊單擊關閉。
- 在事件映射地區左側單擊並展開需要建立映射的警示資料。
- 在事件映射地區右側配置警示源欄位與ARMS警示的映射。
- 可選:在選擇根節點地區選取項目是否使用批處理。當警示資料存在數組節點時,可以指定目標數組節點作為根節點,將對應根節點下的資料進行批處理。
選擇使用批處理後,選擇需要批處理的數組節點作為根節點。
說明 當警示資料存在多個數組節點時,ARMS警示管理僅支援選擇其中一個數組節點進行批處理。例如:對於警示樣本情境metadata數組節點下的兩個
service
欄位,選擇metadata為根節點後,節點下的兩個service
欄位將會作為同一欄位對應到ARMS的指定警示欄位。- 選擇為根節點:可以設定將數組中所有元素的
$.metadata[*].service
屬性值迭代映射到ARMS的service
欄位。 - 不選擇為根節點:可以選擇將數組中的具體下標元素
$.metadata[0].service
或$.metadata[1].service
屬性值迭代映射到ARMS的service
欄位。
- 選擇為根節點:可以設定將數組中所有元素的
- 可選:選中配置警示恢複事件,然後設定恢複欄位條件。系統收到事件後會根據恢複欄位查詢警示事件,包含指定欄位的事件會自動進行恢複。用於指定恢複事件的欄位必須選擇原事件中等價於警示等級的欄位,且不可使用
$.severity
欄位。例如恢複欄位為{$.eventType="resolved"}
,則系統會自動回復該整合下eventType為resolved的所有警示。 - 在將源欄位對應到目標欄位地區將警示源欄位對應到ARMS警示欄位上。單擊映射表徵圖,可以修改欄位對應方式。
- 直接:警示源指定欄位直接映射為ARMS中對應的警示欄位。
- 串聯:將多個警示源欄位通過指定分隔字元串聯為一個欄位,然後將這一個欄位對應為ARMS中對應的警示欄位。分隔字元僅支援特殊字元。
例如:可以將欄位
$.trigger-type
和$.trigger-policy
使用短底線(_)串聯為$.trigger-type_$.trigger-policy
,然後映射到ARMS的alertname
欄位上。 - 條件:當警示欄位值滿足指定條件後,設定的欄位才會映射到ARMS目標欄位上。
例如,如下圖所示,對於metadata數組節點下的
agent
欄位,如果agent
取值為CONTAINER,就將metadata數組節點下的microServiceId
屬性值映射到ARMS的service
欄位上,即If條件;如果agent
取值為SERVER時,就將metadata數組節點下的service
屬性值映射到ARMS的service
欄位上,即Else If條件。 - 映射表:設定警示源的警示等級與ARMS中的警示等級的映射,僅警示等級(severity)欄位需要設定映射表。
ARMS警示欄位說明:
ARMS警示欄位 說明 樣本映射方式 樣本情境映射欄位 警示名稱(alertname) 自訂警示的名稱。 串聯 $.trigger-type
,$.trigger-policy
警示等級(severity) 設定警示等級的映射欄位。該欄位需要設定警示等級映射表,且映射方式必須設定為直接映射。 映射方式:直接(必選) 映射表:
- MAX:P1
- MID:P2
- MIN:P3
$.trigger-severity
警示描述(message) 警示事件的詳細資料,用於警示通知。最多支援15000字元。 直接 $.trigger-event
警示樣本值(value) 監控指標的樣本值。 直接 $.trigger-value
警示圖片(imageUrl) 指標折線圖URL,用於映射Grafana指標折線圖。 無 無 檢查項(check) 警示檢查項。例如:CPU、JVM、Application Crash、Deployment。 直接 $.trigger-check
來源(source) 警示事件的來源。 直接 $.metadata[*].ip
分類(class) 警示事件的物件類型,例如:主機。 直接 $.trigger-type
服務(service) 與業務相關的來源服務,例如:logService。 條件 - 如果
$.metadata[*].agent
為CONTAINER,$.metadata[*].microServiceId
映射到ARMS的service
欄位上。 - 如果
$.metadata[*].agent
為SERVER,$.metadata[*].service
映射到ARMS的service
欄位上。
開始時間(startat) 事件開始時間的時間戳記。 直接 $.trigger-time
結束時間(endat) 事件結束時間的時間戳記。 無 無 事件位址(generatorUrl) 事件詳細資料地址。 無 無
- 可選:在選擇根節點地區選取項目是否使用批處理。
步驟四:設定事件去重
為了減少重複資料,系統使用相關欄位作為去重依據。ARMS警示管理支援預覽事件映射地區中的歷史事件數目據的去重分組結果,您可根據需要調整去重欄位。
- 在事件去重地區選取項目需要去重的欄位。當選擇的欄位的值相同時,對應的多個事件將會合并為一個警示通知。
例如:將ARMS的
source
和check
欄位設定為去重鍵,由於樣本中第三方警示源的$.metadata[*].ip
欄位對應到ARMS的source
欄位,$.trigger-check
欄位對應到ARMS的check
欄位。那麼IP和檢查指標相同的事件將會合并為一個事件,IP不同或檢查指標不同的事件仍會分為多個事件。 - 單擊去重測試,可以預覽去重後的警示分組。說明 去重測試針對的是事件映射左側地區中上傳的最近10條測試資料。
- 配置完成後,單擊儲存。
執行結果
配置完成後,在整合頁面可以查看已建立的自訂整合。
管理整合
在
頁面的警示整合頁簽,對於已經建立的整合,您可以進行以下操作:- 查看整合:如果您需要查看整合的詳細資料,單擊目的地組成所在行,在整合詳情頁面查看整合的詳細資料。
- 更新密鑰:如果您需要修改整合的密鑰,在目的地組成右側操作列選擇重要 更新密鑰後,請在步驟二上報的警示源中修改訪問地址。 ,在彈出的對話方塊中單擊確認。
- 編輯:如果您需要修改整合資訊,在目的地組成右側操作列單擊編輯,在整合詳情頁面修改整合資訊,然後單擊儲存。
- 啟用或禁用:如果您需要啟用或禁用目的地組成,在目的地組成右側操作列單擊禁用或啟用。
- 刪除:如果您需要刪除整合,在目的地組成右側操作列單擊刪除,在彈出的對話方塊中單擊確認。
- 添加事件流:如果您需要為指定整合添加對應的事件處理流,在目的地組成右側操作列單擊添加事件流。具體操作,請參見事件處理流。
- 建立通知策略:如果您需要為指定整合添加對應的通知策略,在目的地組成右側操作列單擊建立通知策略。具體操作,請參見通知策略。
後續步驟
您可以通過設定通知策略將上報的警示事件產生警示並發送警示通知,具體操作,請參見通知策略。經過通知策略指派後產生的警示可以在警示發送歷史頁面查看警示的詳細資料,更多資訊,請參見查看警示發送歷史。