日志(Log)是系统运行过程中变化的一种抽象数据,其内容为指定对象的操作和其操作结果按时间的有序集合。

格式

文本日志(LogFile)、事件(Event)、数据库日志(BinLog)、时序数据(Metric)等数据都是日志的不同载体。日志服务采用半结构化的数据模式定义一条日志,包含日志主题、日志时间、日志内容、日志来源和日志标签五个数据域。日志服务对各个数据域的格式要求不同,详细说明如下表所示。

数据域说明格式
日志主题日志服务保留字段(__topic__)用于标识日志主题。例如您可以根据日志类型为网站相关日志设置不同的日志主题(access_log、operation_log)。更多信息,请参见日志主题(Topic)包括空字符串在内的任意字符串,大小为0~128字节。

该字段值为空字符串时,表示未设置日志主题。

日志时间日志服务保留字段(__time__)用于标识日志时间。更多信息,请参见保留字段Unix时间戳。
日志内容日志的具体内容,由一个或多个内容项组成,内容项为Key:Value格式。

您通过Logtail极简模式(单行或多行)采集日志时,Logtail不会对日志内容进行解析。整条原始日志将被上传到content字段中。

Key:Value的详细说明如下:
  • Key为字段名称,需为UTF-8编码字符串(字母、下划线和数字但不以数字开头)。字符串大小为1~128字节。不可使用如下字段。
    • __time__
    • __source__
    • __topic__
    • __partition_time__
    • _extract_others_
    • __extract_others__
  • Value为字段值,可以为任意字符串,大小不超过1 MB。
日志来源日志服务保留字段(__source__)用于标识日志来源,例如产生日志的服务器IP地址。任意字符串,大小为0~128字节。
日志标签日志标签。包括:
  • 自定义标签:通过PutLogs接口,在写入日志时添加标签。
  • 系统标签:日志服务为日志添加的标签,包括__client_ip____receive_time__
字典格式,Key和Value均为字符串类型。在日志中以__tag__:为前缀进行展示。

示例

以下以一条网站访问日志为例,说明原始日志与日志服务中数据模型的映射关系。

  • 原始日志
    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
  • 通过极简模式采集到日志服务后的日志

    整条原始日志将被上传到content字段中。

    日志样例
  • 通过完整正则模式采集到日志服务后的日志

    Logtail将日志内容结构化,即根据您所设置的正则表达式将日志内容提取为多个键值对。

    日志样例