Logstash的config file

Logstash的事件处理分为3个阶段: inputs (生成事件) --> filters (修改事件) --> outputs (输出修改后的时间到其他地方)。

因此Logstash的config file结构如下:

input { ...}

filter { ...}

output { ...}

Logstash运行时可以指定config文件,也可以指定config目录(有一个或多个config文件),因此可以把所有config写在一个文件里,也可以把config分散写到若干个小的文件里。

那么问题来了,例如如果有多个config(多个input或多个filter),怎样来控制它们被执行的顺序呢?

答案是Logstash是按照config file的文件名,按照字母顺序合并了所有的config file,然后才处理的。

比如我有以下3个filter:
filter_2_grep_ignore_debug

filter { 
 if ("[D|d]ebug|DEBUG" in [@message]){ 
  drop { } 
 }
}

filter_10_grok_nova

filter { 
 if [type] == "nova" { 
  grok { 
   match => { "message" => ['%{NOVAWSGINEW}', '%{NOVACAPACITY}', '%{NOVAGENERAL}']} 
   patterns_dir => ['/etc/logstash/agent/patterns'] 
  } 
 }
}

filter_10_mutate_pki-token-filter

filter { 
 mutate { 
  gsub => ['@message', 'MII[^\'|"]*', '*****'] 
 }
}

最后Logstash最终其实按照这3个filter的名字的字母顺序,即先filter_2_grep_ignore_debug, 后filter_10_grok_nova, 最后filter_10_mutate_pki-token-filter,合并成了1个filter来供后续使用。

filter { 
 if ("[D|d]ebug|DEBUG" in [@message]){ 
  drop { } 
 } 
 
 if [type] == "nova" { 
  grok { 
   match => { "message" => ['%{NOVAWSGINEW}', '%{NOVACAPACITY}', '%{NOVAGENERAL}']} 
   patterns_dir => ['/etc/logstash/agent/patterns'] 
  } 
 } 

 mutate { 
  gsub => ['@message', 'MII[^\'|"]*', '*****'] 
 }
}

因此在有多个config文件的情况下,根据你想要的执行顺序来为每个config文件命名是非常重要的。
如果使用puppet-logstash来生成config文件的话,�注意使用order属性。这个order就是文件名中的数字。
例如:

logstash::configfile { 'mutate_pki_token':  
 content => 'filter { mutate { gsub => [\'@message\', \'MII[^\'|"]*\', \'*****\'] } } ',      
 order   => 20,
}

Reference

  1. http://logz.io/blog/5-logstash-pitfalls-and-how-to-avoid-them/

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 104,922评论 12 126
  • 本人陆陆续续接触了ELK的1.4,2.0,2.4,5.0,5.2版本,可以说前面使用当中一直没有太多感触,最近使用...
    三杯水Plus阅读 3,314评论 0 12
  • 发现packstack才是安装openstack环境最安逸的方式 配置环境为英文环境 配置yum源 安装PackS...
    drfung阅读 1,806评论 1 2
  • 我有多爱你? 也许正像冯唐所说, 我的时间被你分成两半: 你在的时候和你不在的时候; 我认识的人被你分成两半: 是...
    Ian1989阅读 30评论 0 0
  • 学徒杨小胖的开发随笔: piglikeyoung.com/page/2/
    阿良天界阅读 47评论 0 0