隶属于Beats,轻量级数据收集引擎。基于原先 Logstash-fowarder 的源码改造出来。换句话说:Filebeat就是新版的 Logstash-fowarder,也会是 ELK Stack 在 Agent 的第一选择,目前Beats包含四种工具:
- 1.Packetbeat(搜集网络流量数据)
- 2.Metricbeat(搜集系统、进程和文件系统级别的 CPU 和内存使用情况等数据。)
- 3.Filebeat(搜集文件数据)
- 4.Winlogbeat(搜集 Windows 日志数据)
为什么用 Filebeat ,而不用原来的 Logstash 呢?
原因很简单,资源消耗比较大。
**由于 Logstash 是跑在 JVM 上面,资源消耗比较大,后来作者用 GO 写了一个功能较少但是资源消耗也小的轻量级的 Agent 叫 Logstash-forwarder。**后来作者加入 elastic.co 公司, Logstash-forwarder 的开发工作给公司内部 GO 团队来搞,最后命名为 Filebeat。
[root@hd-kib-3 ~]# tar xzf filebeat-6.5.4-linux-x86_64.tar.gz -C /usr/local/
[root@hd-kib-3 ~]# cd /usr/local/
[root@hd-kib-3 local]# mv filebeat-6.5.4-linux-x86_64/ filebeat
[root@hd-kib-3 ~]# cd /usr/local/
[root@hd-kib-3 local]# mv filebeat-6.5.4-linux-x86_64/ filebeat
[root@hd-kib-3 local]# cd filebeat/
[root@hd-kib-3 filebeat]# cp filebeat.yml filebeat.yml.bk
[root@hd-kib-3 filebeat]# vim filebeat.yml
[root@hd-kib-3 filebeat]# cat filebeat.yml
filebeat.prospectors:
- input_type: log #指定输入的类型
paths:
- /var/log/nginx/*.log #日志的路径
json.keys_under_root: true
json.add_error_key: true
json.message_key: log
output.kafka:
hosts: ["192.168.1.14:9092","192.168.1.15:9092","192.168.1.12:9092"]
topic: 'nginx' #输出到kafka中的topic
[root@hd-kib-3 filebeat]# vim /etc/nginx/nginx.conf #配置nginx日志格式
log_format json '{"@timestamp":"$time_iso8601",'
'"@version":"1",'
'"client":"$remote_addr",'
'"url":"$uri",'
'"status":"$status",'
'"domain":"$host",'
'"host":"$server_addr",'
'"size":$body_bytes_sent,'
'"responsetime":$request_time,'
'"referer": "$http_referer",'
'"ua": "$http_user_agent"'
'}';
access_log /var/log/nginx/access_json.log json;
[root@hd-kib-3 filebeat]# nginx -t
[root@hd-kib-3 filebeat]# nginx -s reload
###启动
[root@hd-kib-3 filebeat]# nohup ./filebeat -e -c filebeat.yml &
[root@hd-kib-3 filebeat]# tail -f nohup.out
2020-03-31T20:47:57.498+0800 INFO kafka/log.go:53 producer/broker/3 state change to [open] on nginx/4
2020-03-31T20:47:57.498+0800 INFO kafka/log.go:53 producer/broker/3 state change to [open] on nginx/1
2020-03-31T20:47:57.500+0800 INFO kafka/log.go:53 Connected to broker at 192.168.1.14:9092 (registered as #1)
2020-03-31T20:47:57.505+0800 INFO kafka/log.go:53 Connected to broker at 192.168.1.15:9092 (registered as #2)
2020-03-31T20:47:57.512+0800 INFO kafka/log.go:53 Connected to broker at 192.168.1.12:9092 (registered as #3)
...
#在192.168.1.14验证kafka是否生成topic
[root@master-es-1 kafka]# bin/kafka-topics.sh --zookeeper localhost:2181 --list
__consumer_offsets
nginx #可以看到已经生成topic
testtopic
###访问head插件测试http://192.168.1.12:9100/
###登陆到kibanahttp://192.168.1.12/