打造自己的ELK体系之filebeat提取数据文件的部署实践探秘

174 阅读3分钟

filebeat是elk套装里的基本组件beats下的一种,这应该是最简单的一款了。在windows下面分为两种安装方式,一种是msi安装,一种是压缩包解压使用。本篇介绍使用msi安装包安装,压缩包的也可以参照其执行的命令进行启动。

msi安装文件方式

从官网下载和elastic与kibana匹配的版本后,双击安装,这里统一使用的是8.7.0版本。

这种安装方式会在windows下安装为一个服务。 通过cmd输入services.msc进入服务管理界面,可以找到一个名为Elastic File beat 8.7.0的服务。不同版本可能名称不一样。

image.png

右键查看属性,可以看到他的启动命令为:

"C:\Program Files\Elastic\Beats\8.7.0\filebeat\filebeat.exe"  --path.home "C:\Program Files\Elastic\Beats\8.7.0\filebeat" --path.config "C:\ProgramData\Elastic\Beats\filebeat" --path.data "C:\ProgramData\Elastic\Beats\filebeat\data" --path.logs "C:\ProgramData\Elastic\Beats\filebeat\logs" -E logging.files.redirect_stderr=true 可以看出,配置文件所在位置是C:\ProgramData\Elastic\Beats\filebeat,我们需要根据这个文件夹下的filebeat.example.yml ,生成自己的配置文件filebeat.yml。

简易配置文件

filebeat.inputs:

- type: log

  enabled: true

  paths:

    - D:\test_data\*.log

output.elasticsearch:

# Array of hosts to connect to.

  hosts: ["http://localhost:9200"]

  index: "test-%{+yyyy.MM.dd}"

setup.template.settings:

  index.number_of_shards: 1

setup.template.enabled: true

setup.template.overwrite: false

setup.template.name: "test"

setup.template.pattern: "test-*"

在filebeat.inputs配置区域指定的是输入的数据,path里配置了路径,filebeat从这个地方找数据进行上传。

在output.elasticsearch区域制定了向外的输出,hosts设置了elasticsearch的url,index指定了索引形式。在elasticsearch配置了安全认证和SSL认证的情况下,output还需要配置证书和认证方式,为了便于使用,我把elasticsearch和kibana的相关设置都取消掉了。

很久以前的老版本只需要配置这两个即可,新版本还需要配置setup.template,这个根据需要,将template的名称和索引配置上即可。参考默认的example文件,setup.template.pattern在output.elasticsearch配置index时是必须要有的。

配置完成后需要重启服务。

观察数据

在kibana上,Discover页面,Data views上需要先创建一个data view来匹配我们在filebeat下方填写的index。

image.png

名称name是随意的,基本可以和index pattern相同。Index pattern代表匹配的数据,是一种正则表达式。前面filebeat用的是"test-%{+yyyy.MM.dd}",这里可以忽略日期,设置为test-*。这里-是很有必要的,我们在数据设置的时候,filebeat建立索引前面的部分尽量不要用-,只用来和日期做分隔,在名称多了以后可以很有效的避免互相包含。

image.png

创建后再回到discover页面,可以方便的观察各时段的数据情况。

image.png

观察数据

点击数据列最左侧的放大,可以看到详细的数据。

image.png

@timestamp表示收集到数据的时间

host.name是filebeat主机的名称

log.file.path是数据来源文件的路径

log.offset是数据在文件的偏离位置

fields.level和fields开头的另一个数据是在filebeat配置文件中预定义的,通过配置中写入下面的选项,可以给数据附加字段。不同的附加字段可以用来区分不同的input。

image.png

message字段就是数据本身的内容。