基于日志做分析时,常常需要结构化解析日志的内容,将日志切分为不同字段,每个字段表示不同的语义,从而精确到字段进行查询、统计、报警等操作。
在日志采集过程中进行结构化解析是一种常见的方式,比如:Logtail、Fluentd可以通过正则表达式匹配日志、提取字段,Logstash通过grok(底层基于正则)达到同样的目的。
对于自描述的日志类型,比如今天将要介绍的JSON、分隔符格式,Logtail提供原生解析支持啦,免去复杂正则表达式配置的痛苦。
JSON日志接入
JSON建构于两种结构:
- Object:“键/值”对的集合(A collection of name/value pairs)。
- Array:值的有序列表(An ordered list of values)。
Logtail支持的JSON日志是Object类型,可以自动提取Object首层的键作为字段名称,Object首层的值作为字段值(字段值可以是Object或Array或基本类型,如String、Number等)。
日志样例
{"url": "POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=U0UjpekFQOVJW45A&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=pD12XYLmGxKQ%2Bmkd6x7hAgQ7b1c%3D HTTP/1.1", "ip": "10.200.98.220", "user-agent": "aliyun-sdk-java", "request": {"status": "200", "latency": "18204"}, "time": "05/May/2016:13:30:28"}
配置
配置项 | 配置内容 |
---|---|
日期字段 | time |
日期格式 | %d/%b/%Y:%H:%M:%S |
字段提取结果
Key | Value |
---|---|
time | 05/May/2016:13:30:28 |
url | POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=U0UjpekFQOVJW45A&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=pD12XYLmGxKQ%2Bmkd6x7hAgQ7b1c%3D HTTP/1.1 |
ip | 10.200.98.220 |
user-agent | aliyun-sdk-java |
request | {"status": "200", "latency": "18204"} |
了解如何使用?请点击常见日志接入 - JSON。
分隔符日志接入
分隔符日志以换行符作为边界,每一个自然行都是一条日志。
每一条日志以固定分隔符(如制表符、空格、竖线等单字符)连接日志的多个字段。如果字段内部包含分隔符,使用Quote(双引号)对字段进行包裹。
日志样例
05/May/2016:13:30:28,10.200.98.220,"POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=U0UjpekFQOVJW45A&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=pD12XYLmGxKQ%2Bmkd6x7hAgQ7b1c%3D HTTP/1.1",200,18204,aliyun-sdk-java
配置方法
配置项 | 配置内容 |
---|---|
分隔符 | , |
字段名列表 | ["time", "ip", "url", "status", "latency", "user-agent"] |
日期字段 | time |
日期格式 | %d/%b/%Y:%H:%M:%S |
字段提取结果
Key | Value |
---|---|
time | 05/May/2016:13:30:28 |
ip | 10.200.98.220 |
url | POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=U0UjpekFQOVJW45A&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=pD12XYLmGxKQ%2Bmkd6x7hAgQ7b1c%3D HTTP/1.1 |
status | 200 |
latency | 18204 |
user-agent | aliyun-sdk-java |
了解如何使用?请点击常见日志接入 - Delimiter。
时间: 2024-10-28 02:07:55