日志(Log)是系統(tǒng)運(yùn)行過(guò)程中變化的一種抽象數(shù)據(jù),其內(nèi)容為指定對(duì)象的操作和其操作結(jié)果按時(shí)間的有序集合。

格式

文本日志(LogFile)、事件(Event)、數(shù)據(jù)庫(kù)日志(BinLog)、時(shí)序數(shù)據(jù)(Metric)等數(shù)據(jù)都是日志的不同載體。日志服務(wù)采用半結(jié)構(gòu)化的數(shù)據(jù)模式定義一條日志,包含日志主題、日志時(shí)間、日志內(nèi)容、日志來(lái)源和日志標(biāo)簽五個(gè)數(shù)據(jù)域。日志服務(wù)對(duì)各個(gè)數(shù)據(jù)域的格式要求不同,詳細(xì)說(shuō)明如下表所示。

數(shù)據(jù)域說(shuō)明格式
日志主題日志服務(wù)保留字段(__topic__)用于標(biāo)識(shí)日志主題。例如您可以根據(jù)日志類型為網(wǎng)站相關(guān)日志設(shè)置不同的日志主題(access_log、operation_log)。更多信息,請(qǐng)參見(jiàn)日志主題(Topic)包括空字符串在內(nèi)的任意字符串,大小為0~128字節(jié)。

該字段值為空字符串時(shí),表示未設(shè)置日志主題。

日志時(shí)間日志服務(wù)保留字段(__time__)用于標(biāo)識(shí)日志時(shí)間。更多信息,請(qǐng)參見(jiàn)保留字段Unix時(shí)間戳。
日志內(nèi)容日志的具體內(nèi)容,由一個(gè)或多個(gè)內(nèi)容項(xiàng)組成,內(nèi)容項(xiàng)為Key:Value格式。

您通過(guò)Logtail極簡(jiǎn)模式(單行或多行)采集日志時(shí),Logtail不會(huì)對(duì)日志內(nèi)容進(jìn)行解析。整條原始日志將被上傳到content字段中。

Key:Value的詳細(xì)說(shuō)明如下:
  • Key為字段名稱,需為UTF-8編碼字符串(字母、下劃線和數(shù)字但不以數(shù)字開(kāi)頭)。字符串大小為1~128字節(jié)。不可使用如下字段。
    • __time__
    • __source__
    • __topic__
    • __partition_time__
    • _extract_others_
    • __extract_others__
  • Value為字段值,可以為任意字符串,大小不超過(guò)1 MB。
日志來(lái)源日志服務(wù)保留字段(__source__)用于標(biāo)識(shí)日志來(lái)源,例如產(chǎn)生日志的服務(wù)器IP地址。任意字符串,大小為0~128字節(jié)。
日志標(biāo)簽日志標(biāo)簽。包括:
  • 自定義標(biāo)簽:通過(guò)PutLogs接口,在寫入日志時(shí)添加標(biāo)簽。
  • 系統(tǒng)標(biāo)簽:日志服務(wù)為日志添加的標(biāo)簽,包括__client_ip____receive_time__
字典格式,Key和Value均為字符串類型。在日志中以__tag__:為前綴進(jìn)行展示。

示例

以下以一條網(wǎng)站訪問(wèn)日志為例,說(shuō)明原始日志與日志服務(wù)中數(shù)據(jù)模型的映射關(guān)系。

  • 原始日志
    127.0.0.1 - - [01/Mar/2021:12:36:49  0800] "GET /index.html HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36
  • 通過(guò)極簡(jiǎn)模式采集到日志服務(wù)后的日志

    整條原始日志將被上傳到content字段中。

    日志樣例
  • 通過(guò)完整正則模式采集到日志服務(wù)后的日志

    Logtail將日志內(nèi)容結(jié)構(gòu)化,即根據(jù)您所設(shè)置的正則表達(dá)式將日志內(nèi)容提取為多個(gè)鍵值對(duì)。

    日志樣例