Beats及Filebeat轻量型日志采集器

摘要:
5.心跳健康检查。下图显示了Beats在整个ElasticStack中的位置。Filebeat是什么?Filebeat是用go语言开发的日志发送程序。它主要处理日志文件。它属于Beats系列,用于将不同类型的数据传输到ELK堆栈进行分析。每个Beat专门用于传输不同类型的信息,如Winlogbeat发布Windows事件日志、Metricbeat发布主机指示符等。上图显示了Filebeat的结构。如果文件在读取时被删除或重命名,Filebeat将继续读取文件。Filebean演示-通过stdin收集Nginx日志。

Beats简介

  Beats被官方称为Lightweight Data Shipper,就是轻量级数据传送者,它主要有几个分类,如下:

    1. Filebeats日志文件,主要是针对日志文件。

    2. Metricbeat度量数据,主要可以收集CPU等数据,内存,磁盘,服务器软件(如nginx,Mysql等)。

    3. Packetbeat网络数据,主要收集网络数据。

    4. Winlogbeat Windows数据,针对windows系统日志数据。

    5. Heartbeat健康检查。  

     下图是Beats在整个Elastic Stack中的位置。

  Beats及Filebeat轻量型日志采集器第1张

   Beats位于上图的左侧,也就是数据产生的起始端,它们可以将数据直接传输到elasticsearch中,也可以通过logstash对数据进行解析和转换,然后在传输到elasticsearch,最后在对数据进行可视化的展示。

什么是Filebeat

  Filebeat是一款使用go语言开发的,主要是对日志文件进行处理的,是一个属于Beats系列的日志托运者 (一组安装在主机上的轻量级托运人),用于将不同类型的数据传送到ELK堆栈进行分析。每个Beat专门用于传送不同类型的信息,例如,Winlogbeat发布Windows事件日志,Metricbeat发布主机指标等等。顾名思义,Filebeat提供日志文件。

  Filebeat处理流程

    1. 日志文件输入(Input)。

    2. 处理日志文件(Filter)。

    3. 输出到目标对象中(Output)。

     Beats及Filebeat轻量型日志采集器第2张

      上图是Filebeat的结构图。 上图左边灰色框中就是Filebeat,右边是Filebeat的输出对象,Filebeat可以将日志输出到Elasticsearch,Logstash,Kafka,redis等。

   Filebeat的组成

     根据上图可以看到Filebeat由两个主要组件组成,prospector 和 harvester。
    1. harvester(收割者):
      负责读取单个文件的内容。
      如果文件在读取时被删除或重命名,Filebeat将继续读取文件。


    2. prospector(观察者):
      prospector负责管理harvester并找到所有要读取的文件来源,主要监控文件是否变化,如果输入类型为日志,则查找器将查找路径匹配的所有文件,并为每个文件启动一个harvester(上图prospector1就有两个harvester),如果文件有变化harvester就会收集新的日志。

     Filebeat可以有多个prospector,每个prospector负责的文件是不同的。      
      

 Filebeat安装

  可以先将Filebeats下载,去官网下载,地址:https://www.elastic.co/downloads/beats,也可以在这个地址 https://elasticsearch.cn/download/#seg-4

  Filebeats官网地址:https://www.elastic.co/cn/beats/filebeat

      Filebeats文档地址:https://www.elastic.co/guide/en/beats/filebeat/current/index.html

  Beats及Filebeat轻量型日志采集器第3张

   Filebeats目录说明

  Mac系统安装:

  可以先查看filebeat安装信息

  Beats及Filebeat轻量型日志采集器第4张

   安装

  Beats及Filebeat轻量型日志采集器第5张

   查看安装是否成功

  Beats及Filebeat轻量型日志采集器第6张

安装后Filebeat的相关安装位置:

  1. 安装目录:/usr/local/Cellar/filebeat/{filebeat版本}/

  2. 配置目录:/usr/local/etc/filebeat/

  3. 缓存目录:/usr/local/var/lib/filebeat/

  Beats及Filebeat轻量型日志采集器第7张

   启动featbeat,可以通过命令brew services start filebeat

  Beats及Filebeat轻量型日志采集器第8张

  

Filebeat配置

  Filebeat的配置文件是filebeat.yml。Filebeat使用的是yaml语法,下面是Filebeat配置示例

filebeat.prospector:
  - input_type: log     
paths:                  
  - /var/log/apache/httpd-*.log
document_type: apache
  - input_type: log
paths:
  - /var/log/messages
  - /var/log/*.log 

 说明:

  1. prospector可以配置多个,所以这里yaml对于数组是用 - 符号来表示的,每个prospector都有输入类型(input_type),这里log表示日志文件。

  2. paths也是数组(下面也有-这个符号),path用于指定日志路径。

  Filebeat Output配置

    1. Filebeat Console(标准输出):Filebeat将收集到等数据,输出到console里,一般用于开发环境中,用于调试。

output.console
    pretty.true
enable: true

    2. Filebeat Elasticsearch

output.elasticsearch
    host:["http://localhost:9200"]
    username: "admin"
    password: "123456"

  

  Filebeat Filter配置

   Filebeat本身可以对数据进行处理,不过处理能力还是有点弱,同时也缺乏对数据转换的能力。

Filebeat演示-收集Nginx日志

   通过stdin收集日志。

       先查看Nginx是否启动,在浏览器上输入http://127.0.0.1:8080/

   Beats及Filebeat轻量型日志采集器第9张

   如果不知道你的环境nginx监听的端口,可以查看nginx.conf配置文件中listen就可以。

  Beats及Filebeat轻量型日志采集器第10张

  查看下nginx日志内容

songguojundeMacBook-Pro:~ songguojun$ head -n 10 /usr/local/var/log/nginx/access.log 
127.0.0.1 - - [07/May/2020:22:38:13 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:76.0) Gecko/20100101 Firefox/76.0"
127.0.0.1 - - [07/May/2020:22:44:36 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:76.0) Gecko/20100101 Firefox/76.0"

 先对nginx.yml文件进行配置,我的Mac系统nginx.yml路径在/usr/local/etc/filebeat/modules.d/下面,如果没有,可以新建一个nginx.yml文件。

该文件内容配置如下:

filebeat.prospectors:
- input_type: stdin

output.console:
    pretty: true

在输入命令head -n 10 /usr/local/var/log/nginx/access.log | filebeat -e -c /usr/local/etc/filebeat/modules.d/nginx.yml

Beats及Filebeat轻量型日志采集器第11张

 nginx日志每一条都被封装到json中。

Filebeat和Elasticsearch Ingest Node

  Filebeat是缺乏对数据转换的能力。所以ES在5.x版本的时候增加了一个新的node类型Ingest Node。这个Ingest Node可以在数据写入ES之前可以对数据进行转换,使用的Api是pipeline。

Filebeat Module介绍

  Filebeat Module是针对社区中常见的需求进行配置,封装来增加易用性,比如常见nginx的日志,apache日志,mysql日志。这些封装都在featbeat.yml这个配置文件中。

免责声明:文章转载自《Beats及Filebeat轻量型日志采集器》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Octotree Chrome安装与使用方法verilog断言(SVA:systemverlog assertion)语法 ---- 转载下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ELK 架构之 Logstash 和 Filebeat 安装配置

上一篇:ELK 架构之 Elasticsearch 和 Kibana 安装配置 阅读目录: 1. 环境准备 2. 安装 Logstash 3. 配置 Logstash 4. Logstash 采集的日志数据,在 Kibana 中显示 5. 安装配置 Filebeat 6. Filebeat 采集的日志数据,在 Kibana 中显示 7. Filebeat...

ELK应用之Filebeat

Filebeat是本地文件的日志数据采集器,可监控日志目录或特定日志文件(tail file),并将它们转发给Elasticsearch或Logstatsh进行索引、kafka等。带有内部模块(auditd,Apache,Nginx,System和MySQL),可通过一个指定命令来简化通用日志格式的收集,解析和可视化。 官方网址:https://www...

ansible笔记

目录 列表的使用zookeeper id 使用主机名最后的编号判断一个文件是否是默认的,如果是就清空blockinfile+lookup使用replace+lookup使用ansible2.4 api 调用 列表的使用 我们有一个列表如下(主机为server7-13) (py3) [root@jumpserver app]# cat server_elk....

filebeat v6.3 如何增加ip 字段

我们知道filebeat获取数据之后是会自动获取主机名的,项目上有需要filebeat送数据的时候送一个ip字段出来   方法:配置filebeat配置文件   解释一下:field 是字段模块 在这个模块下可以自定义字段,可以支持array ,数组等格式,但是官方文档也没有array 的例子,第二个箭头表示,把新增的字段,放在顶级下,否则在子组。看你要...

Ubuntu 搭建ELK

一、简介 官网地址:https://www.elastic.co/cn/ 官网权威指南:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html 安装指南:https://www.elastic.co/guide/en/elasticsearch/reference/5.x...

使用Elasticsearch的processors来对csv格式数据进行解析

来源数据是一个csv文件,具体内容如下图所示: 导入数据到es中 有两种办法,第一种是在kibana界面直接上传文件导入 第二种方法是使用filebeat读取文件导入 这里采用第二种办法 配置文件名:filebeat_covid19.yml filebeat.inputs: - type: log paths: - /covid19/covid...