Action Trail(ActionTrail)協助您監控阿里雲帳號的活動並記錄最近90天的操作事件。當您需要分析更長時間的操作事件時,可以通過Action Trail建立跟蹤,將操作事件投遞到Log ServiceSLS,對操作事件進行查詢和分析。本文為您介紹在SLS中查詢和分析操作事件的典型情境。
前提條件
情境一:分析AK泄露情況
某企業發現IP地址存在異常調用,懷疑是由於人事調動導致AK(AccessKey)泄露。此時可以通過Action Trail建立跟蹤,將操作事件投遞到Log ServiceSLS,在SLS中分析AK調用軌跡。
您可以擷取AK調用來源IP地址所在的城市,一旦發現當前城市非企業所在地,即可明確AK存在泄露。
在全部的Project頁簽,單擊操作事件對應的Project名稱。
單擊日誌庫名稱,然後單擊最近15分鐘,設定查詢的時間範圍。
在搜尋方塊中輸入如下代碼。
__topic__: actiontrail_audit_event and event.userIdentity.accessKeyId:<YourAccessKeyId> | SELECT count(1) as pv, city FROM (SELECT "event.sourceIpAddress" AS ip, ip_to_city("event.sourceIpAddress") as city FROM log) WHERE ip_to_domain(ip)!='intranet' GROUP BY city ORDER BY pv DESC
說明<YourAccessKeyId>
請替換為您自己的AccessKey ID。以上查詢能夠擷取指定AK所產生調用的來源IP地址,並且給出具體的調用量。如果當前城市非企業所在地,則AK存在泄露。
單擊查詢/分析,查看分析結果。
可選:當AK泄露時,您可以調整RAM使用者權限,解決AK泄露問題。
具體操作,請參見為RAM使用者移除許可權。
情境二:分析ECS執行個體刪除情況
某企業期望可以追溯雲資源的高危操作,例如:刪除ECS執行個體。此時可以通過Action Trail建立跟蹤,將操作事件投遞到Log ServiceSLS,擷取執行ECS執行個體刪除動作的操作者。
在全部的Project頁簽,單擊操作事件對應的Project名稱。
單擊日誌庫名稱,然後單擊最近15分鐘,設定查詢的時間範圍。
在搜尋方塊中輸入如下代碼。
__topic__: actiontrail_audit_event | SELECT serviceName, eventName, userName, count(1) as pv FROM (SELECT "event.eventName" as eventName, "event.serviceName" as serviceName, "event.userIdentity.userName" as userName FROM log) WHERE (serviceName = <TargetServiceName> and eventName = <TargetEventName>) GROUP BY serviceName, eventName, userName
說明您可以將
<TargetServiceName>
和<TargetEventName>
分別指定為ECS和DeleteInstances,擷取執行ECS執行個體刪除動作的操作者。單擊查詢/分析,查看分析結果。
分析結果會統計執行ECS執行個體刪除動作的操作者以及執行次數。定位到ECS執行個體的非法操作後,您可以根據如下代碼擷取非法的操作記錄,以便進行問題修複。
__topic__: actiontrail_audit_event and event.serviceName:<TargetServiceName> and <TargetResourceId> and event.userIdentity.accessKeyId:<YourAccessKeyId>
情境三:產生資料報表
隨著企業自身雲上業務的快速發展,對於部分核心資源的調用頻率周期需要產生完整的資料報表,以便進行資源容量的預估及風險預判。
例如:企業內部需要產生ECS執行個體建立近半年來的資料報表,通過分析同比以及環比增長情況來預測未來半年內資源擴充情況,以便合理的控制和規劃成本開銷。
在全部的Project頁簽,單擊操作事件對應的Project名稱。
單擊日誌庫名稱,然後單擊最近15分鐘,設定查詢的時間範圍。
在搜尋方塊中輸入如下代碼。
__topic__: actiontrail_audit_event and event.serviceName:<TargetServiceName> and event.eventName:<TargetEventName> | select t, diff[1] as current, diff[2] as last_month, diff[3] as percentage from(select t, compare( pv , 2592000) as diff from (select count(1) as pv, date_format(from_unixtime(__time__), '%m') as t from log group by t) group by t order by t)
說明您可以將
<TargetServiceName>
和<TargetEventName>
兩個變數分別指定為ECS和CreateInstance,即可擷取ECS執行個體每個月的建立次數,並且展示同比上個月的增長幅度。單擊查詢/分析,查看分析結果。
單擊頁面下方的統計圖表頁簽。
在頁簽右側的通用配置地區,選擇 ,查看折線圖。
您也可以通過類似方法對部分風險等級較高的操作產生資料報表,並且從中分析調用規律以及流程高低峰所在時間點,以便更加合理地規劃資源,提升資源使用率。
情境四:異常監控警示
某企業期望某個雲端服務某日的訪問量超過最近60天平均訪問量的一定比例時上報警示,此時您可以通過Log Service儀錶盤中的查詢圖表配置監控警示,實現即時服務狀態的監控。您也可以將自訂的統計圖表添加到儀錶盤中,以便實現定製化業務的即時監控。具體操作,請參見添加統計圖表到儀錶盤。
在全部的Project頁簽,單擊操作事件對應的Project名稱。
查詢各個雲端服務在最近60天內的平均流量以及當天的即時資料流量。
單擊日誌庫名稱,然後單擊最近15分鐘。
在時間選擇地區,單擊自訂,設定查詢的時間範圍為60天。
在搜尋方塊中輸入如下代碼。
__topic__: actiontrail_audit_event |select a.serviceName, a.avg_pv, b.today_pv from (select serviceName, avg(pv) as avg_pv from (select "event.serviceName" as serviceName, count(1) as pv, date_format(from_unixtime(__time__), '%m-%d') as day from log group by serviceName, day) group by serviceName) a join (select "event.serviceName" as serviceName, count(1) as today_pv from log where date_format(from_unixtime(__time__), '%Y-%m-%d')=current_date group by serviceName) b on a.serviceName = b.serviceName
單擊查詢/分析,查看分析結果。
單擊頁面下方的統計圖表頁簽。
在頁簽右側的通用配置地區,選擇 ,查看折線圖。
說明您可以添加過濾條件排除不關注的雲端服務或者事件。
設定業務警示。
單擊頁面右上方的表徵圖。
在警示監控規則面板配置相關參數。
具體操作,請參見設定警示。
配置觸發條件。
$0.today_pv > $0.avg_pv && ($0.today_pv - $0.avg_pv)/$0.avg_pv > 0.5
其中
$0
表示第一條查詢語句關聯的原始圖表資料,即每個雲端服務的當日訪問量以及最近60天的平均訪問量。$0.avg_pv
表示雲端服務最近60天的平均訪問量。單擊確定。