最近在折腾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. Github以及推广

    非常抱歉,我忘记在这个博客上发一遍了,之前是我同学代发,而我忘记把链接给发过来... Github: http://www.cnblogs.com/case1/p/5060015.html 推广: h ...

  2. Beta 冲刺报告模板

    Beta 冲刺报告模板 十分钟左右站立会议,控制好时间,不要在此会议上讨论细节问题. 每组一份博客,组内共享,每人都需提交. 模板 队名:xxx 组员1(组长) 过去两天完成了哪些任务 文字/口头描述 ...

  3. MapReduce 过程详解

    Hadoop 越来越火, 围绕Hadoop的子项目更是增长迅速, 光Apache官网上列出来的就十几个, 但是万变不离其宗, 大部分项目都是基于Hadoop common MapReduce 更是核心 ...

  4. Eclipse版本列表

    https://wiki.eclipse.org/Older_Versions_Of_Eclipse http://blog.csdn.net/jaycee110905/article/details ...

  5. [百家号]看完再也不会被坑!笔记本接口大揭秘:HDMI、DP、雷电

    看完再也不会被坑!笔记本接口大揭秘:HDMI.DP.雷电 https://baijiahao.baidu.com/s?id=1577309281431438678&wfr=spider& ...

  6. [转帖]nginx upstream模块--负载均衡

    nginx upstream模块--负载均衡 https://www.cnblogs.com/linjiqin/p/5494783.html Module ngx_http_upstream_modu ...

  7. PSexec以及xcopy的简单使用

    1. 远程执行命令. 有时候不想远程但是想执行一些命令, 比较简单的方法是: 下载systeminternals 然后解压缩后可以讲目录放到path环境变量中 然后打开命令行工具 输入 如下的命令 p ...

  8. CSS 选择器的兼容性

    参考网站 http://blog.csdn.net/yume_sola/article/details/70215695 http://www.youdiancms.com/jianrong/614. ...

  9. flask+mako+peewee(下)(解决了Error 2006: MySQL server has gone away)

    这篇主要介绍在这次项目中使用的peewee 文档地址:http://peewee.readthedocs.org/en/latest/index.html 首先我们要初始化一个数据库连接对象.这里我使 ...

  10. PHP的安装,编译,扩展工具

    1.基本容易混淆的概念 pecl php的社区贡献扩展库,全称为PHP Extension Community Library, 是php的底层库, 使用C语言编写 pear php的应用扩展库,全称 ...