Filebeat

1. 介绍

  Beats是用于单用途数据托运人的平台。它们以轻量级代理的形式安装,并将来自成百上千台机器的数据发送到Logstash或Elasticsearch。(画外音:通俗地理解,就是采集数据,并上报到Logstash或Elasticsearch)

  Filebeat是一个开源的文件收集器,也是一款轻量级的日志传输工具。采用go语言开发,重构logstash采集器源码,安装在服务器上作为代理来监视日志目录或特定的日志文件,并把它们发送到logstash或elasticsearch,然后在Kibana上实现可视化。

  Beats对于收集数据非常有用。它们位于你的服务器上,将数据集中在Elasticsearch中,Beats也可以发送到Logstash来进行转换和解析。

  为了捕捉(捕获)数据,Elastic提供了各种Beats:

Audit Auditbeat
Log files Filebeat
Availability Heartbeat
Metrics Metricbeat
Network traffic Packetbeat
Windows event logs Windowsbeat

  Beats可以直接(或者通过Logstash)将数据发送到Elasticsearch,在那里你可以进一步处理和增强数据,然后在Kibana中将其可视化。

kibana界面

https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-configuration-details.html#configuration-outputhttps://www.elastic.co/guide/en/beats/filebeat/current/filebeat-configuration-details.html#configuration-output

2. filebeat 语法

2.1 input 配置

  • yaml语法
  • input_type
log
stdin

demo

filebeat.prospectors:
  - input_type:log
    paths:
      - /var/log/apache/httpd-*.log
  - input_type:log
    paths:
      - /var/log/message
      - /var/log/*.log

2.2 output 配置

  • console
  • elasticsearch
  • logstash
  • kafka
  • redis
  • file
output.elasticsearch:
  hosts:["master:9200"]
  username:"admin"
  password:"cmz"

output.console:
  pretty:true

2.3 filter 配置

  • input时候处理
Include_lines
exclude_lines
exclude_files
  • output前处理 -- Processor
drop_event
drop_fields
Decode_json_fields
Include_fields

demo

processor:
  - drop_event:
    when:
      regexp:
        message: "^DBG:"

消息已DBG开头的就丢弃,也就是丢掉debug的日志

demo

processor:
  - decode_json_fields:
    fields:["inner"]
{"outer":"value","inner":"{\"data\":\"value\"}"}
                |
                V
{"outer":"value","inner":"{"data":"value"}"}