本篇次要来聊一聊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: cpssetup.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/...