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 ...
随机推荐
- 第一次接触正则表达式/^[A-Za-z_][A-Za-z0-9_]{5,15}$/
/^[A-Za-z_][A-Za-z0-9_]{5,15}$/ /^$/ :完整表达式 ^ :表示以什么开始,或者取反 $ :结束 ^[A-Za-z_] : 以字母开始,无论大小都可以: [^A-Za ...
- c# 读取导入的excel文件,循环批量处理数据
dt = FM_HR_ShiftMaintenanceManager.GetCsvToDataTable(strConn, excelName,"XJSQMonthlyImportExcel ...
- DevExpress Report打印边距越界问题
DevExpress Report Print的时候,出现这样的问题:one or more margins are set outside the printable area of the pa ...
- Fedora27 源配置
一.添加阿里源,阿里源我感觉是现在国内比较好用的源,支持的发行版比较全.配置方法1.备份系统自带的源mv /etc/yum.repos.d/fedora.repo /etc/yum.repos.d/f ...
- python多线程理解
在发送网络请求的过程中,单个请求的速度总是有着很大的限制,而任务往往需要以更快的速度去执行,这时多线程就是一个很好地选择.python已经给我们封装好了多线程库thread和threading. th ...
- wangEditor - 轻量级web富文本编辑器(可带图片上传)
业务需求: 通过后台编辑文章和图片,上传到前端界面,展示新闻消息模块.这个时候,需要一款简洁的编辑器,百度编辑器是最常用的一种,但是功能太过于复杂,而wangEditor - 轻量级web富文本编辑器 ...
- 洛谷 P1719 最大加权矩形
P1719 最大加权矩形 题目描述 为了更好的备战NOIP2013,电脑组的几个女孩子LYQ,ZSC,ZHQ认为,我们不光需要机房,我们还需要运动,于是就决定找校长申请一块电脑组的课余运动场地,听说她 ...
- 多路I/O转接之select模型
I/O复用使得程序可以同一时候监听多个文件描写叙述符.这对提高程序的性能至关重要.通常,网络程序同一时候处理或者监听多个socket文件描写叙述符的时候可以考虑使用I/O复用模型. 值得强调的是.I/ ...
- 一个project师该怎样高效工作
1. 静. 在千头万绪,百般push.各种IM电话邮件狂轰滥炸中保持一个静字.找到最适合如今做的事情,情绪不要被外界所干扰.一次仅仅做一件事,不要被打断. 有的公司土鳖文化严重,领导一会儿要求你干这 ...
- Google开源新的 RISC-V IP核: “BottleRocket”(https://cnrv.io)
BottleRocket是RISCV RV32IMC的实现. Google在2017年11月29日在Github上非官方开源了BottleRocket的RTL代码,同时表明这并不是一个官方支持的Goo ...