ELK——Filebeat介绍及部署

一、Filebeat介绍

Filebeat是一种轻量型,开源的日志采集工具,安装于客户端中来收集指定的日志目录,将收集的日志发送到logstash、es、redis、kafka中,来代替logstash的数据采集方案,logstash在运行过程中相当耗费服务器资源,就算没有在收集日志一样会对CPU,内存造成一个相当高的损耗。

二、Filebeat工作流程

Prospector(6.3版本以后替换成了inputs)是filebeat的检测进程,用来检测指定的文件。

Harvester是filebeat的读取进程,用来读取日志文件的内容。

Spooler是filebeat的数据处理程序,它会进行一个日志数据的处理,然后集合这些最新的数据,最后发送至logstash、es、redis、kafka中。

三、Filebeat安装

  1. 从官网下载相应安装包
    wget   https://www.elastic.co/downloads/beats/filebea 

  2. 将安装包解压至相应目录(下面是6.3.2版本)
    tar  xf  filebeat-6.3.2-linux-x86_64.tar.gz  -C   /usr/local

  3. 重写配置文件(详细见四、Filebeat配置文件详解)

  4. 测试filebeat启动
    cd /usr/local/filebeat6.3.2
    ./filebeat -e -c filebeat.yml -d "Publish"

  5. 转入后台启动
    ./filebeat -e -c filebeat.yml -d "Publish"  > /dev/null 2>&1 &

四、Filebeat配置文件详解

Inputs采集日志(Prospector在6.3版本中替换成了inputs,这里我们用6.3版本配置文件)

  1. 编辑filebeat的yml文件:
filebeat.inputs:
  - type: log      #指定收集类型
    paths:         #指定路径如下
      - /var/log/*.log
      include_files: [‘[ERROR]’]    #使用正则匹配需要的数据
    fields:      
      type:     #添加一个字段,用于区分不同的日志,方便logstash进行匹配
      fields_under_root: true  #添加此字段会使上面的字段与其他字段同级,使logstash方便拿到对应的数据。
      multiline:              #多行匹配
      pattern: ’^[ERROR]’      #使用正则进行匹配
      negate: true             #不是以上面正则匹配的默认合并上一行
      match: after               #合并到上一行的末尾
#Output输出日志(输出至logstash中)
output.logstash:
  hosts: [“192.168.1.131:5044”]       

五、以下使用redis做演示修改配置文件

filebeat.yml配置文件,整理后格式:

filebeat.inputs:
  - type: log
    paths:
      - /logs/*/error/error.log
    tags: ["test"]    #项目名
   #exclude_lines: ['^DBG']
   #include_lines: ['^[ERROR]']
    fields:
        host_name: 192.168.1.130
      document_type: "test"  #平台名
     fields_under_root: true
     multiline:
       pattern: '^[ERROR]'
       negate: true
       match: after
output.redis:
        hosts: ["192.168.1.131:6379"]
        password: "密码"
        key: "filebeat"
        db: 0
        datatype: list
原文地址:https://www.cnblogs.com/Huang-Niu/p/9994655.html