(19)go-micro微服务filebeat收集日志

时间:2023-01-24 09:06:17

  • filebeat是Beats中的一员。

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

  • Filebeat是用于转发和集中日志数据的轻量级传送工具。Filebeat监视您指定的日志文件或位置,收集日志事件,并将它们转发到Elasticsearch或 Logstash进行索引。

二 FileBeat基本组成

  • Prospector (勘测者) :负责管理Harvester并找到所有读取源。

  • Harvester (收割机) :负责读取单个文件内容,每个文件启动-个。

三 FileBeat工作原理

启动Filebeat时,它将启动一个或多个输入,这些输入将在为日志数据指定的位置中查找。对于Filebeat所找到的每个日志,Filebeat都会启动收集器。每个收集器都读取单个日志以获取新内容,并将新日志数据发送到libbeat,libbeat将聚集事件,并将聚集的数据发送到为Filebeat配置的输出。

(19)go-micro微服务filebeat收集日志

四 Filebeat如何记录文件状态:

  • 文件状态记录在文件中 (默认在/ar/ib/filebeat/registry )

  • Filebeat 会记录发送前的最后一行,并再可以连接的时候继续发送

  • 每个 Prospector会为每个找到的文件记录一个状态

  • Filebeat 存储唯一标识符以检测文件是否先前被收集

五 Filebeat如何保证事件至少被输出一次

  • Filebeat 将每个事件的传递状态保存在文件中

  • 在未得到输出方确认时, Filebeat 会尝试-直发送,直到得到回应

  • 任何在Filebeat 关闭之前未确认的事件,都会在filebeat重启之后重新发送

  • 可确保至少发送一次,但有可能会重复

六 安装Filebeat

七 使用Filebeat

filebeat.yml编写

  • 在account目录下新建filebeat.yml ,输入以下代码:
# 输入
filebeat.inputs:
  - type: log
    enabled: true
    paths:
      - ./*.log
# 输出
output.logstash:
  hosts: ["localhost:5044"]
  • 这样,filebeat.yaml就完成了

  • filebeat.exe放到account目录下

  • 启动filebeat.exe:filebeat -e -c filebeat.yml

  • 同级目录下多了一个data文件夹,里面是:

(19)go-micro微服务filebeat收集日志

  • 至此,filebeat收集日志工作就完成啦。

八 最后

  • 至此,go-micro微服务filebeat收集日志工作就正式完成。

  • 接下来就开始Elasticsearch使用的代码编写了,希望大家关注博主和关注专栏,第一时间获取最新内容,每篇博客都干货满满。

欢迎大家加入 夏沫の梦的学习交流群 进行学习交流经验,点击 (19)go-micro微服务filebeat收集日志