概述:Filebeat是一个日志文件托运工具,在你的服务器上安装客户端后,filebeat会监控日志目录或者指定的日志文件,追踪读取这些文件(追踪文件的变化,不停的读),并且转发这些信息到elasticsearch、logstarsh或者redis中存放。
相关连接
- 下载地址 https://www.elastic.co/downloads/beats/filebeat
- 官方文档 https://www.elastic.co/guide/en/beats/filebeat/current/index.html
一、filebeat安装
本次安装filebeat使用的是已经下载至本地的tar包,只需要解压即可使用。
tar xf filebeat-6.2.2-linux-x86_64.tar.gz
filebeat可以起多个进程,运行依赖于.yml 配置文件。文件中定义filebeat读取的日志文件,以及输出方式。安装完成之后,会有一个模板 filebeat.yml,我们可以自定义 .yml 文件的名称,只需要启动的时候接入配置文件即可。
启动多个进程,需要使用参数 --path.data /xxx/xxx 来重定向进程路径。
二、应用场景
场景一:Filebeat采集数据,写入到logstash
filebeat配置文件:out-logstash.yml
filebeat: prospectors: - paths: - /var/log/named/namequery.log output.logstash: hosts: ["logstashIP:5044"]
启动filebeat
./filebeat -e -c out-logstash.yml --path.data /apps/data/filebeat/out-logstash/
logstash配置
input { beats { port => 5044 } } output { stdout { codec => "rubydebug" } }
场景二:Filebeat采集数据,写入到redis,然后logstash从reids队列中拉取数据
filebeat配置文件:out-redis.yml
filebeat: prospectors: - paths: - /var/log/named/namequery.log output.redis: hosts: ["redis_1IP","redis_2IP","redis_3IP"] loadbalance: false # 数据只是往一个redis里丢,如果这个redis挂了,就会自动将数据丢在另一个redis中,如果为yes,则将数据均分到各个redis中 port: 6379 key: "dns-ct" db: 0 timeout: 3
启动filebeat
./filebeat -e -c out-redis.yml --path.data /apps/data/filebeat/out-redis/
logstash配置
此处需要进行解释,第二套应用场景是将一个文件丢如三个redis,因为为开启负载均衡,所以只会有一个redis读取到文件,而安装部署的时候就将每台服务器安装了logstash和redis,并且logstash将数据处理之后将数据全部输出至同一个es集群。
input { redis { host => "localredisIP" port => 6379 key => "dns-ct" data_type => "list" } }
output {
stdout {
codec => "rubydebug"
}
}