系統事件代表了云產品資源狀態的變更,比如ECS實例發生了異常重啟、ECS實例被釋放、快照創建完成、將要執行運維等等。系統運維管理支持創建事件運維任務,在系統事件發生時,執行指定的模板,進行事件運維。事件運維任務會一直執行并監聽新事件,直到您取消它。
創建事件運維任務包括如下步驟:
設置事件匹配規則
字段 | 是否必填 | 說明 |
產品類型 | 是 | 從下拉框選擇,只能單選。 |
事件名稱 | 是 | 系統事件的名稱,可多選,取值參見云產品事件。 |
地域 | 否 | 事件關聯資源所在的阿里云地域,可多選。取值請參見地域和可用區。 |
事件等級 | 否 | 事件等級,可選值嚴重、警告、信息。 |
事件詳情匹配規則 | 否 | Json格式,用來匹配系統事件的詳情。 |
事件詳情匹配規則
系統事件的事件詳情是一個Json,不同的系統事件的詳情包含的字段不同。您可以根據詳情中的字段對系統事件進行精細的篩選。以ECS的生命周期狀態變化為例,其事件詳情(事件消息體中content的值)格式如下:
{
"resourceId": "i-bp1ecr********5go2go",
"resourceType": "ALIYUN::ECS::Instance",
"state": "Running"
}
此事件詳情中的resourceId是發生狀態變更的ECS實例Id,state有Pending/Starting/Running/Stopping/Stopped/Delete多個可選值。
事件詳情匹配規則也是一個Json,其中的key與事件詳情中的key相同,value是您需要匹配出的值或者值的列表。如果要匹配實例停機的事件,可以如下配置:
{
"state": "Stopped"
}
如果要匹配實例i-abcde停機或者釋放的事件,可以如下配置:
{
"resourceId": "i-abcde",
"state": ["Stopped", "Deleted"]
}
在配置事件詳情匹配規則時,您可以參考頁面顯示的事件消息體格式示例(事件消息體中content部分為事件詳情)。
選擇模板
選擇在系統事件發生時需要執行的模板。
設置模板的執行參數
模板參數中可以填入固定值,也可以從事件消息體選擇參數。當選擇固定參數時,總是使用固定參數執行模板。選擇從事件消息體選擇參數時,可以配置jq表達式,從事件消息體中提取字段。
從事件消息體中提取字段,使用$開頭,加上jq表達式。比如我們要從ECS的生命周期狀態變化事件消息體中提取事件詳情(content)中的resourceId,應該使用$.content.resourceId
。如果要提取地域ID,使用$.regionId
。
事件消息體中有以下固定字段可以提取:
提取表達式 | 說明 | 示例值 |
$.id | 事件ID。 | 9435EAD6-3CF6-4494-8F7A-3A**77 |
$.eventTime | 事件發生時間,采用UTC+8時區。 | 20181226T220114.058+0800 |
$.level | 事件級別。取值范圍:INFO、WARN、CRITICAL | INFO |
$.name | 事件名稱代碼。 | Instance:StateChange |
$.regionId | 阿里云地域ID。取值請參見地域和可用區。 | cn-hangzhou |
$.product | 產品名稱代碼 | ECS |
$.resourceId | 資源的ARN值(Aliyun Resource Name,阿里云全局資源描述符)。 | acs:ecs:cn-hangzhou:169070**30:instance/i-bp1ecr**5go2go |
$.userId | 云賬號ID。 | 169070**30 |
$.content.fieldName | 從事件詳情中提取fieldName字段的值。 | 無 |
從事件消息體選擇參數:
使用固定參數,和普通模板參數設置方法一致。