閱讀887 返回首頁    go 阿裏雲


處理-實現ActionTrail__最佳實踐_日誌服務-阿裏雲

Action Trail是一款用於記錄用戶賬號各類API調用操作的產品。 Action Trail記錄了每次API調用的重要信息,如操作者、操作時間、對象、動作類型、來源等詳盡的信息,這些調用記錄,可以精確追蹤、還原用戶行為,對於安全分析,資源變更追查,合規審查有非常重要的作用。

Action Trail需要考慮的問題

Action Trail這樣一款有價值的產品是如何實現的,有哪些問題需要考慮?

  • 首先,由於各類API調用的日誌分散在各處,怎麼去收集散落在各地的日誌呢?

  • 之後,各應用的行為不盡相同,日誌內容、格式也比如有區別,如何提供一個統一的方式來處理差異的日誌?

  • 最後,對於用戶來說,如何能夠方便地獲取Action Trail提供的調用日誌,來進行後續的追蹤、分析呢?

Action Trail架構

在清楚了Action Trail的問題和處理流程之後,我們看看ActionTrail是如何實現的。下麵是Action Trail的框架

Action Trail如何解決這些問題

對於第一個問題, Action Trail自己去解析應用記錄在本地的日誌顯然成本太高,這要求Action Trail完全理解應用日誌格式,並侵入應用機器,耦合度實在是太高,那有沒有一個更好的方式來處理呢?

其實,基於日誌服務,就能很容易解決這個問題。 應用的日誌,應用最熟悉,應用各自通過logtail,將每條日誌解析成key:value這樣半結構化形式,上傳至日誌服務應用各自的Project,再通過RAM授權Action Trail讀取這部分日誌。隻要事先約定Action Trail需要的key, Action Trail就可以直接從日誌服務消費各應用的API調用日誌了。

由於日誌格式是半結構化的,Action Trail可以使用同樣的方式來處理、分析,那第二個問題也解決了。Action Trail實時地從日誌服務中抓取各應用的日誌,提取必要的字段,並將剩餘的字段統一打包在一起。清洗完畢的數據,Action Trail也記錄在本地,通過logtail實時上傳至日誌服務中Action Trail的Project中。

下圖就是經過清洗處理後的一條日誌,該日誌記錄了一個用戶在17:53的時候重啟了一個虛擬機。

最後,如果將Action Trail處理後的日誌交到用戶,讓用戶方便地處理呢?放到用戶的Oss bucket中是一個不錯的選擇。Action Trail定期從日誌服務中批量讀取處理後的日誌,根據用戶賬號和應用類型進行分類,上傳至用戶授權的bucket中,這樣用戶就可以直接從自己的oss bucket中讀取這部分日誌了。

最後更新:2016-11-24 11:23:47

  上一篇:go 處理-數據清洗/ETL__最佳實踐_日誌服務-阿裏雲
  下一篇:go 處理-搭建監控係統__最佳實踐_日誌服務-阿裏雲