日志与日志组
最近更新时间: 2024-10-17 17:10:00
日志
日志(Log)是应用系统运行过程中产生的记录数据,如用户操作日志、接口访问日志、系统错误日志等。日志通常以文本的形式存储在应用系统所在的机器上,一条系统运行记录对应的日志可能为一行文本(单行日志),也可能为多行文本(多行日志)。
单行日志示例:
59.x.x.x - - [06/Aug/2019:12:12:19 +0800] "GET /nginx-logo.png HTTP/1.1" 200 368 "http://119.x.x.x/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36" "-"
多行日志示例:
java.net.SocketTimeoutException:Receive timed out
at j.n.PlainDatagramSocketImpl.receive0(Native Method)[na:1.8.0_151]
at j.n.AbstractPlainDatagramSocketImpl.receive(AbstractPlainDatagramSocketImpl.java:143)[^]
at j.n.DatagramSocket.receive(DatagramSocket.java:812)[^]
at o.s.n.SntpClient.requestTime(SntpClient.java:213)[classes/]
at o.s.n.SntpClient$1.call(^:145)[^]
at ^.call(^:134)[^]
at o.s.f.SyncRetryExecutor.call(SyncRetryExecutor.java:124)[^]
at o.s.f.RetryPolicy.call(RetryPolicy.java:105)[^]
at o.s.f.SyncRetryExecutor.call(SyncRetryExecutor.java:59)[^]
at o.s.n.SntpClient.requestTimeHA(SntpClient.java:134)[^]
at ^.requestTimeHA(^:122)[^]
at o.s.n.SntpClientTest.test2h(SntpClientTest.java:89)[test-classes/]
at s.r.NativeMethodAccessorImpl.invoke0(Native Method)[na:1.8.0_151]
对于一条日志,其主要组成部分如下:
组成部分 | 含义 | 示例 |
---|---|---|
TIMESTAMP | 日志时间,采用毫秒格式的UNIX时间戳 | 1640005601188 |
FILENAME | 日志来源文件 | /data/log/nginx/access.log |
SOURCE | 日志来源 IP | 10.0.1.2 |
日志正文 | 日志主体内容,以 key:value 的形式存储,key 为字段名称,value 为字段值。 日志提取模式为单行全文或多行全文(即原始日志不经切分,直接将整条日志上报)时,整条日志存储在CONTENT字段下。 日志提取模式为其他模式(例如通过分割符切分日志)时,原始日志里的每一部分对应一个 key:value |
单行全文或多行全文模式: 10.20.20.10;[2018-07-16 13:12:57];GET /online/sample HTTP/1.1;200 其他模式: IP: 10.20.20.10 request: GET /online/sample HTTP/1.1 status: 200 time: [2018-07-16 13:12:57] |
元数据 | 对日志的简单描述或归类,例如 TKE 日志中,某条日志所属的集群或容器,以 key:value 的形式存储,key 以TAG.开头 | TAG.clusterId:1skzv59c |
日志组
日志组(LogGroup)是一个包含多条日志的集合。在上传日志的过程中,为提高数据读写效率,将多条日志打包成一个日志组,并以日志组为单位上传到 CLS。
一个日志组里的日志具有相同的基本信息(TIMESTAMP、FILENAME、SOURCE和元数据等)。