类似flume, 但功能更为强大
Filebeat是一个日志文件托运工具,在你的服务器上安装客户端后,filebeat会监控日志目录或者指定的日志文件,追踪读取这些文件(追踪文件的变化,不停的读),并且转发这些信息到elasticsearch或者logstarsh中存放。
当你开启filebeat程序的时候,它会启动一个或多个探测器(prospectors)去检测你指定的日志目录或文件,对于探测器找出的每一个日志文件,filebeat启动收割进程(harvester),每一个收割进程读取一个日志文件的新内容,并发送这些新的日志数据到处理程序(spooler),处理程序会集合这些事件,最后filebeat会发送集合的数据到你指定的地点。
安装配置:
filebeat的安装配置非常简单
1, 下载
这儿使用的版本是 5.5.2
2, 定义日志路径配置
进入到解压目录下, 然后修改 filebeat.yml
- input_type: log # Paths that should be crawled and fetched. Glob based paths.
paths:
- /var/log/nginx/*.log
#- c:\programdata\elasticsearch\logs\*
encoding: utf-8
document_type: my-nginx-log
scan_frequency: 5s
harvester_buffer_size: 16384
max_bytes: 10485760
tail_files: true
#exclude_lines: ["^DBG"]
#include_lines: ["^ERR", "^WARN"]
这儿可以配置多个路径, 并且使用正则进行日志抽取时的过滤
3, 输出日志路径:
filebeat的输出可以有多种目的地, es, logstash
elasticsearch:
#-------------------------- Elasticsearch output ------------------------------
#output.elasticsearch:
# Array of hosts to connect to.
# hosts: ["localhost:9200"] # Optional protocol and basic auth credentials.
#protocol: "https"
#username: "elastic"
#password: "changeme"
logstash:
#----------------------------- Logstash output --------------------------------
output.logstash:
# The Logstash hosts
hosts: ["www.wenbronk.com:5044"]
4, 启动logstash
nohup ./filebeat -c ./filebeat.yml &
logstash 和 filebeat 连通:
这儿我们以 nginx的日志为例, nginx的安装可见:
http://www.cnblogs.com/wenbronk/p/6557482.html
1, 配置logstash并启动
input {
beats {
port => ""
}
}
output {
stdout {
codec => rubydebug
}
}
启动:
./bin/logstash -f ./config/logstash_conf.conf
2, 配置filebeat并启动
cat filebeat.yml | grep -v '^$' | grep -v '#'