linux logstash中配置文件,logstash配置文件常用参数

最近在折腾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之类的人们可读日志的解析。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值