文章目录

  • 1. Logstash简介
  • 1.1 结构图
  • 1.2 名词解释
  • 2. 启动参数与配置
  • 2.1 常用启动参数
  • 2.2 常用配置
  • 2.3 Pipeline语法
  • 2.4 实例配置
  • 3. 常用插件
  • 3.1 输入插件
  • 3.2 过滤插件
  • 3.2 输出插件


1. Logstash简介

Logstash 是开源的服务器端数据处理管道,能够处理每秒几万条的日志,可以同时从多个来源采集数据,过滤、分析、丰富、统一格式然后将数据发送到ElasticSearch中。

1.1 结构图

logstash 监控 logstash event_logstash 监控

1.2 名词解释

Logstash 的事件(event)处理流水线有三个主要角色完成:inputs –> filters –> outputs:

  • inputs :接收数据的输入,常用:File、Syslog、Redis、Filebeats、TCP、JDBC
  • filters :数据处理与转换,常用:Grok、Mutate、Drop、Clone、Geoip
  • outputs:数据的输出,常用:Elasticsearch、File

2. 启动参数与配置

2.1 常用启动参数

  • -e:默认参数运行,input {stdin { }} output {stdout { }}
  • -f:指定配置文件运行,bin/logstash -f /etc/logstash.conf
  • -t:测试 Logstash 读取到的配置文件语法是否能正常解析
  • -l:输出日志配置,bin/logstash -l logs/logstash.log
  • -w:运行 filter 和 output 的 pipeline 线程数量,默认是 CPU 核数
  • -b:pipeline 线程执行具体的 filter 和 output 函数之前,最多能累积的日志条数,默认是 125 条
  • -u:pipeline 线程在打包批量日志的时候,最多等待几毫秒,默认是 5ms
  • -P:自定义插件,bin/logstash -P /path/plugins
  • –verbose:打印日志
  • –debug:打印调试日志

2.2 常用配置

logstash相关配置文件:

  • jvm.options:修改jvm的相关参数,比如修改占用内存等
# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space
-Xms4g
-Xmx8g
  • logstash.yml:修改logstash运行参数,比如node.name、path.data、pipeline.workers等
node.name: logstash-1  #节点名称,便于识别
path.data:   #持久化存储数据的文件夹,默认是LOGSTASH_HOME/data
path.config: #pipeline配置文件的目录
path.log:    #pipeline日志文件的目录
pipeline.workers: 8 #pipeline的线程数,默认为CPUhesu
pipeline.batch.size/delay: #设定批量处理数据的数据和延迟
queue.type: #设定队列类型,默认是memory
queue.max_bytes: #队列总容量,默认是1024mb
  • log4j2.properties:修改日志相关配置
  • startup.options:修改创建启动脚本的配置
  • pipelines.yml:修改实例中运行的管道配置信息

2.3 Pipeline语法

引用Logstash Event的属性:

  • 直接引用字段值:if [ua][os] =~ "windows"
  • 在字符串中引用:os => "ua is %{[ua][os]}"

数据类型:

  • 布尔类型Boolean:status => true
  • 数值类型Number:port => 33
  • 字符创类型String:name => "Hello world"
  • 数组Array/List:users => [{id => 1,name => a},{id => 2,name => b}]
  • 哈希类型Hash:match => { "field1" => "value1" "field2" => "value2" }

表达式操作符:

  • 比较:==、!=、<、>、<=、>=
  • 正则匹配:=~、!~
  • 包含:in、not in
  • 逻辑操作:and、or、nand、xor、!
  • 分组操作:()

2.4 实例配置

input { 												#输入
  tcp { 												#接收TCP数据输入
    mode => "server" 									#服务器模式
    host => "0.0.0.0" 								 	#监听地址
    port => 4567 										#监听端口
    codec => json_lines 								#编码器
	add_field => {"log_source" =>"tcp"}					#增加字段
  }
  beats {												#接收beats数据输入
    port => 5044
    codec => "json"
    add_field => {"log_source" =>"beat"}
  }
}

filter {												#数据过滤
  if [log_source] == "beat" {
    json {
      source => "message"
    }
    mutate {
      remove_field => "type"
    }
  }
}

output {
  if [log_source] == "beat" { 
    if "xxx" in [type]{
      elasticsearch {									#输出数据
        hosts => ["192.168.1.11:9200","192.168.1.12:9200"]
        index => "nginx-xxx-%{+YYYY.MM}"
      }
    } else if "yyy" in [type] {
      elasticsearch {
        hosts => ["192.168.1.11:9200","192.168.1.12:9200"]
        index => "nginx-yyy-log-%{+YYYY.MM}"
      }
    } 
  } 
}

3. 常用插件

3.1 输入插件

文件读取插件: 用来抓取文件的变化信息,将变化信息封装成Event进程处理或者传递

参数

类型

默认值

描述

add_field

hash

{}

用于向Event中添加字段

close_older

number

3600

设置文件多久秒内没有更新就关掉对文件的监听

codec

string

“plain”

输入数据之后对数据进行解码

delimiter

string

“\n”

文件内容的行分隔符,默认按照行进行Event封装

discover_interval

number

15

间隔多少秒查看一下path匹配对路径下是否有新文件产生

enable_metric

boolean

true

exclude

array


path匹配的文件中指定例外,如:path => “/var/log/“;exclude =>”.gz”

id

string


区分两个相同类型的插件,比如两个filter,在使用Monitor API监控是可以区分,建议设置上ID

ignore_older

number


忽略历史修改,如果设置3600秒,logstash只会发现一小时内被修改过的文件,一小时之前修改的文件的变化不会被读取,如果再次修改该文件,所有的变化都会被读取,默认被禁用

max_open_files

number


logstash可以同时监控的文件个数(同时打开的file_handles个数),如果你需要处理多于这个数量多文件,可以使用“close_older”去关闭一些文件

path

array


必须设置项,用于匹配被监控的文件,如“/var/log/.log”或者“/var/log//.log”,必须使用绝对路径

sincedb_path

string


文件读取记录,必须指定一个文件而不是目录,文件中保存没个被监控的文件等当前inode和byteoffset,默认存放位置“$HOME/.sincedb*”

sincedb_write_interval

number

15

间隔多少秒写一次sincedb文件

start_position

“beginning”,“end”

” end”

从文件等开头还是结尾读取文件内容,默认是结尾,如果需要导入文件中的老数据,可以设置为“beginning”,该选项只在第一次启动logstash时有效,如果文件已经存在于sincedb的记录内,则此配置无效

stat_interval

number

1

间隔多少秒检查一下文件是否被修改,加大此参数将降低系统负载,但是增加了发现新日志的间隔时间

tags

array


可以在Event中增加标签,以便于在后续的处理流程中使用

type

string

Event的type字段,如果采用elasticsearch做store,在默认情况下将作为elasticsearch的type

file {
    path => ["/var/log/*.log"]
    type => "system"
    start_position => "beginning"
  }

Beats插件: 建立监听服务,接收Filebeat或者其他beat发送的Events

参数

类型

默认值

描述

cipher_suites

array

密码加密算法列表,根据优先级排序

client_inactivity_timeout

number

60

多长时间之后关闭空闲的连接

codec

string

“plain”

输入数据之后对数据进行解码

enable_metric

boolean

true

host

string

“0.0.0.0”

监听的IP地址

id

string


区分两个相同类型的插件,比如两个filter,在使用Monitor API监控是可以区分,建议设置上ID

include_codec_tag

boolean

true

port

number


必须设置项,监听服务监听的端口

ssl

boolean

false

是否启用ssl

ssl_certificate

string


ssl证书路径

ssl_certificate_authorities

array

[]

定义证书文件或者路径列表,当“ssl_verify_mode”被设置为“peer”或者“force_peer”时有效

ssl_handshake_timeout

number

10000

间隔多少毫秒ssl握手超时

ssl_key

string


ssl密钥

ssl_key_passphrase

string


ssl密钥密码

ssl_verify_mode

“none”、”peer”、”force_peer”

none

tags

array


可以在Event中增加标签,以便于在后续的处理流程中使用

tls_max_version

number

1.2

Themaximum TLS version allowed for the encrypted connections. The value must bethe one of the following: 1.0 for TLS 1.0, 1.1 for TLS 1.1, 1.2 for TLS 1.2

tls_min_version

number

1

Theminimum TLS version allowed for the encrypted connections. The value must beone of the following: 1.0 for TLS 1.0, 1.1 for TLS 1.1, 1.2 for TLS 1.2

beats {	
    port => 5044
    codec => "json"
    add_field => {"log_source" =>"beat"}
  }

TCP监听插件: 两种工作模式,“Client”和“Server”,分别用于发送网络数据和监听网络数据

参数

类型

默认值

描述

add_field

hash

{}

用于向Event中添加字段

codec

string

“plain”

输入数据之后对数据进行解码

enable_metric

boolean

true

host

string

“0.0.0.0”

监听的IP地址

id

string


区分两个相同类型的插件,比如两个filter,在使用Monitor API监控是可以区分,建议设置上ID

mode

“server”、“client”

“server”

“server”监听“client”的连接请求,“client”连接“server”

port

number


必须设置项,“server”模式时指定监听端口,“client”模式指定连接端口

proxy_protocol

boolean

false

Proxyprotocol support, only v1 is supported at this time

ssl_cert

string


ssl证书路径

ssl_enable

boolean

false

是否启用ssl

ssl_extra_chain_certs

ssl_key

string


ssl密钥

ssl_key_passphrase

string


ssl密钥密码

ssl_verify

tags

array


可以在Event中增加标签,以便于在后续的处理流程中使用

type

string

Event的type字段,如果采用elasticsearch做store,在默认情况下将作为elasticsearch的type

tcp {  
    mode => "server"  
    host => "0.0.0.0"  
    port => 4567  
    codec => json_lines  
	add_field => {"log_source" =>"tcp"} 
  }

Redis读取插件: 读取Redis中缓存的数据信息

参数

类型

默认值

描述

add_field

hash

{}

用于向Event中添加字段

batch_count

number

125

使用redis的batch特性,需要redis2.6.0或者更新的版本

codec

string

“plain”

输入数据之后对数据进行解码

data_type

list,channel, pattern_channel


必须设置项,根据设置不同,订阅redis使用不同的命令,依次是:BLPOP、SUBSCRIBE、PSUBSCRIBE,需要注意的是“channel”和“pattern_channel”是广播类型,相同的数据会同时发送给订阅了该channel的logstash,也就是说在logstash集群环境下会出现数据重复,集群中的每一个节点都将收到同样的数据,但是在单节点情况

db

number

0

指定使用的redis数据库

enable_metric

boolean

true

host

string

127.0.0.1

redis服务地址

id

string


区分两个相同类型的插件,比如两个filter,在使用Monitor API监控是可以区分,建议设置上ID

key

string


必须设置项,reidslist或者channel的key名称

password

string


redis密码

port

number

6379

redis连接端口号

tags

array


可以在Event中增加标签,以便于在后续的处理流程中使用

threads

number

1

timeout

number

5

redis服务连接超时时间,单位:秒

redis {
    host => "127.0.0.1"
    port => 6379
    data_type => "list"
    key => "log-list"
  }

Syslog监听插件: 监听操作系统syslog信息

参数

类型

默认值

描述

add_field

hash

{}

用于向Event中添加字段

codec

string

“plain”

输入数据之后对数据进行解码

enable_metric

boolean

true

facility_labels

array

[“kernel”,”user-level”, “mail”, “system”,”security/authorization”, “syslogd”, “lineprinter”, “network news”, “UUCP”, “clock”,”security/authorization”, “FTP”, “NTP”, “logaudit”, “log alert”, “clock”, “local0”,”local1”, “local2”, “local3”, “local4”,”local5”, “local6”, “local7”]

Labelsfor facility levels. These are defined in RFC3164.

host

string

“0.0.0.0”

监听地址

id

string


区分两个相同类型的插件,比如两个filter,在使用Monitor API监控是可以区分,建议设置上ID

locale

string


区域设置,类似linux的locale,日期格式设置

port

number

514

监听端口,Remember that ports less than 1024(privileged ports) may require root to use.

proxy_protocol

boolean

false

Proxyprotocol support, only v1 is supported at this time

severity_labels

array

[“Emergency”,”Alert”, “Critical”, “Error”,”Warning”, “Notice”, “Informational”,”Debug”]

Labelsfor severity levels. These are defined in RFC3164.

tags

array


可以在Event中增加标签,以便于在后续的处理流程中使用

timezone

string


指定时区以便格式化日期

type

string


This is the base class for Logstash inputs. Add a type field to all events handled by this input.

use_labels

boolean

true

Uselabel parsing for severity and facility levels.

syslog {
}

3.2 过滤插件

grok正则捕获: 将非结构化数据解析成结构化数据以便于查询的最好工具,非常适合解析syslog,apache log, mysql log,以及一些其他的web log

参数

类型

默认值

描述

add_field

hash

{}

用于向Event中添加字段

add_tag

array


可以在Event中增加标签,以便于在后续的处理流程中使用

break_on_match

boolean

true

match字段存在多个pattern时,当第一个匹配成功后结束后面的匹配,如果想匹配所有的pattern,将此参数设置为false

enable_metric

boolean

true

id

string


区分两个相同类型的插件,比如两个filter,在使用Monitor API监控是可以区分,建议设置上ID

keep_empty_captures

boolean

false

如果为true,捕获失败的字段奖设置为空值

match

array

{}

设置pattern数组: match=> {“message” => [“Duration: %{NUMBER:duration}”,”Speed: %{NUMBER:speed}”]}

named_captures_only

boolean

true

If true, only store named captures from grok.

overwrite

array

[]

覆盖字段内容: match=> { “message” => “%{SYSLOGBASE} %{DATA:message}” } overwrite=> [ “message” ]

patterns_dir

array

[]

指定自定义的pattern文件存放目录,Logstash在启动时会读取文件夹内patterns_files_glob 匹配的所有文件内容

patterns_files_glob

string

“*”

用于匹配patterns_dir中的文件

periodic_flush

boolean

false

定期调用filter的flush方法

remove_field

array

[]

从Event中删除任意字段: remove_field=> [ “foo_%{somefield}” ]

remove_tag

array

[]

删除“tags”中的值: remove_tag=> [ “foo_%{somefield}” ]

tag_on_failure

array

[“_grokparsefailure”]

当没有匹配成功时,将此array添加到“tags”字段内

tag_on_timeout

string

“_groktimeout”

当匹配超时时,将此内容添加到“tags”字段内

timeout_millis

number

30000

设置单个match到超时时间,单位:毫秒,如果设置为0,则不启用超时设置

filter {
  grok {
    match => {"message" => "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}"}
  }
}

date时间处理插件: 该插件用于时间字段的格式转换,我们可以使用此插件用日志发生时间替换掉默认是时间戳的值。

参数

类型

默认值

描述

add_field

hash

{}

用于向Event中添加字段

add_tag

array


可以在Event中增加标签,以便于在后续的处理流程中使用

enable_metric

boolean

true

id

string


区分两个相同类型的插件,比如两个filter,在使用Monitor API监控是可以区分,建议设置上ID

locale

string


区域设置,类似linux的locale,日期格式设置

match

array

[]

时间字段匹配,可自定多种格式,直到匹配到或者匹配结束,格式:[ field,formats… ],如:match=> [ “logdate”, “MMM dd yyyy HH:mm:ss”, “MMM d yyyy HH:mm:ss”, “ISO8601” ]

periodic_flush

boolean

false

定期调用filter的flush方法

remove_field

array

[]

从Event中删除任意字段: remove_field=> [ “foo_%{somefield}” ]

remove_tag

array

[]

删除“tags”中的值: remove_tag=> [ “foo_%{somefield}” ]

tag_on_failure

array

[“_grokparsefailure”]

当没有匹配成功时,将此array添加到“tags”字段内

target

string

“@timestamp”

指定match匹配并且转换为date类型的存储位置(字段),默认覆盖到“@timestamp”

timezone

string


指定时间格式化的时区

mutate数据修改插件: 提供了丰富的基础类型数据处理能力。可以重命名,删除,替换和修改事件中的字段。

参数

类型

默认值

描述

add_field

hash

{}

用于向Event中添加字段

add_tag

array


可以在Event中增加标签,以便于在后续的处理流程中使用

convert

hash


将指定字段转换为指定类型,字段内容是数组,则转换所有数组元素,如果字段内容是hash,则不做任何处理,目前支持的转换类型包括:integer,float, string, and boolean.例如: convert=> { “fieldname” => “integer” }

enable_metric

boolean

true

gsub

array


类似replace方法,使用指定内容替换掉目标字符串的现有内容,前提是目标字段必须是字符串,否则不做任何处理,例如:[ “fieldname”, “/”, ““, “fieldname2”, “[\?#-]”, “.”],解释:使用“”替换掉“fieldname”中的所有“/”,使用“.”替换掉“fieldname2”中的所有“\”“?”、“#”和“-”

id

string


区分两个相同类型的插件,比如两个filter,在使用Monitor API监控是可以区分,建议设置上ID

join

hash


使用指定的符号将array字段的每个元素连接起来,对非array字段无效。例如: 使用“,”将array字段“fieldname”的每一个元素连接成一个字符串: join=> { “fieldname” => “,” }

lowercase

array


将自定的字段值转换为小写

merge

hash


合并两个array或者hash,如果是字符串,将自动转换为一个单元素数组;将一个array和一个hash合并。例如: 将”added_field”合并到”dest_field”: merge=> { “dest_field” => “added_field” }

periodic_flush

boolean

false

定期调用filter的flush方法

remove_field

array

[]

从Event中删除任意字段: remove_field=> [ “foo_%{somefield}” ]

remove_tag

array

[]

删除“tags”中的值: remove_tag=> [ “foo_%{somefield}” ]

rename

hash


修改一个或者多个字段的名称。例如: 将”HOSTORIP”改名为”client_ip”: rename=> { “HOSTORIP” => “client_ip” }

replace

hash


使用新值完整的替换掉指定字段的原内容,支持变量引用。例如: 使用字段“source_host”的内容拼接上字符串“: My new message”之后的结果替换“message”的值: replace=> { “message” => “%{source_host}: My new message” }

split

hash


按照自定的分隔符将字符串字段拆分成array字段,只能作用于string类型的字段。例如: 将“fieldname”的内容按照“,”拆分成数组: split=> { “fieldname” => “,” }

strip

array


去掉字段内容两头的空白字符。例如: 去掉“field1”和“field2”两头的空格: strip=> [“field1”, “field2”]

update

hash


更新现有字段的内容,例如: 将“sample”字段的内容更新为“Mynew message”: update=> { “sample” => “My new message” }

uppercase

array


将字符串转换为大写

JSON插件: 用于解码JSON格式的字符串

参数

类型

默认值

描述

add_field

hash

{}

用于向Event中添加字段

add_tag

array


可以在Event中增加标签,以便于在后续的处理流程中使用

enable_metric

boolean

true

id

string


区分两个相同类型的插件,比如两个filter,在使用Monitor API监控是可以区分,建议设置上ID

periodic_flush

boolean

false

定期调用filter的flush方法

remove_field

array

[]

从Event中删除任意字段: remove_field=> [ “foo_%{somefield}” ]

remove_tag

array

[]

删除“tags”中的值: remove_tag=> [ “foo_%{somefield}” ]

skip_on_invalid_json

boolean

false

是否跳过验证不通过的JSON

source

string


必须设置项,指定需要解码的JSON字符串字段

tag_on_failure

array

[“_grokparsefailure”]

当没有匹配成功时,将此array添加到“tags”字段内

target

string


解析之后的JSON对象所在的字段名称,如果没有,JSON对象的所有字段将挂在根节点下

filter {
    json {
        source => "message"
        target => "jsoncontent"
    }
}

elasticsearch查询过滤插件: 用于查询Elasticsearch中的事件,可将查询结果应用于当前事件中

参数

类型

默认值

描述

add_field

hash

{}

用于向Event中添加字段

add_tag

array


可以在Event中增加标签,以便于在后续的处理流程中使用

ca_file

string


SSL Certificate Authority file path

enable_sort

boolean

true

是否对结果进行排序

fields

array

{}

从老事件中复制字段到新事件中,老事件来源于elasticsearch(用于查询更新)

hosts

array

[“localhost:9200”]

elasticsearch服务列表

index

string

“”

用逗号分隔的elasticsearch索引列表,如果要操作所有所有使用“_all”或者“”,保存数据到elasticsearch时,如果索引不存在会自动以此创建

password

string


密码

periodic_flush

boolean

false

定期调用filter的flush方法

query

string


查询elasticsearch的查询字符串

remove_field

array

[]

从Event中删除任意字段: remove_field=> [ “foo_%{somefield}” ]

remove_tag

array

[]

删除“tags”中的值: remove_tag=> [ “foo_%{somefield}” ]

result_size

number

1

查询elasticsearch时,返回结果的数量

sort

string

“@timestamp:desc”

逗号分隔的“:”列表,用于查询结果排序

ssl

boolean

false

SSL

tag_on_failure

array

[“_grokparsefailure”]

当没有匹配成功时,将此array添加到“tags”字段内

user

string


用户名

3.2 输出插件

ElasticSearch输出插件: 用于将事件信息写入到Elasticsearch中

参数

类型

默认值

描述

absolute_healthcheck_path

boolean

false

当配置了“healthcheck_path”时,决定elasticsearch健康检查URL是否按照绝对路径配置。

absolute_sniffing_path

boolean

false

当配置了“sniffing_path”时,决定elasticsearch的sniffing访问路径配置。

action

string

“index” 对elasticsearch的操作类型,可用的操作类型: index:索引Logstash事件数据到elasticsearch; delete:根据id删除文档,id必须指定; delete:根据id删除文档,id必须指定; update:根据id更新文档

cacert

string


.cer或者.pem证书文件路径,使用证书进行elasticsearch认证

codec

string

“plain”

输入数据之后对数据进行解码

doc_as_upsert

boolean

false

使update启用upsert模式,即文档不存在时创建新文档

document_id

string


elasticsearch中的文档id,用来覆盖已经保存到elasticsearch中的文档

document_type

string


指定存入elasticsearch中的文档的type,没有指定的情况下会使用Event信息中的“type”字段的值作为elasticsearch的type

enable_metric

boolean

true

failure_type_logging_whitelist

array

[]

elasricsearch报错白名单,白名单的异常信息不会被记入logstash的log中

healthcheck_path

string

“/”

elasricsearch检查状态检查路径

hosts

string

[//127.0.0.1]

elasticsearch服务地址列表,如果配置多个将启用负载均衡

id

string


区分两个相同类型的插件,比如两个filter,在使用Monitor API监控是可以区分,建议设置上ID

idle_flush_time

number

1

间隔多长时间将数据输出到elasticsearch中一次,主要用于较慢的事件

index

string

“logstash-%{+YYYY.MM.dd}” 指定elasticsearch存储数据时的所有名称,支持变量引用,比如你可以按天创建索引,方便删除历史数据或者查询制定范围内的数据

keystore

string


用于指定密钥库路径,可以是.jks或者.p12

keystore_password

string


密钥库密码

manage_template

boolean

true

是否启用elasticsearch模版,Logstash自带一个模版,但是只有名称匹配“logstash-*”的索引才会应用该默版

parameters

hash


添加到elasticsearch URL后面的参数键值对

parent

string

“nil”

为文档子节点指定父节点的id

password

string


elasticsearch集群访问密码

path

string


当设置了elasticsearch代理时用此参数从定向HTTP API,如果“hosts”中已经包含此路径,则不需要设置

pipeline

string

“nil”

设置Event管道

pool_max

number

1000

elasticsearch最大连接数

pool_max_per_route

number

100

每个“endpoint”的最大连接数

proxy

string


代理URL

resurrect_delay

number

5

检查挂掉的“endpoint”是否恢复正常的频率

retry_initial_interval

number

2

设置批量重试的时间间隔,重试到 “retry_max_interval”次

retry_max_interval

number

64

Setmax interval in seconds between bulk retries.

retry_on_conflict

number

1

Thenumber of times Elasticsearch should internally retry an update/upserteddocument

routing

string


指定Event路由

script

string

“”

设置“scriptedupdate”模式下的脚本名称

script_lang

string

“painless”

设置脚本语言

script_type

“inline”、“indexed”、 “file”

[“inline”]

Definethe type of script referenced by “script” variable inline :”script” contains inline script indexed : “script” containsthe name of script directly indexed in elasticsearch file : “script”contains the name of script stored in elasticseach’s config directory

script_var_name

string

“event”

Setvariable name passed to script (scripted update)

scripted_upsert

boolean

false

ifenabled, script is in charge of creating non-existent document (scriptedupdate)

ssl

boolean

false

是否启用ssl

template

string


设置自定义的默版存放路径

template_name

string

“logstash”

设置使用的默版名称

template_overwrite

boolean

false

是否始终覆盖现有模版

timeout

number

60

网络超时时间

truststore

string


“:truststore”或者“:cacert”证书库路径

truststore_password

string


证书库密码

user

string

“”

elasticsearch用户名

validate_after_inactivity

number

10000

间隔多长时间保持连接可用

version

string


存入elasticsearch的文档的版本号

version_type

“internal”、“external”、 “external_gt”、 “external_gte”、“force”


workers

string

1

whenwe no longer support the :legacy type This is hacky, but it can only be herne

output {
    elasticsearch {
        hosts => ["127.0.0.1:9200"]
        index => "filebeat-%{+yyyy.MM.dd}"
        template_overwrite => true
    }
}

Redis输出插件: 将Event写入Redis中进行缓存,可以使用Redis作为buffer使用

参数

类型

默认值

描述

batch

boolean

false

是否启用redis的batch模式,仅在data_type=”list”时有效

batch_events

number

50

batch大小,batch达到此大小时执行“RPUSH”

batch_timeout

number

5

batch超时时间,超过这个时间执行“RPUSH”

congestion_interval

number

1

间隔多长时间检查阻塞,如果设置为0,则没个Event检查一次

congestion_threshold

number

0

data_type

“list”、“channel”


存储在redis中的数据类型,如果使用“list”,将采用“RPUSH”操作,如果是“channel”,将采用“PUBLISH”操作

db

number

0

使用的redis数据库编号

host

array

[“127.0.0.1”]

redis服务列表,如果配置多个,将随机选择一个,如果当前的redis服务不可用,将选择下一个

key

string


Thename of a Redis list or channel. Dynamic names are valid here, forexample logstash-%{type}.

password

string


redis服务密码

port

number

6379

redis服务监听端口

reconnect_interval

number

1

连接失败时的重连间隔

shuffle_hosts

boolean

true

Shufflethe host list during Logstash startup.

timeout

number

5

redis连接超时时间

workers

number

1

whenwe no longer support the :legacy type This is hacky, but it can only be herne

File输出插件: 用于将Event输出到文件内

参数

类型

默认值

描述

create_if_deleted

boolean

true

如果目标文件被删除,则在写入事件时创建新文件

dir_mode

number

-1

设置目录的访问权限,如果为“-1”,使用操作系统默认的访问权限

file_mode

number

-1

设置文件的访问权限,如果为“-1”,使用操作系统默认的访问权限

filename_failure

string

“_filepath_failures”

如果指定的文件路径无效,这会在目录内创建这个文件并记录数据

flush_interval

number

2

flush间隔

gzip

boolean

false

是否启用gzip压缩

path

string


必须设置项,文件输出路径,如:path =>”./test-%{+YYYY-MM-dd}.txt”

workers

string

1

whenwe no longer support the :legacy type This is hacky, but it can only be herne

output {
    file {
        path => ...
        codec => line { format => "custom format: %{message}"}
    }
}

TCP插件: 用于TCP将Event输出

参数

类型

默认值

描述

host

string


必须设置项,When mode is server,the address to listen on. When mode is client,the address to connect to.

mode

“server”、“client” “client”

Modeto operate in. server listens forclient connections, client connectsto a server.

port

number


必须设置项,When mode is server, the port tolisten on. When mode is client, the port to connect to.

reconnect_interval

number

10

连接失败时,进程重新连接的事件间隔

tcp {
    host => ...
    port => ...
}