FileBeat简单介绍

1.是什么

是一个部署在服务器端的日志收集软件,搜集后可以发送到指定地方
提供了常见后端软件的日志文件模板,方便使用。

2. 解决了什么问题

2.1 日志收集复杂的问题

提供了标准化的日志模板,可以便捷的进行日志收集,不用我们再写那么多日志读取程序了,将我们从复杂的格式转换中拯救出来。

实际上Beats类工具都是解决收集困难问题的工具
Filebeat隶属于Beats。目前Beats包含四种工具:
Packetbeat(搜集网络流量数据)
Topbeat(搜集系统、进程和文件系统级别的 CPU 和内存使用情况等数据)
Filebeat(搜集文件数据)
Winlogbeat(搜集 Windows 事件日志数据)

2.2 logstash对内存、CPU、IO资源消耗较高

Beats在是一个轻量级日志采集器,filebeat是Beats软件集合中的一员。早期的ELK架构中使用Logstash收集、解析日志,但是Logstash对内存、cpu、io等资源消耗比较高。相比Logstash,Beats所占系统的CPU和内存几乎可以忽略不计。

3. 优缺点

3.1 优点

模块化的日志采集
看图,这边内置了好的日志读取的格式,直接改成enable就成(原则上来说是这样,实际上肯定还会有版本不同、配置错误等乱七八糟的问题),然后在filebeat.yml配置文件中配置使用就好了,方便!
Filebeat日志模块.png

3.2 待优化点

需要在以后的实践过程中慢慢回答

4.基本使用

4.1 启动管理

/usr/local/filebeat/filebeat -c /usr/local/filebeat/filebeat.yml
实际上就是找到filebeat文件夹下的filebeat脚本,直接启动了就。
linux老一套启动软件方式。
不同的是,-c 可以更改配置文件路径,比如这句话就是使用的/usr/local/filebeat/路径下的filebeat.yml配置文件。

4.2 配置Filebeat 的输入和输出

  1. <!--配置文件地址--!>
  2. # vim /usr/local/filebeat/filebeat.yml
  3. <!--输入--!>
  4. filebeat.inputs:
  5. ‐ type: log
  6. enabled: true #改
  7. paths:
  8. ‐ /tmp/*.log #改 指定需要收集日志的路径,支持通配符可以写多个
  9. <!--模块化日志文件--!>
  10. filebeat.config.modules: # 内置的收集日志的模块配置文件的存放路径
  11. path: ${path.config}/modules.d/*.yml
  12. reload.enabled: false # 当模块的配置文件有更新时,此程序是否要自动加载,false不加载,true 加载
  13. setup.template.settings:
  14. index.number_of_shards: 1
  15. <!--输出,这里filebeat只能输出一个地方--!>
  16. output.console: #添加 输出到终端即屏幕上
  17. pretty: true
  18. # 输出到 logstash
  19. #output.logstash:
  20. # logstash 的 IP和端口
  21. #hosts: ["172.26.139.148:5044"]
  22. <!--对日志文件输出内容的增删改配置--!>
  23. processors: #改
  24. ‐ add_host_metadata: # 添加此主机的源数据信息到输出数据中,比如 IP MAC OS 等信息
  25. when.not.contains.tags: forwarded

4.3 观察输出

这里会有不同,输出到不同地方是不同的。如果在配置文件中设置console为true的话,就可以在控制台看到输出的json格式的信息。

5.基本原理

5.1 工作流程图

一图胜千言,直接看图就明白了。
filebeat工作流程图.png

6.参考文献

1、filebeat配置文件详情介绍:
ElasticStack7.13.2日志分析平台-ELK分析系统_哔哩哔哩_bilibili
2、filebeat中文指南:
filebeat · ELKstack 中文指南 (elasticsearch.cn)

7.学习疑惑

Q:系统结构我需要知道嘛?
A:这个现在对我来说是封装好、让我们去用的小工具。了解基本配置方法会使用,会排错。后续看情况再学习更深的技术原理。