160
英雄聯盟
數據模型__公共資源說明_API-Reference_日誌服務-阿裏雲
為方便理解整個Log Service服務並順利使用,這裏首先介紹其中的幾個基本概念。
地域(Region)
地域為阿裏雲的服務節點。用戶通過在不同的阿裏雲Region部署服務,讓自己的服務距離客戶更近,獲得更低的訪問延時及更好的用戶體驗。目前阿裏雲在全國各地擁有多個Region。
項目(Project)
項目為Log Service中的基本管理單元,用於資源隔離和控製。用戶可以通過項目來管理某一個應用的所有日誌及相關的日誌源。
日誌庫(Logstore)
日誌庫為Log Service中日誌數據的收集、存儲和消費單元。每個日誌庫隸屬於一個項目,每個項目可以創建多個日誌庫。用戶可以根據實際需求為某一個項目生成多個日誌庫,其中常見的做法是為一個應用中的每類日誌創建一個獨立的日誌庫。例如,假如用戶有一個“big-game”遊戲應用,服務器上有三種日誌:操作日誌(operation_log),應用程序日誌(application_log)以及訪問日誌(access_log),用戶可以首先創建名為“big-game”的項目,然後在該項目下麵為這三種日誌創建三個日誌庫,分別用於它們的收集、存儲和消費。
日誌(Log)
日誌為Log Service中處理的最小數據單元。Log Service采用半結構數據模式定義一條日誌,具體數據模型如下:
- 主題(Topic):用戶自定義字段,用以標記一批日誌(例如:訪問日誌根據不同的站點進行標記)。默認該字段為空字符串(空字符串也為一個有效的主題)。
- 時間(Time):日誌中保留字段,用以表示日誌產生的時間(精度為秒,從1970-1-1 00:00:00 UTC計算起的秒數),一般由日誌中的時間直接生-。
- 內容(Content):用以記錄日誌的具體內容。內容部分由一個或多個內容項組成,每一個內容項由Key、Value對組成。
- 來源(Source):日誌的來源地,例如產生該日誌機器的IP地址。默認該字段為空。
與此同時,Log Service對日誌各字段的取值有不同要求,具體如下表描述:
數據域 | 要求 |
---|---|
time | 整型,Unix標準時間格式,最小單位為秒 |
topic | 任意不超過128字節的UTF-8編碼字符串 |
source | 任意不超過128字節的UTF-8編碼字符串 |
content | 一個或多個Key-Value對。其中Key為僅包含字母、下劃線、數字,不以數字開頭,不超過128字節的UTF-8編碼字符串。Value為不超過1024*1024字節的任意UTF-8編碼字符串 |
上表content中的key不可以使用如下關鍵字:
__time__
,__source__
,__topic__
,__partition_time__
,_extract_others_
,__extract_others__
日誌主題(Topic)
一個日誌庫內的日誌可以通過日誌主題(Topic)來劃分。用戶可以在寫入時指定日誌主題。例如,一個平台用戶可以使用用戶編號作為日誌主題寫入日誌。如果不需要劃分一個日誌庫內日誌,讓所有日誌使用相同的日誌主題即可。
注意:空字符串是一個有效的日誌主題(Topic),默認的日誌主題都是空字符串。
下圖描述了日誌庫、日誌主題和日誌之間的關係:
實際使用場景中,日誌的格式多樣。為了幫助理解,以下以一條nginx原始訪問日誌如何映射到Log Service日誌數據模型為例說明。假設用戶nginx服務器的IP地址為10.249.201.117
,下麵為其上的一條原始日誌:
10.1.168.193 - - [01/Mar/2012:16:12:07 +0800] "GET /Send?AccessKeyId=8225105404 HTTP/1.1" 200 5 "-" "Mozilla/5.0 (X11; Linux i686 on x86_64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2"
把該條原始日誌映射到Log Service日誌數據模型,如下:
數據域 | 內容 | 說明 |
---|---|---|
topic | "" | 沿用默認值(空字符串) |
time | 1330589527 | 日誌產生的精確時間(精確到秒),從原始日誌中的時間戳轉換而來。 |
source | "10.249.201.117" | 使用服務器IP地址作為日誌源 |
content | Key-Value對 | 日誌具體內容 |
用戶可以自己決定如何提取日誌原始內容並組合成Key-Value對,例如下表:
key | value |
---|---|
ip | "10.1.168.193" |
method | "GET" |
status | "200" |
length | "5" |
ref_url | "-" |
browser | "Mozilla/5.0 (X11; Linux i686 on x86_64; rv:10.0.2) Gecko/20100101 Firef |
Logs
由多條日誌產生的集合。
LogGroup
一組日誌的集合。
LogGroupList
一組LogGroup集合,用於結果返回。
編碼方式
係統目前支持以下內容編碼方式(將來可擴展),Restful API層通過Content-Type表示。
含義 | Content-Type | |
---|---|---|
ProtoBuf | ProtoBuf對數據模型進行編碼 | application/x-protobuf |
以下PB定義了數據模型中的對象:
message Log
{
required uint32 Time = 1;// UNIX Time Format
message Content
{
required string Key = 1;
required string Value = 2;
}
repeated Content Contents= 2;
}
message LogGroup
{
repeated Log Logs= 1;
optional string Reserved = 2; // reserved fields
optional string Topic = 3;
optional string Source = 4;
}
message LogGroupList
{
repeated LogGroup logGroupList = 1;
}
注意:
- 由於PB對KeyValue對不要求唯一性,因此需要避免出現該情況,否則行為為未定義。
最後更新:2016-11-23 16:04:03
上一篇:
鑒權規則__RAM子用戶訪問_API-Reference_日誌服務-阿裏雲
下一篇:
數據編碼方式__公共資源說明_API-Reference_日誌服務-阿裏雲
查看導入列表__數據遷移_API 參考_雲數據庫 RDS 版-阿裏雲
軟件市場條件__服務商入駐_服務商_雲市場-阿裏雲
為什麼返券無法使用?___儲值卡_代金券及推薦碼_財務-阿裏雲
上傳文檔後忘記保存ArchiveID如何處理__數據操作常見問題_產品使用問題_歸檔存儲-阿裏雲
CDN的源站服務器中網站日誌獲取客戶端真實IP__運維技術分享_技術運維問題_CDN-阿裏雲
導入本地鏡像__鏡像_用戶指南_雲服務器 ECS-阿裏雲
SSH 登錄時出現如下錯誤:Disconnected:No supported authentication methods available__遠程登錄 (SSH)_Linux操作運維問題_雲服務器 ECS-阿裏雲
發送定時消息__Java SDK_TCP 接入(專業)_消息隊列 MQ-阿裏雲
請求狀態__常用指標_使用手冊_性能測試-阿裏雲
查詢域名下錄製配置列表__直播流操作接口_API 手冊_CDN-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲