Logstash

概述
Logstash是一个用ruby开发的开源工具,他可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜索)。Logstash在其过程中担任搬运工的角色,它为数据存储,报表查询和日志解析创建了一个功能强大的管道链。Logstash提供了多种多样的inputfilterscodecsoutput组件,让使用者轻松实现强大的功能。
Logstash安装

tar -zxvf logstash-5.4.1.tar.gz mv logstash-5.4.1 /usr/local/logstash/ #测试 ./bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}' ./bin/logstash -f test.conf #配置文件启动

核心配置之input output
  1. client 日志生产服务器client.conf
input { file { path => "/var/log/aliyun-util.log" start_position => beginning } } output { stdout { codec => rubydebug } }

2.Syslog系统日志之Syslog.conf
input { tcp { port => 5000 type => syslog } udp { port => 5000 type => syslog } } output { elasticsearch { host => localhost:9200 } stdout { codec => rubydebug } } 在`windows`打开`cmd` telnet localhost 5000 访问端口

核心配置之filters
filters是一个行处理机制将提供的为格式化的数据整理成你需要的数据,让我们看看下面的一个例子,叫grok filter的过滤器。
filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}" } } date { match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ] } }

filter { if [path] =~ "access" { mutate { replace => { type => "apache_access" } } grok { match => { "message" => "%{COMBINEDAPACHELOG}" } } date { match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ] } } else if [path] =~ "error" { mutate { replace => { type => "apache_error" } } } else { mutate { replace => { type => "random_logs" } } } }

Beats代理
【Logstash】?Beatselasticsearch公司开源的一款采集系统监控数据的代理agent。官方推荐用Beats来进行监控,然后推送给logstash,或者直接推送给elasticsearch
  1. Filebeat用于监控、收集服务器日志文件,其已取代 logstash forwarder
tar -zxvf filebeat-5.4.1-linux-x86_64.tar.gz mv filebeat-5.4.1-linux-x86_64 /usr/local/filebeat/ vim filebeat.yml filebeat.prospectors: input_type: log C:/Java Work/My-SpringBoot-Learning/log_mongoDB/*.log output.elasticsearch:

    推荐阅读