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


