博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
rsyslog使用field切分日志
阅读量:7059 次
发布时间:2019-06-28

本文共 1068 字,大约阅读时间需要 3 分钟。

场景:

有一个解析乱七八糟日志的需求,格式由于各种原因改不了,并且日志的目的地只能传输到rsyslog。需求就是从乱七八糟的日志中提取出需要的信息。

解析前的日志如下:

|! |! |!2|!1|!0|!0|! |! |! |! |!0|!0|! |! |! |! |!0|!0|! |!|! |! |!0|!0|! |! |!1.1.1.1|!1540438466000|!1540436316761|!2.2.2.2|!0|!0|!0|!0.0|!6|! |!0|!0|!0|!0|!0.0|!0.0|! |! |! |! |! |! |!0|!0|!0|!0|!0|!0|!0|!0|! |! |! |! |! |! |! |!yxgl-web03 root: 3.3.3.3#0112018-01-25#01111:34:26#011POST#011/index.html#011"http://4.4.4.4/get"#011"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"#011200#011359|!

要的日志:

3.3.3.3#0112018-01-25#01111:34:26#011POST#011/index.html#011"http://4.4.4.4/get"#011"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"#011200#011359

rsyslog实现

1,rsyslog相关软件版本:

rsyslog-kafka-8.38.0-1.el7.x86_64rsyslog-8.38.0-1.el7.x86_64

2,配置

set $!usr!one = field($msg, " root: ", 2);set $!usr!two = field($!usr!one, "|!", 1);template (name="l7" type="string" string="%$!usr!two%")local5.info /tmp/1.log;l7

通过field把msg以" root: "为分隔符切分,然后取第二个字段并赋值给\$!usr!one;然后,再把\$!usr!one以"|!"为分隔符切分,取第一个字段即为我们要的数据。

参考文档

转载于:https://blog.51cto.com/leejia/2309504

你可能感兴趣的文章
使用阿里云ECS自建RDS MySQL从库
查看>>
Linux下sed命令
查看>>
胃病犯了怎么办
查看>>
三星2610打印机故障INTERNAL ERROR - Incomplete Session by time out
查看>>
马哥2016全新Linux+Python高端运维班第五周作业
查看>>
VLAN Tagging VST, EST & VGT on VMWare vSphere
查看>>
JavaScript 中 apply 、call 的详解
查看>>
thinkphp 跨模块调用配置文件信息
查看>>
nohup命令在后台自动执行程序
查看>>
java-第六章-for-循环录入会员信息
查看>>
HQL中 "* only allowed inside aggregate function in SELECT 错误"
查看>>
Linux下 android 开发环境配置
查看>>
MAVEN项目后 jar包无法发布到eclipse的web服务器
查看>>
选择结构与循环结构
查看>>
Linux系统生成随机密码的10种方法
查看>>
puppet初体验
查看>>
lnmp 编译安装
查看>>
Python tools for Penetration Tester
查看>>
freebsd 从普通用户切换到root下
查看>>
oracle安装前环境检查
查看>>