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 ...
随机推荐
- Linux下图解minicom安装
Linux下图解minicom安装 minicom是一个串口通信工具,就像Windows下的HyperTerminal.可用来与串口设备通信,如调试交换机和Modem等.它的Ubuntu软件包的名称就 ...
- Linux系统安全加固(一)
Linux系统安全加固(一) 去年8月,某所网站遭黑客攻击瘫痪虽然港交所随后及时启用备用系统,但还是致使7支股票1支债卷被迫停牌,次日再次遭受攻击而瘫痪:在去年年底继CSDN信息安全出现之后, ...
- 【Linux端口大全】
2端口:管理实用程序 3端口:压缩进程 5端口:远程作业登录 7端口:回显 9端口:丢弃 11端口:在线用户 13端口:时间 17端口:每日引用 18端口:消息发送协议 19端口:字符发生器 20端口 ...
- 阿里云server改动MySQL初始password---Linux学习笔记
主要方法就是改动 MySQL依照文件以下的my.cnf文件 首先是找到my.cnf文件. # find / -name "my.cnf" # cd /etc 接下来最好是先备份my ...
- 文件/文件夹权限设置命令chmod的具体使用方法
chmod是文件/文件夹权限设置的命令,在Linux中常常遇到.本博文下面总结chmod的具体使用方法. Linux/Unix的档案调用权限分为三级,即档案拥有者user.群组group.其它othe ...
- Http post提交和get提交
public string PostParameter(string url) { string message=""; GetOrde ...
- 创建maven项目pom.xml出现错误(依赖Missing)
Maven的依赖问题 在聚合模块时候,发现在父工程目录中的依赖存在一些问题.一开始是${pagehelper.version},后来将版本直接填写相应的版本如图下 依赖添加失败 * 在父工程的jar包 ...
- FormData是什么
FormData是什么 一.总结 一句话总结:利用 FormData 对象,可以通过JavaScript键值对来模拟一系列表单控件,还可以使用 XMLHttpRequest的send() 方法来异步提 ...
- vue methods 方法中 方法 调用 另一个方法。
vue在同一个组件内: methods中的一个方法调用methods中的另外一个方法. 可以在调用的时候 this.$options.methods.test(); this.$options.met ...
- freeMark
1. 什么是freemark Freemaker是一个”模板引擎”,也可以说是一个基于模板技术的生成文本输出的一个通用工具 2.一般的用途: l 能用来生成任意格式的文本:HTML,XML ...