ELKF日志学习(四)FileBeat基础配置

FileBeat是一款轻量级的日志收集工具,由 Elastic 公司开发,用于替代资源消耗较大的 Logstash-forwarder。它可以从多个系统日志中收集数据,并发送到Elasticsearch、Logstash、Kafka等输出目标。配置文件中,`inputs`定义了日志源,`fields`允许自定义字段以标识来源,`output`则设置日志输出的目的地,如Logstash。当有多个Logstash服务器时,可以使用`loadbalance`实现负载均衡。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

在 《ELKF日志学习(一)前言》 中介绍过 FileBeat,是一个轻量级的开源日志文件数据搜集器,负责对服务的日志进行收集。

因为 logstashjvm 跑的,资源消耗比较大,所以后来作者又用 golang 写了一个功能较少但是资源消耗也小的轻量级的 logstash-forwarder
不过作者只是一个人,加入 http://elastic.co 公司以后,因为 es 公司本身还收购了另一个开源项目 packetbeat,而这个项目专门就是用 golang 的,有整个团队,所以 es 公司干脆把 logstash-forwarder 的开发工作也合并到同一个 golang 团队来搞,于是新的项目就叫 FileBeat 了。
摘自:《一篇文章搞懂filebeat(ELK)》 - HZhuizai

代码仓库

talk-lucky/elkf-study

实际应用

个人觉得,学习是为了更好的运用,所以直接在这里写上 FileBeat 在实际中的应用。

举个例子:

我们有 webapicron 三个系统,我们需要收集这几个系统的日志。

只需要在每个服务中安装启动 FileBeat,配置好监听的文件,一旦文件发生变化,写入指定的位置。

如果是 Docker 服务,只需要共享服务的日志文件,将 FileBeat 单独放在一个容器中运行即可(每个单独的服务配置一个)。

工作原理

Filebeat 根据用户指定的配置 input,读取文件,一个文件一个 harvester

其中,input 是管理 harvester 的;harvester 的作用是逐行读取文件,并把内容发送到输出。

Filebeat 会记住每个文件的状态,及 harvester 读取的最后一个偏移量(即位置)。

输出 可以是 ElasticsearchKafkaLogstashredis 等。

在这里插入图片描述

配置解析

输入配置

这里指定输入类型为 log,且路径是 /var/log/nginx/access.log

filebeat.inputs:
  - type: log
    enabled: true
    paths:
      - /var/log/nginx/access.log

为了能够方便后续的识别,这里添加一个来源。

这里的 fields 是自定义的,你可以按照自己团队的规范定义。

filebeat.inputs:
  - type: log
    enabled: true
    fields:
      source: nginx_access_log
    paths:
      - /var/log/nginx/access.log

输出配置

上述已经说明了,我们可以输出的类型有很多,这里配置一下 Logstash

output.logstash:
  hosts: ['logstash:5044']

扩展一下,如果有多个 Logstash 服务,该如何配置?

答:使用 loadbalance: true

output.logstash:
  hosts: ['logstash:5044', 'logstash1:5044']
  loadbalance: true

最后

到此为止,FileBeat 的基础配置是介绍结束了。

它难道就这一点功能么?

NO!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值