构建配置文件

对于要添加到事件处理管道的每种插件类型,Logstash配置文件都有一个独立的配置代码块。例如:

# 部分配置
input {
  ...
}

filter {
  ...
}

output {
  ...
}

每个部分都包含一个或多个插件的配置选项。如果指定多个过滤器,则会按照它们在配置文件中的顺序使用它们。

插件配置

插件的配置包括插件名称,后面紧跟该插件的设置块。例如,以下为配置2个文件输入:

input {
  file {
    path => "/var/log/messages"
    type => "syslog"
  }

  file {
    path => "/var/log/apache/access.log"
    type => "apache"
  }
}

在此示例中,为每个文件输入配置了两个项目:路径和类型。

插件的配置项因插件类型而异。有关各插件的信息,请参阅 第17章-输入插件Input第18章-输出插件Output第19章-过滤器Filter 第20章-编解码器Codec

值类型

插件可能要求设置的值为特定类型,例如布尔值、列表、hash。包含以下类型。

Array

数组类型大多不建议使用类似 string 的标准类型,插件定义 :list => true 属性,为了更好地进行类型检查。仍然需要处理不需要类型检查的hash或混合类型的列表。

例:

users => [{id => 1,name => bob},{id => 2,name => jane}]

Lists

List中的各个元素可以进行类型检查,但List本身不能被检查类型。插件作者可以在声明参数时指定 :list => true 来启用列表检查。

例:

path => [ "/var/log/messages", "/var/log/*.log" ]
uris => [ "http://elastic.co", "http://example.net" ]

此示例配置 path为2个 string 组成的列表,还将 uris 参数配置为URI列表,如果提供的URI全部无效,则失败。

Boolean

布尔值必须为 truefalse。请注意,truefalse 关键字不包含在引号中。

例:

ssl_enable => true

Bytes

字节字段是表示有效字节单位的一个字符串。这是在插件选项中声明特定大小的便捷形式。支持SI(k M G T P E Z Y)和二进制(Ki Mi Gi Ti Pi Ei Zi Yi)单位。二进制单位基数为1024,SI单位基数为1000。此字段不区分大小写,并接受值和单位之间的空格。如果未指定单位,则整数字符串表示字节数。

例:

my_bytes => "1113"   # 1113 bytes
my_bytes => "10MiB"  # 10485760 bytes
my_bytes => "100kib" # 102400 bytes
my_bytes => "180 mb" # 180000000 bytes

Codec

编解码器是用于呈现数据的Logstash编解码器的名称。编解码器可用于输入和输出。

输入编解码器提供在输入数据之前解码数据的便捷方式。输出编解码器提供了在数据离开输出之前进行编码的便捷方式。输入或输出编解码器使用户无需在Logstash管道中使用单独的过滤器。

可以在 第20章-编解码器Codec 页面找到可用的编解码器。

例:

codec =>"json"

Hash

哈希是以 "field1" => "value1" 格式指定的键值对的集合。请注意,多个键值条目使用空格分隔,而不是逗号。

例:

match => {
  "field1" => "value1"
  "field2" => "value2"
  ...
}

Number

数字必须是有效的数值(浮点或整数)。

例:

port => 33

Password

密码是一个具有值但不被打印或作为日志输出的字符串。

例:

my_password =>"密码"

URI

URI可以是完整的URL,如 http://elastic.co/ ,也可以是像 foobar 这样的简单标识符。如果URI包含密码,例如 http://user:pass@example.net,则不会记录或打印URI的密码部分。

例:

my_uri => "http://foo:bar@example.net"

Path

路径是表示有效操作系统路径的字符串。

例:

my_path => "/tmp/logstash"

String

字符串必须是单个字符序列。请注意,字符串值需用引号包括起来,单引号或双引号都可以。

Escape Sequences

默认情况下,不启用转义序列。如果您希望在带引号的字符串中使用转义序列,则需要在logstash.yml中设置 config.support_escapes: true。如果为 true,则引用的字符串(单引号或双引号)将进行转义:

文本 转义结果
\r 回车符 (ASCII 13)
\n 换行符 (ASCII 10)
\t 制表符 (ASCII 9)
\\ 反斜杠 (ASCII 92)
\" 双引号 (ASCII 34)
\' 单引号 (ASCII 39)

例:

name => "Hello world"
name => 'It\'s a beautiful day'

Comments

注释与perl、ruby和python中的注释相同。注释以#字符开头,不需要位于一行的开头。

例:

# 这是注释
input { # 注释可以用在行末
  # ...
}

results matching ""

    No results matching ""