本文档提供Logstash配置文件的详细说明。
您可以通过配置文件管理和Kibana管道管理两种方式,修改Logstash的配置文件,配置管道,完成数据传输。详情请参见配置文件管理和Kibana管道管理。
配置文件结构
# This is a comment. You should use comments to describe
# parts of your configuration.
input {
...
}
filter {
...
}
output {
...
}
每个配置部分,可以包含一个或多个插件。例如,指定多个filter插件,Logstash会按照它们在配置文件中出现的顺序,进行处理。
插件配置
input {
file {
path => "/var/log/messages"
type => "syslog"
}
file {
path => "/var/log/apache/access.log"
type => "apache"
}
}
值类型
配置插件时,您可以设置插件的值类型,例如布尔值、列表、哈希等。插件支持以下值类型。
数组
:list => true
属性,以便更好地进行类型检查。同时仍然需要处理不需要类型检查的哈希表,或者混合类型列表。例如:
users => [ {id => 1, name => bob}, {id => 2, name => jane} ]
列表
:list => true
。例如:
path => [ "/var/log/messages", "/var/log/*.log" ]
uris => [ "http://elastic.co", "http://example.net" ]
以上示例,将path
配置为一个列表,该列表中包含2个字符串。uris
也为一个列表,如果所包含的URL无效,会导致事件处理失败。
布尔类型
ssl_enable => true
字节类型
my_bytes => "1113" # 1113 bytes
my_bytes => "10MiB" # 10485760 bytes
my_bytes => "100kib" # 102400 bytes
my_bytes => "180 mb" # 180000000 bytes
编解码器
编解码器是用于对数据进行编码,或者解码后的目标数据类型,在输入和输出插件中都可以使用。
输入编解码器,提供了在数据输入之前对其进行解码的功能。输出编解码器,提供了在数据输出之前对其进行编码的功能。使用输入或输出编解码器后,您不需要在Logstash管道中,单独使用过滤器。
您可以参考官方提供的编译解释器插件文档,查找可用的编解码器。
例如:
codec => "json"
哈希
哈希格式指定键值对的集合,例如"field1" => "value1"
。
match => {
"field1" => "value1"
"field2" => "value2"
...
}
# or as a single line. No commas between entries:
match => { "field1" => "value1" "field2" => "value2" }
数值
必须是有效的数值(浮点数或整数)。
例如:
port => 33
密码
密码是一个没有记录或打印的单值字符串。
例如:
my_password => "password"
URL
URL可以是任何内容,从完整的URL到简单的标识符(如foobar)。如果URL中包含类似http://user:paas@example.net
的密码,那么密码部分不会被记录或打印。
my_uri => "http://foo:bar@example.net"
路径
路径是代表有效操作系统路径的字符串。
例如:
my_path => “/tmp/logstash”
字符串
字符串必须是单个字符序列,且必须用双引号或单引号括起来。
转义序列
默认情况下,Logstash不启用转义序列。如果您希望在带引号的字符串使用转义序列,需要在logstash.yml中设置config.support_escapes: true
。当设置为true
时,带引号的字符串(双精度和单精度)可以进行一下转换。
文本 | 结果 |
---|---|
\r | 回车(ASCII 13) |
\n | 换行(ASCII 10) |
\t | 跳格(ASCII 9) |
\\ | 反斜杠(ASCII 92) |
\" | 双引号(ASCII 34) |
\' | 单引号(ASCII 39) |
例如:
name => 'It\'s a beautiful day'
在文档使用中是否遇到以下问题
更多建议
匿名提交