简介

Filebeat是一个轻量级日志传输Agent,可以将指定日志转发到Logstash、Elasticsearch、Kafka、Redis等中。Filebeat占用资源少,而且安装配置也比较简单,支持目前各类主流OS及Docker平台。

具体可以参考官网:https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-getting-started.html

配置示例

根据使用版本参考官网,5.x和6.x略有区别。

1.定义日志路径:

5.x:

filebeat.prospectors:
- input_type: log
  paths:
    - /var/log/*.log
    #- c:\programdata\elasticsearch\logs\*


6.x:

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/*.log
    #- c:\programdata\elasticsearch\logs\*

注:/var/log/*/*.log可以抓取子目录下的.log后缀的所有日志,不抓取/var/log本目录下的日志。目前不支持递归抓取目录下所有子目录中的所有日志


2.配置output

直接输出到Elasticsearch

output.elasticsearch:
  hosts: ["myEShost:9200"]

6.x中新增:

如果使用kibana dashboard的filebeat模板,就配置kibana endpoint。如果Elasticsearch和Kibana部署在一起,这一步可以跳过。

setup.kibana:
  host: "mykibanahost:5601"


配置filebeat使用Logstash

前提条件:使用Logstash作为output来对filebeat收集的数据进行附加处理,必须先配置Logstash来接收filebeat发来的事件。5和6也是有区别的,下面以5.x为例。

beat发送事件到Logstash,Logstash使用beats input插件接收到事件后,使用Elasticsearch output插件发送到Elasticsearch。这个插件使用API可以很有效率的建索引。Logstash监听5044端口接收beat传输并在索引到Elasticsearch中。下面这种配置其实和Beat直接发送到Elasticsearch其实一样。Logstash可以收集、丰富转换数据,具体参考Logstash介绍。

#----------------------------- Logstash配置--------------------------------

input {
  beats {
    port => 5044
  }
}

# The filter part of this file is commented out to indicate that it is
# optional.
# filter {
#
# }

output {
  elasticsearch {
    hosts => "localhost:9200"
    manage_template => false
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"     #比如"logstash-nginx-access-%{+YYYY.MM.dd}"  
    document_type => "%{[@metadata][type]}" 
  }
}

#-------------------Filebeat---------- Logstash output --------------------------------
output.logstash:
  hosts: ["127.0.0.1:5044"]


配置Kafka Output

发送事件到Kafka:
output.kafka:
  # initial brokers for reading cluster metadata
  hosts: ["kafka1:9092", "kafka2:9092", "kafka3:9092"]

  # message topic selection + partitioning
  topic: '%{[type]}'
  partition.round_robin:
    reachable_only: false

  required_acks: 1
  compression: gzip
  max_message_bytes: 1000000

Elasticsearch中加载index template

如果启用Elasticsearch output,默认filebeat会自动加载推荐的模板文件filebeat.template.json。可以通过如下配置不同的模板。

output.elasticsearch:
  hosts: ["localhost:9200"]
  template.name: "filebeat"
  template.path: "filebeat.template.json"
  template.overwrite: false

 

 

 

 

 

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐