Logstash-配置文件语法

配置文件语法

区段

Logstash 用 {} 来定义区域。区域内可以包括插件区域定义,你可以在一个区域内定义多个插件。插件区域内则可以定义键值对设置。
Logstash 配置一定要有一个 input 和一个 output。在演示过程中,如果没有写明 input,默认就会使用 input/stdin ,同理,没有写明的 output 就是 output/stdout。
示例如下:

input {
  stdin {}
  syslog {}
}

数据类型

类型 举例
bool debug => true
string host => "hostname"
number port => 514
array match => ["datetime", "UNIX", "ISO8601"]
hash options => { key1 => "value1", key2 => "value2" }

注意:如果你用的版本低于 1.2.0,哈希的语法跟数组是一样的,像下面这样写:

match => [ "field1", "pattern1", "field2", "pattern2" ]

字段引用

  • 字段是Logstash::Event对象的属性。
  • 为了与ElasticSearch中的字段对应,故称为字段。
  • 字段支持嵌套。如[geoip][location]
  • 字段支持下标与倒序下标。如[geoip][location][-1]
  • 字段在字符串中引用举例。"the longitude is %{[geoip][location][0]}"

条件判断

  • ==(等于), !=(不等于), <(小于), >(大于), <=(小于等于), >=(大于等于)
  • =~(匹配正则), !~(不匹配正则)
  • in(包含), not in(不包含)
  • and(与), or(或), nand(非与), xor(非或)
  • ()(复合表达式), !()(对复合表达式结果取反)
if "_grokparsefailure" not in [tags] {
  pass
} else if [status] !~ /^2\d\d/ or ( [url] == "/noc.gif" nand [geoip][city] != "beijing" ) {
  pass
} else {
  pass
}

你可能感兴趣的:(Logstash-配置文件语法)