最近在折腾logstash,其处理流程不过于input、filter、output三个处理流程,以下是我翻译的几个常用的处理参数

output流之http

output {
http {
codec => ... # codec (optional), default: "plain"
content_type => ... # string (optional)
format => ... # string, one of ["json", "form", "message"] (optional), default: "json"
headers => ... # hash (optional)
http_method => ... # string, one of ["put", "post"] (required)
mapping => ... # hash (optional)
message => ... # string (optional)
url => ... # string (required)
verify_ssl => ... # boolean (optional), default: true
workers => ... # number (optional), default: 1
}
}

codec: 数据类型,默认是“plain”,用来指定输出数据的类型
content_type: 值类型是string,默认没有设置该参数,如果没有特别指明,json格式是application/json,form格式是application/x-www-form-urlencoded
format: 值可以是json、form、message三种类型,默认是json。用来设置http body的格式,如果是form格式,http body会被影射成一个查询字符串(foo=bar&baz=fizz...),如果是message格式,http body会被格式化成事件???,否则,事件都是以json格式发送
headers: 值类型是一个hash,默认是没有设置的。默认使用的格式如下:headers => ["X-My-Header", "%{host}"]
http_method: 值可以是put或者post,默认没有设置。
mapping: 值是一个hash,默认没有设置,该值可以让你选择事件的一个结构体或者部分发送,例如:mapping => ["foo", "%{host}", "bar", "%{type}"]
message: 值是字符串,默认没有设置
url: 值是一个字符串,默认没有设置。可以让你使用http或者https进行put或者post。
verify_ssl: 值是布尔类型,默认是true,是否验证SSL
workers: 值是一个数值。默认是1,用来设置工作者数目。

input流codec之json格式

input {
file {
codec => json {
charset => ["UTF-8"] (optional), default: "UTF-8"
}
}
}

被用来解析完全格式的json消息,如果json数据使用'\n'分割的,则可以使用json_lines

filter流之json

filter {
json {
add_field => ... # hash (optional), default: {}
add_tag => ... # array (optional), default: []
remove_field => ... # array (optional), default: []
remove_tag => ... # array (optional), default: []
source => ... # string (required)
target => ... # string (optional)
}
}

对一个包含json的字段,可以扩展成一个数据结构
add_field: 值类型为hash,默认是{} 空。如果这个过滤成功了,会增加任意field到这个事件。例如:add_field => [ "foo_%{somefield}", "Hello world, from %{host}" ],如果这个事件有一个字段somefiled,它的值是hello,那么我们会增加一个字段foo_hello,字段值则用%{host}代替。
add_tag: 值类型为array,默认是[] 空。执行成功会增加一个任意的tags到事件。例如:add_tag => [ "foo_%{somefield}" ]
remove_field: 值类型为array,默认是[] 空,执行成功,删除一个field,例如:remove_tag => [ "foo_%{somefield}" ]
source: 值类型为字符串,默认没有设置。
filter流之json_encode

filter {
json_encode {
add_field => ... # hash (optional), default: {}
add_tag => ... # array (optional), default: []
remove_field => ... # array (optional), default: []
remove_tag => ... # array (optional), default: []
source => ... # string (required)
target => ... # string (optional)
}
}

把一个field序列化成json格式。

filter流之grep

 filter {
grep {
add_field => ... # hash (optional), default: {}
add_tag => ... # array (optional), default: []
drop => ... # boolean (optional), default: true
ignore_case => ... # boolean (optional), default: false
match => ... # hash (optional), default: {}
negate => ... # boolean (optional), default: false
remove_field => ... # array (optional), default: []
remove_tag => ... # array (optional), default: []
}
}

grep过滤器,如果你不想通过哪些事件可以把它drop掉,或者给每个匹配的事件增加tags和fields。如果negate的值是true,则匹配到的事件会被丢弃。

add_field: 值类型是hash,默认是{} 空。过滤成功,会增加一个field到事件。例如:add_field => [ "foo_%{somefield}", "Hello world, from %{host}" ]
add_tag: 值类型是array,默认是[] 空。过滤成功,会增加一个tags到事件,例如:add_tag => [ "foo_%{somefield}" ]
drop: 值是布尔类型,默认是true。drop掉不匹配的事件,如果该值设置为false,则不会有事件被drop。
ifnore_case: 值类型是布尔类型,默认是false。不区分大小写匹配,类似于grep -i,如果是true,则区分大小写
match: 值是hash类型,默认是{} 空。一个hash匹配field=>regxp。如果有多个匹配,则必须所有的都成功。例如:match => [ "message", "hello world" ]
negate: 值是布尔类型,默认值是false。类似于grep -v
remove_field: 值是array类型,默认是[] 空。如果成功,删除一个fields。
remove_tag: 值是array类型,同上。

filter流之grok

 filter {
grok {
add_field => ... # hash (optional), default: {}
add_tag => ... # array (optional), default: []
break_on_match => ... # boolean (optional), default: true
drop_if_match => ... # boolean (optional), default: false
keep_empty_captures => ... # boolean (optional), default: false
match => ... # hash (optional), default: {}
named_captures_only => ... # boolean (optional), default: true
overwrite => ... # array (optional), default: []
patterns_dir => ... # array (optional), default: []
remove_field => ... # array (optional), default: []
remove_tag => ... # array (optional), default: []
tag_on_failure => ... # array (optional), default: ["_grokparsefailure"]
}
}

解析任意文本并且结构化他们。grok目前是logstash中最好的解析非结构化日志并且结构化他们的工具。这个工具非常适合syslog、apache log、mysql log之类的人们可读日志的解析。

logstash 常用参数的更多相关文章

  1. Production环境中iptables常用参数配置

    production环境中iptables常用参数配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我相信在实际生产环境中有很多运维的兄弟跟我一样,很少用到iptables的这个 ...

  2. chattr的常用参数详解

    chattr的常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在实际生产环境中,有的运维工程师不得不和开发和测试打交道,在我们公司最常见的就是部署接口.每天每个人部署的 ...

  3. dmidecode常用参数

    dmidecode常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. dmidecode这个命令真是神器啊,他能快速的获取服务器的硬件信息,而且这个命令有很多的花式玩法,今 ...

  4. find常用参数详解

    find常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在linux系统中,在init 3模式情况下都是命令行模式,这个时候我们想要找到一个文件的就得依赖一个非常好用的 ...

  5. cat常用参数详解

    cat常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 最近,我的一个朋友对linux特别感兴趣,于是我觉得每天交给他一个命令的使用,这样一个月下来也会使用30个命令,基 ...

  6. find一些常用参数的一些常用实例和一些具体用法和注意事项。

    find一些常用参数的一些常用实例和一些具体用法和注意事项. 1.使用name选项: 文件名选项是find命令最常用的选项,要么单独使用该选项,要么和其他选项一起使用.  可以使用某种文件名模式来匹配 ...

  7. ls常用参数

    ls常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 玩Linux的老司机们每天都要敲的命令,但是这个鸡蛋的命令还有很多中玩法哟~跟着我一起敲一遍吧!在这里我就列举几个常 ...

  8. FFmpeg FFmpeg的使用及常用参数

    FFmpeg的使用及常用参数 一.下载: 官网:http://ffmpeg.org/ 二.demo: 1 class Program 2 { 3 static void Main(string[] a ...

  9. c# ffmpeg常用参数

    c#  ffmpeg常用参数 转换文件格式的同时抓缩微图: ffmpeg -i "test.avi" -y -f image2 -ss 8 -t 0.001 -s 350x240 ...

随机推荐

  1. 北京大学信息科学技术学院本科生课程体系课程大纲选登——计算机网络与WEB技术

  2. b总结

    Beta 答辩总结 评审表 组名 格式 内容 ppt 演讲 答辩 总计 天机组 15 15 13 15 14 72 PMS 16 16 15 16 16 79 日不落战队 16 17 17 17 17 ...

  3. zookeeper安装和使用 windows环境(转)

    原文地址: http://blog.csdn.net/tlk20071/article/details/52028945 简介 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是G ...

  4. 【转】C语言宏高级用法 [总结]

    1.前言  今天看代码时候,遇到一些宏,之前没有见过,感觉挺新鲜.如是上网google一下,顺便总结一下,方便以后学习和运用.C语言程序中广泛的使用宏定义,采用关键字define进行定义,宏只是一种简 ...

  5. JavaScript代码-----位置决定结果

    刚学JavaScript的时候,即使照着书上的代码敲一遍,运行的时候,得到的结果要么总是和书上的结果不同,要么是没产生效果.学到后面,才明白到其实程序的代码是没错的,错误的是代码的位置! 首先看下面这 ...

  6. Notepad++ 大小写转换

    code_field_text 普通文本 code_field_user_id 用户ID code_field_customer_id 客户ID code_field_dict 数据字典 code_f ...

  7. ASP.NET Web Service 标准SOAP开发案例代码(自定义验证安全头SOAPHeader)

    using System.Xml;using System.Xml.Serialization;using System.Web.Services.Protocols;using System.Con ...

  8. TCP 三次握手理解和过程

    1:TCP为什么要三次握手,不是两次四次? 2:TCP协议三次握手过程分析

  9. Oracle测试环境参数调整.

    测试环境上面Oracle数据库性能参数设置 1. 关闭回收站 alter system set recyclebin=off 2. 修改redo日志的大小 11g的默认大小是50m 如果redo fi ...

  10. linux学习之centos(四):git的安装

    整个流程如下:(参考文章:linux安装git方法) [carsonzhu@localhost 桌面]$ wget https://github.com/git/git/archive/v2.8.3. ...