字段提取中正则表达式的使用:
提取日志中的信息格式:(?<字段名称>匹配具体信息的正则表达式)
日志样例:
<78> 2019-08-21T17:10:01.461970+08:00 localhost CROND: (root) CMD (/usr/lib64/sa/sa1 1 1)
正则表达式
\<(?<prl>\d+)\>\s+(?<timestamp>\S+)\s+(?<hostname>\S+)\s+(?<type>\S+)\s+(?<message>.*)
提取出78 时间信息 localhost CROND. 后面的信息合并
默认是以空格为分割符
提取78: \<(?<ptl>\d+)\>. \d:数字。 +:代表前面部分重复一个或者多次
匹配空格 \s+ 匹配多个空格,\s 任何空白字符,空格,制表,换页符等
提取时间:(?<\S+>) \S 与\s相反
提取主机名:(?<hostname>\w+) \w 包括下划线和任务单词数字 \W 与\w相反
提取type:(?<type>\S+)
最后信息一起合并:(?<message>.) . : 合并到行尾
拆分结果:
hostname:"localhost"
message:"(root) CMD (/usr/lib64/sa/sa1 1 1)"
prl:"78"
timestamp:"2019-08-21T17:10:01.461970+08:00"
type:"CROND:"
raw_message:"<78> 2019-08-21T17:10:01.461970+08:00 localhost CROND: (root) CMD (/usr/lib64/sa/sa1 1 1)"