filebeat直连elasticsearch利用pipeline提取message中的字段
这里使用filebeat直连elasticsearch的形式完成数据传输,由于没有logstash,所有对于原始数据的过滤略显尴尬(logstash的filter非常强大)。 但是由于业务需求,还是需要将message(原始数据)中的某些字段进行提取,具体方式如下:
1. /path/目录下建立pipeline.json文件
{
"description" : "test-pipeline",
"processors" : [
{
"grok" :{
"field" : "message",
"patterns" : ["%{DATA:puid}\\\t%{DATA:datatime}\\\t\\\t%{DATA:content}"]
}
}
]
}
2. 将规则上传至elasticsearch中
curl -H "Content-Type: application/json" -XPUT 'http://localhost:9200/_ingest/pipeline/test-pipeline' -d@/path/pipeline.json
3. filebeat.yml中
filebeat.prospectors:
******
******
output.elasticsearch:
hosts: ["localhost:9200"]
# 加入如下行:
pipeline: "test-pipeline"
4. 测试数据
f1b25095cc823e63389ff299622b7e85 2019/02/27 03:38:54 send packet! opcode:3 message is in lua8282
f1b25095cc823e63389ff299622b7e85 2019/02/27 03:38:54 PacketManager::_onReceivedPacket opcode:3 size:27,rec_len:278282
5. elasticsearch中数据结果
[
{
"_score":1,
"_type":"doc",
"_id":"zWmLj2kB7ah0Pw2MmQGw",
"_source":{
"datatime":"2019/02/27 03:38:54",
"log":{
"file":{
"path":"/path/test_1.log"
}
},
"beat":{
"hostname":":",
"name":":",
"version":"6.6.1"
},
"@timestamp":"2019-03-18T06:44:43.224Z",
"host":{
"name":":"
},
"content":"",
"source":"/path/test_1.log",
"puid":"f1b25095cc823e63389ff299622b7e85",
"offset":0,
"input":{
"type":"log"
},
"message":"f1b25095cc823e63389ff299622b7e85 2019/02/27 03:38:54 send packet! opcode:3 message is in lua",
"prospector":{
"type":"log"
}
},
"_index":"test"
},
{
"_score":1,
"_type":"doc",
"_id":"0GmLj2kB7ah0Pw2MmQGw",
"_source":{
"datatime":"2019/02/27 03:38:54",
"log":{
"file":{
"path":"/path/test_1.log"
}
},
"beat":{
"hostname":":",
"name":":",
"version":"6.6.1"
},
"@timestamp":"2019-03-18T06:44:43.224Z",
"host":{
"name":":"
},
"content":"",
"source":"/path/test_1.log",
"puid":"f1b25095cc823e63389ff299622b7e85",
"offset":318,
"input":{
"type":"log"
},
"message":"f1b25095cc823e63389ff299622b7e85 2019/02/27 03:38:54 PacketManager::_onReceivedPacket| ReceivedPacket size:27",
"prospector":{
"type":"log"
}
},
"_index":"test"
}
]
参考:
- https://note.yuchaoshui.com/blog/post/yuziyue/filebeat-use-ingest-node-dealwith-log-then-load-into-elasticsearch
- http://www.axiaoxin.com/article/236/
- https://blog.csdn.net/spring_ming/article/details/62232331
filebeat直连elasticsearch利用pipeline提取message中的字段的更多相关文章
- python利用正则表达式提取文本中特定内容
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. re 模块使 Python ...
- 利用Effmpeg 提取视频中的音频(mp3)
在B站看到一个up发的病名为爱的钢琴曲,感觉很好听,然后当然是要加入歌单啊.然而不知道怎么转换成mp3,找来找去找到了EFFmpeg 这篇只是达到了我简单的需求,以后可能会有EFFmpeg更详细的使用 ...
- filebeat 提取获取massage字段 利用pipeline grok 7.12
嘴巴会说(情商)比技术有时候更重要! 水平有限,希望你看完有所收获! 背景 1,filebeat直连Elasticsearch,需要对massage提取一些特定的字段. 2,如果你对数据需要处理的比较 ...
- [转] 利用Matlab提取图片中曲线数据
原文地址 网易博客 前一段时间看到一篇文章"利用Matlab提取图图片中的数据",觉得思路挺好,遂下载下来研究了一番,发现作者所编写的程序没有考虑原始图片非水 平放置的情况,而实际 ...
- ES & Filebeat 使用 Pipeline 处理日志中的 @timestamp
使用 Pipeline 处理日志中的 @timestamp Filebeat 收集的日志发送到 ElasticSearch 后,会默认添加一个 @timestamp 字段作为时间戳用于检索,而日志中的 ...
- Filebeat+Kafka+Logstash+ElasticSearch+Kibana 日志采集方案
前言 Elastic Stack 提供 Beats 和 Logstash 套件来采集任何来源.任何格式的数据.其实Beats 和 Logstash的功能差不多,都能够与 Elasticsearch 产 ...
- 基于C#利用ffmpeg提取视频帧
利用ffmepg提取视频帧实际上是利用C#调用ffmepg命令行进行处理对应的视频,然后输出出视频帧 GetPicFromVideo("); static public string Get ...
- Elasticsearch入门必备——ES中的字段类型以及常用属性
使用Elasticsearch时,了解字段的概念,是必不可少的.毕竟无论是es还是传统的数据库,都无法弱化字段的类型. 背景知识 在Es中,字段的类型很关键: 在索引的时候,如果字段第一次出现,会自动 ...
- Jmeter从一个Reply Message中获取N个参数的值,然后根据这个参数对后面的操作循环N次(ForEach Controller的用法)
假设Reply Message是这样的: <root><result code="0" msg="success" /><m k= ...
随机推荐
- MCB2300的CTM1050(CAN) - 系列示意图
这一系列示意图由Portel DXP 2004绘. 截图: 文件下载: CTM1050.7z 版权声明:本文博客原创文章,博客,未经同意,不得转载.
- Jenkins build失败条件
在Jenkins 项目写了很多剧本.有时候,我发现脚本失败,但Jenkins运行成功. Jenkins无论是通过退出代码0比量build成功. 因此,newLISP在.您可以使用(exit)对于成功. ...
- C#调用C/C++ DLL 参数传递和回调函数的总结
原文:C#调用C/C++ DLL 参数传递和回调函数的总结 Int型传入: Dll端: extern "C" __declspec(dllexport) int Add(int a ...
- XML序例化工具类
Model: [XmlRoot(ElementName = "root")] public class BookModel { [XmlElement] public string ...
- .NET 图片像素比较
/// <summary> /// 图像比较.用于找出两副图片之间的差异位置 /// </summary> public class ImageComparer { /// & ...
- php将两个数组相同的key合并到一个数组
$arr = array( array( 'id' => 1, 'user_name'=>'test1' ), array( 'id' =& ...
- Qt浮动按钮的实现(使用窗口背景透明、实现只显示浮动按钮的目的)
Qt浮动按钮的实现 效果如下: 图3 估计很多做Qt有一定经验的朋友会觉得这个效果不难,但是这是一个需求奇葩的实际业务中做出的效果.笔者会想讲下客户的需求和整体框架的矛盾. 整个项目主要是由Qt搭建的 ...
- Spring MVC的工作原理,我们来看看其源码实现
前言 开心一刻 晚上陪老丈人吃饭,突然手机响了,我手贱按了免提……哥们:快出来喝酒!哥几个都在呢!我:今天不行,我现在陪老丈人吃饭呢.哥们:那你抓紧喝,我三杯白酒,把我岳父放倒了才出来的,你也快点.看 ...
- 常用json解析库比较及选择 fastjson & gson
一.常用json解析库比较及选择 1.简介 fastjson和gson是目前比较常用的json解析库,并且现在我们项目代码中,也在使用这两个解析库. fastjson 是由阿里开发的,号称是处理jso ...
- Office Add-in Model 为 Outlook Mail Add-in 提供的 JavaScript API 介绍
本文所讨论的 Mailbox API是指在 Mail Add-in 中可调用的 JavaScript API.开发者可以利用这些API 实现 Add-in 和 Outlook 的交互(数据读取与写入) ...