Filebeat新手入门(四)日志解析
这里主要讲解filebeat引入js、javascript脚本,对日志数据进行处理
需要注意的是 javaScript 目前只支持 ECMA 5.1 语法规范,超过这个范围的语法是不被支持;但是这些已经足够我们对大部分的日志进行处理了。
1、配置:
processors:
- script:
lang: javascript
id: _ts //自定义
tag: enable
source: >
var id = 1;
function process(event) {
// 在这里编写js脚本,符合js编写规范即可
}
2、举个栗子
使用filebeat采集/var/log目录下的cron日志为例,并对该日志进行处理
使用符合js规范的正则表达式对日志进行解析
解析结果
其他正则可参考w3c手册https://www.w3school.com.cn/jsref/jsref_obj_regexp.asp
参考代码
function process(event) {
//javascript
//获取日志数据
var raw = event.Get('message');
event.Put('_raw',raw);
//原始日志 Apr 10 15:09:19 VM-0-15-centos crontab[9867]: (root) LIST (root)
var reg = /\w{3} \d{2} \d{2}:\d{2}:\d{2}/;//正则,匹配日志日期
var arr = reg.exec(raw);//执行正则
event.Put('_reg',arr[0]);//输出结果
//匹配进程号
var regproId = /(?<=\[).*(?=\])/;
var arrId = regproId.exec(raw);//执行正则
event.Put('_regproId',arrId[0]);//输出结果
}
linkedsee.com