Logstash Json 过滤器插件
1. Json Filter
功能概述
这是一个JSON解析过滤器。它接受一个包含JSON的现有字段,并将其扩展为Logstash事件中的实际数据结构。
默认情况下,它将把解析过的JSON放在Logstash事件的根(顶层)中,但是这个过滤器可以配置为使用目标配置将JSON放到任意的事件字段中。
如果JSON解析在数据上失败了,事件将不会受到影响,它将被标记为_jsonparsefailure,然后您可以使用条件来清理数据。您可以使用tag_on_failure选项配置此标记。
如果解析后的数据包含@timestamp字段,我们将尝试将其用于事件的@timestamp,如果解析失败,该字段将被重命名为_@timestamp,事件将被标记为_timestampparsefailure。
Json 过滤器配置选项
Setting | Input type | Required |
---|---|---|
|
boolean |
No |
|
string |
Yes |
|
array |
No |
|
string |
No |
skip_on_invalid_json:
允许在无效的json上跳过过滤器(允许不带警告地处理json和非json数据)
source:
source => source_field
例如json数据在message字段中,将会从message字段中解析json数据
filter {
json {
source => "message"
}
}
tag_on_failure:
默认值["_jsonparsefailure"]当没有成功匹配时,将值附加到标记字段
例如:
target:
定义放置已解析数据的目标字段。如果省略此设置,则JSON数据将存储在事件的根(顶层)。源字段值中的JSON将扩展为目标字段中的数据结构。
例如将解析后的结果放到MyMessage字段
filter {
json {
target => "MyMessage"
}
}
通用配置项
下述选项所有的过滤器都支持
Setting | Input type | Required |
---|---|---|
|
hash |
No |
|
array |
No |
|
boolean |
No |
|
string |
No |
|
boolean |
No |
|
array |
No |
|
array |
No |
add_field:
如果过滤成功,则向此事件添加任意字段。字段名可以是动态的,并使用%{Field}包含事件的一部分。
例如:
filter {
json {
add_field => { "foo_%{somefield}" => "Hello world, from %{host}" }
}
}
filter {
json {
add_field => {
"foo_%{somefield}" => "Hello world, from %{host}"
"new_field" => "new_static_value"
}
}
}
如果事件具有字段“somefield”==“hello”,那么在成功时,这个过滤器将添加字段foo_hello(如果存在的话),上面的值和%{host}块将被事件中的值替换。第二个示例还将添加硬编码字段。
add_tag:
如果过滤成功,则向事件添加任意标记。标记可以是动态的,并使用%{field}语法包含事件的一部分。
例如:
filter {
json {
add_tag => [ "foo_%{somefield}" ]
}
}
filter {
json {
add_tag => [ "foo_%{somefield}", "taggedy_tag"]
}
}
如果事件有字段“somefield”==“hello”,这个过滤器在成功时,会添加一个标签foo_hello(第二个例子当然会添加一个taggedy_tag标签)。
enable_metric:
默认情况下,我们会记录所有可以记录的指标,但您可以为特定的插件禁用指标集合。
id:
向插件配置中添加唯一的ID。如果没有指定ID, Logstash将生成一个ID。强烈建议在配置中设置此ID。如果您有两个或多个相同类型的插件,例如,如果您有两个json过滤器,
那么这是非常有用的。在这种情况下,在使用监视api时添加一个命名ID将有助于监视Logstash。
例如:
filter {
json {
id => "ABC"
}
}
periodic_flush:
定期调用filter flush方法。可选的。
periodic_flush:
如果过滤成功,则从此事件中删除任意字段。例如:
filter {
json {
remove_field => [ "foo_%{somefield}" ]
}
}
filter {
json {
remove_field => [ "foo_%{somefield}", "my_extraneous_field" ]
}
}
如果事件中有字段“somefield”==“hello”,那么在成功时,如果存在名为foo_hello的字段,这个过滤器将删除该字段。第二个示例将删除一个额外的非动态字段。
remove_tag:
如果过滤成功,则从事件中删除任意标记。标记可以是动态的,并使用%{field}语法包含事件的一部分。
例如:
filter {
json {
remove_tag => [ "foo_%{somefield}" ]
}
}
filter {
json {
remove_tag => [ "foo_%{somefield}", "sad_unwanted_tag"]
}
}
如果事件有字段“somefield”==“hello”,过滤成功时将会删除foo_hello标记。第二个示例还将不想要的标记。
2. Json_encode Filter
功能概述
JSON编码过滤器。获取一个字段并将其序列化为JSON
如果没有指定目标,则用JSON文本覆盖源字段。(此过滤器非默认安装的,需手动安装bin/logstash-plugin install logstash-filter-json_encode)
例如,如果您有一个名为foo的字段,并且希望将JSON编码的字符串存储在bar中,例如:
filter {
json_encode {
source => "foo"
target => "bar"
}
}
source :
需要转换为json的字段
target:
写入JSON的字段。如果没有指定,源字段将被覆盖。
本文内容主要翻译自官方文档:https://www.elastic.co/guide/en/logstash/current/plugins-filters-json.html
Logstash Json 过滤器插件的更多相关文章
- logstash过滤器插件filter详解及实例
1.logstash过滤器插件filter 1.1.grok正则捕获 grok是一个十分强大的logstash filter插件,他可以通过正则解析任意文本,将非结构化日志数据弄成结构化和方便查询的结 ...
- Logstash的filter插件介绍
一 官网说明 过滤器插件对事件执行中介处理.通常根据事件的特征有条件地应用过滤器. 以下过滤器插件在下面可用. Plugin Description Github repository aggrega ...
- Hexo+NexT(六):手把手教你编写一个Hexo过滤器插件
Hexo+NexT介绍到这里,我认为已经可以很好地完成任务了.它所提供的一些基础功能及配置,都已经进行了讲解.你已经可以随心所欲地配置一个自己的博客环境,然后享受码字的乐趣. 把博客托管到Github ...
- 五十八.Kibana使用 、 Logstash配置扩展插件
1.导入数据 批量导入数据并查看 1.1 导入数据 1) 使用POST方式批量导入数据,数据格式为json,url 编码使用data-binary导入含有index配置的json文件 ]# ...
- yformater - chrome谷歌浏览器json格式化json高亮json解析插件
yformater是一款chrome浏览器插件,用来格式化(高亮)服务端接口返回的json数据. 实际上小菜并不是第一个写这种插件的,但是现有的chrome json格式化插件实在是不太好用,索性小菜 ...
- 火狐谷歌浏览器Json查看插件
1.搜: Firefox的JSON插件 参考: Chrome/FireFox浏览器下处理JSON的插件_Bruce_新浪博客 JSONView :: Firefox 附加组件 但是后来去发现没用: 打 ...
- Json 查看Json的插件
# 写写写写写,每个人有每个人写东西的方式,这些都是好的方式.需要感谢的人有几个,对我的成长有启发,所以我也会把能够想到.接触到的东西告诉team里面的人.新人,然后这些人又可以把这些东西传递给下一波 ...
- JMeter 通过JSON Extractor 插件来提取响应结果
接口响应结果,通常为HTML.JSON格式的数据,对于HTML的响应结果的提取,可以通过正则表达式,也可以通过XPath 来提取. 对于JSON格式的数据,可以通过正则表达式.JSON Extract ...
- Chrome/FireFox处理JSON的插件
Chrome/FireFox处理JSON的插件 JSON插件 效果对比 对于json的数据如果不编排一下格式查看起来很费劲,今天推荐一款chrome/Firfox下处理json的插件JSON-ha ...
随机推荐
- 程序发布出现: 服务器无法处理请求--->无法生成临时类(result = 1)。 错误CS2001:未能找到源文件“C:\ Windows \ TEMP \ lph54vwf.0.cs”
服务器上发布的web服务程序出错: 服务器无法处理请求--->无法生成临时类(result = 1).错误CS2001:未能找到源文件“C:\ Windows \ TEMP \ lph54vwf ...
- js实现导出数据到excel
来自:http://www.imooc.com/article/13374 //html代码<!DOCTYPE HTML> <html> <head> <ti ...
- SQL保存XML报错 “XML 分析: 行 1,字符 47,非法的 xml 字符”
例如: <?xml version="1.0" encoding="utf-8" standalone="yes"?> < ...
- Ubuntu16.04添加HP Laserjet Pro M128fn打印机和驱动
一.全部设置->打印机->添加新打印机 添加打印机 二.选择自动搜索到的网络打印机HP Laserjet Pro M128fn,点击添加. 三.添加打印机完成,打印测试页进行测试. 四. ...
- mysql InnoDB加锁分析
文章转载自:http://www.fanyilun.me/2017/04/20/MySQL%E5%8A%A0%E9%94%81%E5%88%86%E6%9E%90/ 以下实验数据基于MySQL 5.7 ...
- Bag标签之中的一个行代码实行中文分词实例3
例3: 分词(返回一个书包.以_0._1._2 ...取出分好的词) <bag id=words act=2words>我喜欢黄色高领T恤衫</bag> 注意没有name属性 ...
- 什么是string interning(字符串驻留)以及python中字符串的intern机制
Incomputer science, string interning is a method of storing only onecopy of each distinct string val ...
- 58.express安装问题:express不是内部也或者外部的命令解决方案
转自:https://www.cnblogs.com/zhangym118/p/5842094.html "Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列 ...
- js设计模式--------基本概念的理解
1.闭包,前面已经说过,这里不再做说明 2.封装 对于JS而言,他不像java一样存在私有,公有 ,可以让对象在一些细节方面存在差异,降低他们的耦合程度,对数据做一些约束,我们可以更容易调试,封 ...
- 什么是CSS重置,有些什么作用?
CSS重置是什么? 简单的说就是重置浏览器的CSS默认属性. 为什么要重置它,有什么作用? 因为浏览器的品种很多,每个浏览器的默认样式也是不同的,比如<button>标签,在IE浏览器.F ...