使用ARMS警示管理整合多個警示源後,您可以通過設定事件處理流將警示源產生的事件進行過濾和分類。本文介紹如何建立事件處理流。
建立事件處理流
登入ARMS控制台。
-
在左側導覽列中選擇。
-
在事件处理流頁面單擊右上方的新建处理流。
-
在新建处理流頁面的基本信息地區輸入處理流名稱。
-
在流动作配置地區設定事件處理流程。
-
將可用流程动作地區的動作拖至事件处理流地區。
-
在最右側地區設定事件處理流中各動作的執行條件。
說明動作配置完成後可以在测试数据地區對警示欄位進行測試,驗證動作是否配置成功。
動作
說明
樣本
觸發條件
滿足觸發條件的事件才會執行當前處理流。
场景
名稱為容器CPU使用率警示的整合執行當前處理流。
動作配置
設定條件為
_aliyun_arms_integration_name等於容器CPU使用率警示。過濾事件
滿足過濾條件的事件將會跳過當前事件流,執行下一個事件流,未過濾的事件將會繼續執行當前處理流。
說明如果您的警示規則還未產生事件,此時只能選擇到ARMS預置的
_aliyun_arms_integration_id和_aliyun_arms_integration_name欄位進行配置。如果您需要使用severity、alertname等事件欄位,可以通過以下兩種方式配置:-
手動輸入欄位。
-
添加警示規則,使其產生警示事件。產生事件後,即可以在此選擇事件欄位值。
执行结果
执行结果
执行结果
执行结果
执行结果
场景
P4等級的警示事件不執行當前處理流。
動作配置
設定條件為
severity等於P4。識別事件類型
根據選擇的事件欄位值,通過演算法識別出事件對象分類(Class)和事件類型(Type),用於事件和警示查詢統計。
支援識別的事件對象分類(Class)如下:
-
網路(Network)
-
儲存(Storage)
-
計算(Compute)
-
作業系統(OS)
-
應用(Application)
-
資料庫(Database)
-
變更(Change)
支援識別的事件類型(Type)如下:
-
可用性(Availability)
-
時延
-
容量(Capacity)
-
錯誤
-
未知(Unknown)
场景
通過
alertname和message欄位值識別事件的對象分類(Class)和事件類型(Type)。動作配置
設定識別類別欄位為
alertname和message。执行结果
系統會將智能識別結果寫入
class和type標籤。例如,
alertname為tcp package error percentage的事件經處理後,擴充欄位中 class 被寫入網路,type 被寫入錯誤。設定事件等級
將執行當前處理流的事件等級設定為特定值。
场景
將核心服務網路類型的警示事件的等級設定為P1。
動作配置
-
設定觸發條件動作為
class等於network。 -
將設定事件等級動作設定為P1。
执行结果
測試結果顯示,處理後欄位中 severity 被賦值為
critical,表明事件等級規則已生效。設定業務標籤
為執行當前處理流的事件設定業務標籤(Label),用於事件和警示統計查詢。
-
欄位:將事件中的欄位值作為
label欄位值。 -
值:為
label欄位設定固定值。
场景
將警示等級作為警示標籤,以便之後統計各等級的事件。
動作配置
設定業務標籤為
欄位:severity。执行结果
警示事件中將會新增
label欄位,label欄位值為severity欄位值。刪除欄位
刪除事件中的某些欄位。
场景
警示事件中存在
location和region欄位,location欄位中已包含Region資訊,需要刪除region欄位。動作配置
設定刪除欄位為
region。提取內容
通過Regex,提取事件中某欄位的內容,填充到新的欄位中。
场景
警示欄位:
"location":"cn-hangzhou-hz4"提取
location欄位的地區和具體位置資訊填充到region和datacenter欄位中。動作配置
-
待提取欄位:
location -
提取Regex:
([a-zA-z]+-[a-zA-z]+)-(.*) -
填充的字元:
region、datacenter
region 欄位提取結果為
cn-hangzhou,datacenter 欄位提取結果為hz4。匹配更新
當系統檢測到事件的指定欄位中存在某段內容時,就將設定的欄位值填充到目標欄位中。
场景
警示欄位:
"message":"ping to i-bp1e42d0ydxf7pstuepz > 100ms"當
message中包含ping時表示當前事件為網路事件,則需要將當前事件標記為網路類型。動作配置
-
匹配欄位:
message -
滿足下麵條件時更新欄位值:包含
ping輸出network說明包含的值可以使用實際欄位值或Regex。
-
填充到欄位:
class
執行匹配更新測試後,當事件的
message欄位包含ping時,class欄位成功填充為network。欄位豐富
通過調用API或者查詢本地Excel資料來源的方式,將得到的結果填充到目標欄位中。
說明目前資料來源功能仍在灰階中,請聯絡警示DingTalk答疑號(
d9j_rg9e4062f)協助添加。场景
根據警示事件中的IP欄位,通過查詢上傳的Excel資料來源,將得到的主機名稱填充到事件的
hostname欄位中。動作配置
-
選擇資料來源:擷取Host資料來源-excel
-
匹配更新模式:
ip(匹配Excel中列名)等於ip(對應Excel中列值) -
填充到欄位:
$.hostName(Excel查詢返回結果得到的列名) 填充到hostname
替換內容
尋找並替換指定欄位中的欄位內容,可以Regex尋找對指定欄位內容。
场景
將警示事件中的
d.b.字串替換為database字串。動作配置
-
需要替換的內容片段:
message -
將內容片段:
d\.b\.說明可以使用實際欄位值或Regex。
-
替換為:
database
單擊點擊測試,處理前欄位message值為
d.b.調用逾時,處理後message值變為database調用逾時,表明替換規則生效。分割內容
通過分割字元對欄位進行拆分,拆分結果填充到多個目標欄位中。
场景
警示欄位:
"message":"myhostid_myuserid_myruleid"將
message欄位中的欄位值拆分為hostid、userid、ruleid並分別填充到新的欄位中。動作配置
-
需要拆分的欄位:
message -
分割字元:
_ -
拆分結果填充欄位:
hostId、userId、ruleId說明拆分後的欄位將會按照順序填充。
填充模板
填入一段模板內容(如:類型
${class}的事件來源是${source}),變數名為事件整合後的欄位名,模板渲染後填充到目標欄位中。场景
警示欄位:
"source":"server", "class":"network"將
message欄位設定為類型${class}的事件來源是${source},其中需要引用class和source欄位值。動作配置
-
填充的模板:
類型${class}的事件來源是${source} -
填充到欄位:
message
message 欄位值被渲染為
類型network的事件來源是server,模板變數已被替換為對應欄位的實際值。丟棄
丟棄執行當前處理流的事件,丟棄動作只能作為當前事件處理流最後一個節點,且無需設定。
無
-
-
-
在测试数据地區左側輸入測試欄位和欄位值,或者單擊从事件中选择,從已有的警示事件中選擇測試事件,然後單擊点击测试。
-
設定完成後,單擊保存。
處理流建立完成後,整合的警示源將會按處理流順序完成事件的過濾,過濾後的事件可以在警示事件歷史頁面查看。更多資訊,請參見查看警示事件歷史。
管理事件處理流
事件流建立完成後,您可以在事件處理流頁面執行以下操作:
-
調整處理流順序:在目標處理流右側操作列單擊上移或下移。
-
啟動或禁用處理流:在目標處理流右側操作列單擊启用或停止。
-
更新處理流:在目標處理流右側操作列單擊编辑。
-
刪除處理流:在目標處理流右側操作列單擊删除,在彈出的對話方塊中單擊确认。
查看處理後的警示事件
在控制台左側導覽列選擇。
在告警事件历史頁面可以查看所有警示事件,單擊事件名稱可以查看警示事件的詳細資料。更多資訊,請參見查看警示事件歷史。