FileBeat系列---【FileBeat结合Logstash使用】

1.FileBeat和Logstash的对比

注意:FileBeat是go语言写的,可以直接作为一个可执行程序运行,无需依赖 Java 环境。
Filebeat和Logstash都是Elastic Stack(以前称为ELK Stack)的组件,用于日志文件的处理和转发。它们常常一起使用,但是也可以在某些场景下相互替代,这取决于具体需求和环境。
Filebeat 是轻量级的日志文件收集器,设计用来捕获、预处理和转发日志文件给Logstash、Elasticsearch或其他服务。它适用于在服务器上作为代理运行,监听文件系统中的日志文件变动。
Logstash 是一个更强大和多功能的数据处理管道,它可以接收、处理和转发日志,支持多种输入、输出、编解码器以及过滤器插件。

1.1Filebeat替代Logstash的场景

  • 简单的日志收集和转发:如果你只需要简单地收集日志文件并将它们发送到Elasticsearch,而不需要复杂的处理(如数据的过滤、变换、丰富),那么Filebeat足以满足需求。
  • 资源限制:Filebeat比Logstash更轻量级,占用的系统资源更少。如果你的环境资源有限(如在边缘计算环境中),可能会更倾向于使用Filebeat。
  • 集中式处理不必要:如果在每个服务器上预处理数据没有额外的好处,或者你想直接在Elasticsearch中处理数据,那么可以只使用Filebeat。

1.2Logstash的独特优势

  • 复杂的数据处理:当需要执行复杂的数据转换和过滤时,Logstash的各种插件和强大的处理引擎更为合适。
  • 多源聚合:如果你需要处理来自不同源的数据流,并将它们聚合到一个数据存储中,Logstash提供了更多的灵活性。
  • 输出到多个目的地:Logstash可以将数据发送到多个目标,而不仅仅是Elasticsearch。
  • 在某些情况下,Filebeat可以与Logstash配合使用:Filebeat在源头收集日志文件,然后将日志发送到Logstash进行进一步的处理和过滤。最后,处理过的数据可以通过Logstash发送到Elasticsearch或其他存储解决方案。

因此,Filebeat可以在某些场景下替代Logstash,但这取决于你的特定需求。如果需求简单,只需日志收集和转发,Filebeat可能就足够了;如果需要复杂的处理,那么Logstash可能更适合。

2.FileBeat结合Logstash使用

2.1下载FileBeat安装包

一般根据es的版本来确定FileBeat的版本,一般保持一致即可。
FileBeat和es版本对应关系:https://www.elastic.co/cn/support/matrix#matrix_compatibility
FileBeat下载地址:https://www.elastic.co/cn/downloads/past-releases/filebeat-7-8-0

2.2上传并解压

tar -zxvf filebeat-7.8.0-linux-x86_64.tar.gz

2.3修改Logstash的配置文件logstash.conf

input {
  #特别注意(重点):这行配置指定了Beats客户端(如Filebeat)可以通过端口5044发送数据到Logstash。这是Beats的默认端口。
  beats {
    port => 5044
  }
  tcp {
    #这行配置指定了一个TCP端口,其他系统或应用程序可以通过这个端口发送JSON格式的数据到Logstash。
    port => 4569
    #这行配置指定了输入数据将使用json编解码器进行解析。这意味着传入的数据应该是JSON格式,Logstash会自动将其解析为事件数据。
    codec => "json"
  }
}

output {
  if[appname] != "" {
    elasticsearch {
      hosts => ["http://192.168.0.137:9200"]
      index => "%{[appName]}-%{+YYYY.MM.dd}"
    }
  } else {
    elasticsearch {
      hosts => ["http://192.168.0.137:9200"]
      #当appname字段不存在或为空时,使用@metadata中的beat和version字段来构建索引名,并且包括当前日期。这通常是由Beats设置的内部字段。
      index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
    }
  }
}

2.4修改filebeat的配置文件filebeat.yml

主要配置的是日志的搜集目录为/var/log/service.log,这个目录是应用 service 输出日志的文件。输出到 logstsh 的地址为 192.168.0.137。

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/service.log
output.logstash:
  hosts: ["192.168.0.137:5044"]

3.启动FileBeat

./filebeat -e >filebeat.log 2>&1 &
  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值