美文网首页
Logstash的config file

Logstash的config file

作者: 秦梦 | 来源:发表于2016-05-06 09:54 被阅读676次

    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/

    相关文章

      网友评论

          本文标题:Logstash的config file

          本文链接:https://www.haomeiwen.com/subject/lbfjrttx.html