乐趣区

关于filebeat:filebeat简介

本篇次要来聊一聊 filebeat 的装置部署与应用。

概念

如果你用过 logstash,那么你就会十分疾速的相熟 filebeat,它其实就做一件事件:从 input 读取事件源,通过相应的解析和解决之后,从 output 输入到指标存储库。

下载

首先咱们要去下载安装包,这个比较简单,就不多介绍了

我这里抉择了 rpm 安装包。

装置

我这里用的是 linux 操作系统,把上一步下载到的安装包放到对应的目录下,而后进入到该目录,执行rpm -ivh filebeat-6.6.0-x86_64.rpm,执行完之后就装置胜利了,咱们能够看到装置的相干门路

配置

rpm 形式装置完之后,它默认的配置文件门路在/etc/filebeat,如图

filebeat.yml 是一个样例文件,咱们能够基于这个文件来改变本人想要的配置项,filebeat.reference.yml 是蕴含了所有的配置项的文件,咱们能够从外面拷贝本人想要的项。这里介绍几个咱们罕用的配置项,

  • filebeat.inputs

    次要用来配置收集的信息起源,咱们用的比拟多的是如下这种形式来收集日志

    type 就是收集的类型,enabled 就是是否启用,paths 就是对应的日志文件。这个节点是反对多个类型的收集配置的,如

  • filebeat.modules

    这个预计大家用的不多或者说不是很熟,其实这个能够了解为对中间件的日志解析模块,很多中间件输入的日志格局都是固定的,只有这里加了对应中间件的 module 就能够主动帮你解析。通过 ./filebeat modules list 能够查看所有反对的 module。

  • output

    这里写 output 并不是说这是一个配置节点,是因为 filebeat 反对多种输入,咱们真正在配置的时候是配理论的输入形式,比方 output.elasticsearch、output.file 等。

更多的配置介绍能够查看官网的配置。

启动

执行命令 systemctl start filebeat.service 就能够启动了。而后执行 ps -ef|grep filebeat 查看一下

能够看到曾经启动胜利了,如果你发现没有启动胜利,能够执行 cd /usr/bin,在这个目录下执行./filebeat -c /etc/filebeat/filebeat.yml -e,这样会提醒具体的错误信息。比方我这里 filebeat 用的 8.1.2 版本,es 用的 7.9 版本,用启动的时候就提醒 es 版本太老,须要配置 output.elasticsearch.allow_older_versions 为 true。而用systemctl start filebeat.service 启动的时候没有任何提醒,连在 /var/log/filebeat/ 和 /var/lib/filebeat/registry/filebeat/ 都没找到错误信息,这里属实有点坑。

重新启动命令systemctl restart filebeat.service

最初看下 es 的内容http://ip:9200/_cat/indices?v

能够看到曾经有了,当然咱们能够自定义索引名称。

集成 ElasticSearch

如何应用 filebeat 将日志文件数据同步到 es 中去呢,这里基于例子来讲。我本地有两个日志文件,别离为/usr/local/log/ucs.20220412.0.log/usr/local/log/cps-provider.20220412.0.log,filebeat.yml 做如下配置:

# 输出
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /usr/local/log/ucs.20220412.0.log
  tags: ucs
- type: log
  enabled: true
  paths:
    - /usr/local/log/cps-provider.20220412.0.log
  tags: cps
setup.template.name: "my-log"
setup.template.pattern: "my-log-*"

#输入
output.elasticsearch:
  # Array of hosts to connect to.
  hosts: ["192.168.10.118:9200"]
  indices:
    - index: "ucs-%{+yyyy.MM.dd}"
      when.contains:
        tags: "ucs"
    - index: "cps-%{+yyyy.MM.dd}"
      when.contains:
        tags: "cps"  
  #如果是 es 版本较老,则开启上面这项
  #allow_older_versions: true

配置实现之后启动 filebeat,再拜访 es 地址 http://ip:port/_cat/indices?v 看下

咱们新加的两个日志文件对应的索引内容都有了。

如果不小心删了 es 里的数据,如何从新同步?删除 /var/lib/filebeat/registry/filebeat 目录下的 log.json 再重启即可。

总结

总体比较简单,就是出了问题不晓得去哪找日志排查起来比拟坑。

参考资料

官网:https://www.elastic.co/guide/…

退出移动版