使用elasticsearch的管道解析日志(kibana操作)
- 一. 什么是 pipeline
- 二. 案例
前言
这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。
作者:神的孩子都在歌唱
以下是一个简单的文档解析案例,更多的操作解析可以看 : 官方文档
一. 什么是 pipeline
管道可让您在插入数据之前 对数据执行常见转换。例如,您可以使用管道删除字段、从文本中提取值以及丰富数据。
管道由一系列称为 处理器 的可配置任务组成。每个处理器按顺序运行,对传入文档进行特定更改。处理器运行后,Elasticsearch 将转换后的文档添加到您的索引中。
二. 案例
比如我的文档数据如下,是一个json字符串,我想在它插入的时候转成json插入,这时候就可以用到管道
"{\"status\":true,\"log_type\":[\"system\",\"access_log\",\"security_log\"]}"
首先我们创建一个 test_pipline 管道
PUT _ingest/pipeline/test_pipline
{"description": "提取消息","processors": [{"json": {"field": "message","target_field": "data"}}]
}
也可以通过kibana的页面操作,首先进入到Stack Management > Ingest Pipelines页面,点击 Create pipeline -> Add a processor -> Save pipeline 就可以了
我们的管道创建好了,接下来插入文档数据测试
首先我们插入一条没经过管道的数据
POST /customer/_doc
{"message":"{\"status\":true,\"log_type\":[\"system\",\"access_log\",\"security_log\"]}"
}GET /customer/_search
{"query": {"match_all": {}}
}
然后在插入一条经过管道的
POST /customer/_doc?pipeline=test_pipline
{"message":"{\"status\":true,\"log_type\":[\"system\",\"access_log\",\"security_log\"]}"
}
再次查询发现输出的第二条日志有一个data字段,里面就是我们通过message转成json后的值
作者:神的孩子都在歌唱
本人博客:https://blog.csdn.net/weixin_46654114
转载说明:务必注明来源,附带本人博客连接。