3Logstash 介绍 · SpringCloud微服务实战 · 看云

导航

Logstash 是一个接收,处理,转发日志的工具。支持系统日志,webserver 日志,错误日志,应用日志,总之包括所有可以抛出来的日志类型。在一个典型的使用场景下(ELK):用 Elasticsearch 作为后台数据的存储,kibana用来前端的报表展示。Logstash 在其过程中担任搬运工的角色,它为数据存储,报表查询和日志解析创建了一个功能强大的管道链。Logstash 提供了多种多样的 input,filters,codecs 和 output 组件,让使用者轻松实现强大的功能。

1. 创建logstash 配置文件

日志文件放在了附件中,已经上传群文件中。
进入conf文件夹里面,创建配置文件logstash-test.conf

#读取log文件
input{
  file{
        #设置log文件路径,多个文件路径可设置成数组[],模糊匹配用*
        #指定同级目录模糊匹配
        path => "D:/log/fw-cloud-mq-rabbitmq/info/*.log"
        #指定数组文件
        #path => ["D:/log/fw-cloud-mq-rabbitmq/info/test-1.log","D:/log/fw-cloud-mq-rabbitmq/info/test-2.log"]
        #指定单一文件
        #path => "D:/log/fw-cloud-mq-rabbitmq/info/test*.log"
        #指定多级目录模糊匹配
        #path => "D:/log/fw-cloud-mq-rabbitmq/info/**/test*.log"
      
        #可设置成begining或end,begining表示从头开始读取文件,end表示读取最新数据,可和ignore_older一起使用
        #begining只针对首次启动是否需要读取所有的历史数据,而当文件修改了之后,同样会自动增量更新新数据
        start_position =>"beginning"
      
        #设置输入规则
        codec => multiline {
            #利用正则匹配规则,匹配每一行开始的位置,这里匹配每一行开始的位置为数字
            pattern => "^[0-9]"
     
            #true表示不匹配正则表达式,false为匹配正则表达式,默认false
            #如果不匹配,则会结合what参数,进行合并操作
            negate => true
            
            #what可设置previous和next,previous则表示将所有不匹配的数据都合并到上一个正则事件
            #而next则相反,将所有的不匹配的数据都合并到下一个正则事件
            what => "previous"
 
            #表示当多长时间没有新的数据,最后一个正则匹配积累的多行数据都归属为最后一个事件,这里的10表示10秒
            #auto_flush_interval => 10
       }
       
       #当存在多个文件的时候可使用type指定输入输出路径
       type=>"log_index"
       
  }
}
    
#输出log文件
output{
    #输出控制台
    stdout {
        #codec => json
    }
    
    #输出到es
    if[type] == "log_index"{
        elasticsearch{
            hosts=>["localhost:9200"]
            
            #以当前的日期作为index和type
            index=>"log-%{+YYYY.MM.dd}"
            document_type=>"log-%{+YYYY.MM.dd}"
            
        }
    }
}

2. 启动logstash

通过cmd进入bin目录,输入 logstash -f ..\config\logstash-test.conf
983ba919afe509c7626ba599c18eb35c_MD5.png

3. 创建 index pattern

04ce70d11e359923a82f3a2698a04af1_MD5.png

4. 通过 Discover 显示日志

10996e7453dca4c873a8808c18ef96ae_MD5.png