Skip to content

Latest commit

 

History

History
111 lines (99 loc) · 5.97 KB

json-accelerate.md

File metadata and controls

111 lines (99 loc) · 5.97 KB

json加速

简介

processor_json_accelerate processor插件以加速模式实现Json格式日志的字段提取。

备注:该插件目前仅支持与输入插件file_log和输出插件flusher_sls配套使用,且不得与其它加速插件混用。

配置参数

参数 类型 是否必选 说明
Type String 插件类型,指定为processor_json_accelerate
FilterKey Array 用于过滤日志的字段。仅当该字段的值与FilterRegex参数中对应设置的正则表达式匹配时,对应的日志才会被采集。
FilterRegex Array 否,当FilterKey参数不为空时必选 日志字段过滤的正则表达式。该参数元素个数必须与FilterKey参数的元素个数相同。
TimeKey String 用于解析日志时间格式的字段名称。未配置该字段时,默认使用系统时间作为日志时间。
TimeFormat String 日志时间格式,具体信息参见表1。
AdjustTimezone Boolean 是否调整日志时区。仅在配置了TimeFormat参数后有效。如果未添加该参数,则默认使用false,表示使用机器时区。
LogTimezone String 时区偏移量,格式为GMT+HH:MM(东区)、GMT-HH:MM(西区)。仅当AdjustTimezone参数值为false时有效。
EnablePreciseTimestamp Boolean 是否提取高精度时间。如果未添加该参数,则默认使用false,表示不提取高精度时间。
PreciseTimestampKey String 保存高精度时间戳的字段。如果未添加该参数,则默认使用precise_timestamp字段。
PreciseTimestampUnit String 高精度时间戳的单位,取值包括ms(毫秒)、us(微秒)、ns(纳秒)。如果未添加该参数,则默认为ms。
EnableRawLog Boolean 是否上传原始日志。如果未添加该参数,则默认使用false,表示不上传原始日志。
DiscardUnmatch Boolean 是否丢弃匹配失败的日志。如果未添加该参数,则默认使用true,表示丢弃匹配失败的日志。
MergeType String 日志聚合方式。可选值包括“topic”和“logstore”。如果未添加该参数,则默认使用topic,表示根据topic聚合。
SensitiveKeys Map<String, Object> 脱敏功能,具体信息参见表2。
  • 表1:时间格式
时间格式 说明 示例
%a 星期的缩写。 Fri
%A 星期的全称。 Friday
%b 月份的缩写。 Jan
%B 月份的全称。 January
%d 每月第几天,十进制,范围为01~31。 07, 31
%h 月份的缩写,等同于%b。 Jan
%H 小时,24小时制。 22
%I 小时,12小时制。 11
%m 月份,十进制,范围为01~12。 08
%M 分钟,十进制,范围为00~59。 59
%n 换行符。 换行符
%p AM或PM。 AM、PM
%r 12小时制的时间组合,等同于%I:%M:%S %p。 11:59:59 AM
%R 小时和分钟组合,等同于%H:%M。 23:59
%S 秒数,十进制,范围为00~59。 59
%t Tab符号,制表符。
%y 年份,十进制,不带世纪,范围为00~99。 04、98
%Y 年份,十进制。 2004、1998
%C 世纪,十进制,范围为00~99。 16
%e 每月第几天,十进制,范围为1~31。如果是个位数字,前面需要加空格。 7、31
%j 一年中的天数,十进制,范围为001~366。 365
%u 星期几,十进制,范围为1~7,1表示周一。 2
%U 每年的第几周,星期天是一周的开始,范围为00~53。 23
%V 每年的第几周,星期一是一周的开始,范围为01~53。如果一月份刚开始的一周>=4天,则认为是第1周,否则认为下一个星期是第1周。 24
%w 星期几,十进制,范围为0~6,0代表周日。 5
%W 每年的第几周,星期一是一周的开始,范围为00~53。 23
%c 标准的日期和时间。 Tue Nov 20 14:12:58 2020
%x 标准的日期,不带时间。 Tue Nov 20 2020
%X 标准的时间,不带日期。 11:59:59
%s Unix时间戳。 1476187251
  • 表2:脱敏信息
参数名称 数据类型 是否必填 示例值 描述
key String content 日志字段名称。
type String const 脱敏方式。可选值如下:
- const:将敏感内容替换成const字段取值内容。
- md5:将敏感内容替换为其对应的MD5值。
regex_begin String 'password':' 敏感内容前缀的正则表达式,用于查找敏感内容。使用RE2语法。
regex_content String [^']* 敏感内容的正则表达式,使用RE2语法。
all Boolean true 是否替换该字段中所有的敏感内容。可选值如下:
- true(推荐):替换。
- false:只替换字段中匹配正则表达式的第一部分内容。
const String "********" 当type设置为const时,必须配置。

样例

采集/home/test-log/路径下的json.log文件。

  • 输入
{"url": "POST /PutData?Category=YunOsAccountOpLog HTTP/1.1", "ip": "10.200.98.220", "user-agent": "aliyun-sdk-java", "request": {"status": "200", "latency": "18204"}, "time": "07/Jul/2022:10:30:28"}
  • 采集配置
enable: true
inputs:
  - Type: file_log
    LogPath: /home/test-log/
    FilePattern: json.log
processors:
  - Type: processor_json_accelerate
flushers:
  - Type: flusher_sls
    Endpoint: cn-xxx.log.aliyuncs.com
    ProjectName: test_project
    LogstoreName: test_logstore
  • 输出
{
    "__tag__:__path__": "/home/test-log/json.log",
    "url": "POST /PutData?Category=YunOsAccountOpLog HTTP/1.1", 
    "ip": "10.200.98.220", 
    "user-agent": "aliyun-sdk-java", 
    "request": {
        "status": "200", 
        "latency": "18204"
    }, 
    "time": "07/Jul/2022:10:30:28", 
    "__time__": "1657161028"
}