页面加载中...

Filebeat快速使用

| Elasticsearch | 0 条评论 | 506浏览

Filebeat 简述

Filebeat is a lightweight shipper for forwarding and centralizing log data. Installed as an agent on your servers, Filebeat monitors the log files or locations that you specify, collects log events, and forwards them to either to Elasticsearch or Logstash for indexing.
From 官方文档

字面的描述就是 Filebeat就是一个轻量级的日志收集器。根据你指定的日志文件或者本地其他文件,Filebeat能够收集日志事件,并将这些内容发送到elasticsearch 或者 logstash等。

在不了解filebeat之前,考虑下在主机上收集日志文件一般是什么操作呢?scp大概就是最多的操作了吧。。

但是scp拷贝的是整个文件,也许我们并不需要整个文件的内容,比如:只需要warn级别以上的日志信息,但是文件中最多的就是info级别的信息了吧?
其次,往日志文件里面写日志,根据设定的策略,(比如在log4j里面)可能一个日志文件管一天,第二天才会又重新创建新日志文件。这样第二天才能scp前一天的文件,又怎么做到获取实时的日志信息呢?

所以,使用Filebeat能够解决以上的问题,它不仅是文件的“托运工”,也可以是一个“监听者”。

快速上手

安装部署

首先,从官网上下载filebeat安装包,下载地址://FIXME 。
下载完了之后,直接解压即可:

而后直接进入解压后的目录,可看到

配置filebeat

在解压后的目录中有一个配置文件:filebeat.yml。内容如下:(去掉了注释)

最主要的两个配置:filebeat.inputsoutput。即输入的文件从哪里来?内容输出到哪里去。

  1. filebeat.input
    paths中指定日志文件的位置,也可以指定多个。比如:

    pahs:
     - /var/log/*.log
     - /home/hadoop01/*/fb.*.log
    

    exclude_lines指定不要那些内容,使用正则匹配,比如不要DEBUG级别的日志:

    exclude_lines: ['^DEBUG']
    

    encoding 指定编码,一般都是"utf-8"
    更多其他的配置,see https://www.elastic.co/guide/en/beats/filebeat/current/configuring-howto-filebeat.html

  2. output
    指定输出的位置。
    比如输出到文件:

    output.file:
     path: "/tmp/filebeat"
     filename: my.fb
    

    输出到es:

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

    启动

    配置完了后,就可以直接启动了,通过命令

    ./filebeat -e -c filebeat.yml -d "publish"
    

    可看到:

    在指定的该输出文件里面,可以看到输出的内容,输出内容为json格式,其中一条内容如下:(json格式化后)

    {
     "@timestamp": "2019-06-24T09:00:22.214Z",
     "@metadata": {
         "beat": "filebeat",
         "type": "_doc",
         "version": "7.1.1"
     },
     "log": {
         "file": {
             "path": "/home/hadoop01/elktest/fb.02.log"
         },
         "offset": 0
     },
     "message": "second 1234556789",
     "input": {
         "type": "log"
     },
     "ecs": {
         "version": "1.0.0"
     },
     "host": {
         ...一些主机信息,这里省略...
     },
     "agent": {
         ...一些agent信息,这里省略....
     }
    }
    

    tip: 日志内容在message里面。

监听文件

在启动filebeat后,filebeat会将日志文件的内容发送到我们指定的地方去。完了之后,大家会注意到,控制台不断的有monitoring日志信息,如下:

频率大概是30s(当然这个值也是可以配置的,后续介绍)。也就是说,filebeat在不断的监听之前配置的输入文件的内容。

我们做个简单的测试,往其中一个日志文件追加一些内容,而后再观察控制台记录。

可以看到,刚才我们修改的文件被filebeat监听到了,再去输出文件,最后面(tail)可以看到刚才增加的内容。

Reference

开始使用Filebeat:https://www.cnblogs.com/cjsblog/p/9445792.html

官方文档:https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-overview.html

发表评论

最新评论

    来第一个评论吧!