在配置ELK堆栈以分析Apache Tomcat日志的文章中,我们配置了Logstash从目录中提取数据,而在本文中,我们将配置Filebeat将数据推送到Logstash。 在配置之前,让我们简要介绍为什么需要Filebeat。
为什么要使用Filebeat?
Filebeat有助于分散服务器的位置,从而从处理日志的位置生成日志,从而分担一台计算机的负载。
现在,让我们从配置开始,执行以下步骤:
第1步:下载和提取Filebeat在任意目录,对我来说这filebeat下目录/用户/ ArpitAggarwal /如下:
$ mkdir filebeat
$ cd filebeat
$ wget https://download.elastic.co/beats/filebeat/filebeat-1.0.0-darwin.tgz
$ tar -xvzf filebeat-1.0.0-darwin.tgz
步骤2:将目录/Users/ArpitAggarwal/filebeat/filebeat-1.0.0-darwin/中的filebeat.yml内容替换为以下内容:
filebeat:
prospectors:
-
paths:
- /Users/ArpitAggarwal/tomcat/logs/*.log*"
input_type: log
document_type: my_log
output:
logstash:
hosts: ["localhost:5000"]
console:
pretty: true
shipper:
logging:
files:
rotateeverybytes: 10485760 # = 10MB
上面指定的paths标记是要从中提取数据的位置。 上面指定的document_type是在logstash配置的“类型”字段中发布的类型。
步骤3:启动filebeat作为后台进程,如下所示:
$ cd filebeat/filebeat-1.0.0-darwin
$ ./filebeat -c filebeat.yml &
步骤4:将 Logstash配置为从filebeat接收数据并将其输出到在localhost上运行的ElasticSearch。 做同样的,创建一个目录,我们将创建logstash配置文件,对我来说这logstash目录下/用户创建/ ArpitAggarwal /如下:
$ cd /Users/ArpitAggarwal/
$ mkdir logstash patterns
$ cd logstash
$ touch logstash.conf
$ cd ../patterns
$ touch grok-patterns.txt
将以下内容复制到logstash.conf :
input {
beats {
type => beats
port => 5000
}
}
filter {
multiline {
patterns_dir => "/Users/ArpitAggarwal/logstash/patterns"
pattern => "\[%{TOMCAT_DATESTAMP}"
what => "previous"
}
if [type] == "my_log" and "com.test.controller.log.LogController" in [message] {
mutate {
add_tag => [ "MY_LOG" ]
}
if "_grokparsefailure" in [tags] {
drop { }
}
date {
match => [ "timestamp", "UNIX_MS" ]
target => "@timestamp"
}
} else {
drop { }
}
}
output {
stdout {
codec => rubydebug
}
if [type] == "my_log" {
elasticsearch {
manage_template => false
hosts => ["localhost:9201"]
}
}
}
接下来,将内容从文件https://github.com/elastic/logstash/blob/v1.2.2/patterns/grok-patterns复制到patterns / grok-patterns.txt
步骤5:下载Logstash并将其解压缩到任何目录中,对我来说,它是在/ Users / ArpitAggarwal /目录下的logstash安装 ,如下所示:
$ wget https://download.elastic.co/logstash/logstash/logstash-2.1.0.zip
$ unzip logstash-2.1.0.zip
步骤6:使用以下命令验证logstash配置文件:
$ cd /Users/ArpitAggarwal/logstash-installation/logstash-2.1.0/bin
$ ./logstash -f /Users/ArpitAggarwal/logstash/logstash.conf --configtest --verbose —debug
步骤7:安装logstash-input-beats插件并启动Logstash作为后台进程,以将数据推送到从Filebeat接收的ElasticSearch中 ,如下所示:
$ cd /Users/ArpitAggarwal/logstash-installation/logstash-2.1.0/bin
$ ./plugin install logstash-input-beats
$ ./logstash -f /Users/ArpitAggarwal/logstash/logstash.conf &
翻译自: https://www.javacodegeeks.com/2015/12/configuring-logstash-filebeat.html