语法格式

logstash中行为事件,流程:事件---input---codec---filter---codec----output

input{
    #注释
       stdin{
         }

}
    #可以不用写
filter{
}
output{
       elasticsearch{
            hosts => ["ip:9200"]
                index = "test-%{+YYYY.DD.mm}"
         }
         stdout{
            codec => "rubydebug"
         }
}

rsyslog日志收集

input{
   file{
          path => ["/var/log/messages","/var/log/secure"]
                type => "system-log"
                start_postition => "beginning"
     }

 }
 filter{
}
output{
  elasticsearch{
                       hosts => ["ip:9200"]
                                     index => "system-log-%{+YYYY.MM}"
        }
}

es 日志收集

input{
   file{
          path => ["/var/log/messages","/var/log/secure"]
                type => "system-log"
                start_postition => "beginning"
         file{
                    path => "/var/log/elasticsearch/es.log"
                    type => "es-log"
                    start_postition => "beginning"
                    codec => multiline{
                            pattern =>"^\["
                                    negate => true
                                    what => "previous"
                    }
          syslog{
               type => "system-syslog"
                 port => 514
            }
         }
     }

 }
 filter{
}
output{
         if [type]=="system-log"{
             elasticsearch{
                       hosts => ["ip:9200"]
                                     index => "system-log-%{+YYYY.MM}"
        }
        }
         if [type]=="es-log"{
             elasticsearch{
                       hosts => ["ip:9200"]
                                     index => "system-log-%{+YYYY.MM}"
        }
        }
        if [type]=="system-syslog"{
             elasticsearch{
                       hosts => ["ip:9200"]
                                     index => "system-syslog-%{+YYYY.MM}"
        }
        }
        stdout{

          codec => "rubydebug"

        }

}

tcp 日志收集

input{
   tcp{
             type => "tcp"
                 port => "6666"
                 mode => "server"

         }

}

 output{
   stdout{

           codec => rubydebug
         }

 }

filter插件grok学习

55.3.244.1 GET /index.html 15824 0.043

%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}

收集tomcat Apache日志

input{
file {
    path => "/var/log/access_log"
    typ =>"access_log"
    start_postition => "beginning"
    }
}
   filter{
 grok{
     match =>{ "messages" => "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}" }  

     }

     }

}
output{

 elasticsearch{
             hosts => ["ip:9200"]
                     index => "access_log-%{+YYYY.DD.mm}"

     }
 stdout{
             codec => "rubydebug"
     }
}

grok 很耗费性能。一般不这样用。