欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

win10 安装elastic 的Filebeat

程序员文章站 2024-01-31 13:16:40
...

Filebeat 是轻量级的数据收集器, 占用资源少, 支持系统很多, 是ELK 后期增加的一员。

一. 从官网下载, win10 是win 64位版本

下载地址:https://www.elastic.co/cn/downloads/beats/filebeat

目前是7.0.1 版本。

二. 把下载的filebeat-7.0.1-windows-x86_64.zip 解压

我是把里面的文件夹解压到 D:\program files\ 下,然后把文件夹filebeat-7.0.1-windows-x86_64 改名为 Filebeat。

win10 安装elastic 的Filebeat

三. 用管理员模式运行 power shell

cd ‘D:\program files\filebeat’

D:\program files\filebeat> .\install-service-filebeat.ps1

这个操作是把filebeat 注册成windows 服务, 如果你有安装类型360 安全卫士,会有提醒拦截,允许就行了, 成功的话,显示

win10 安装elastic 的Filebeat

如果上面的脚本执行不成功,有权限的问题, 执行下面的试试(我没验证是否可行)

PowerShell.exe -ExecutionPolicy UnRestricted -File .\install-service-filebeat.ps1

四. 配置

官方的配置文档:https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-input-log.html

当然我们肯定不是什么都不用配置就可以使用的, 具体的配置文件是

win10 安装elastic 的Filebeat

用文本工具打开filebeat.yml, 我个人喜欢用editplus, 注意因为用yml, 所以每段的缩进或空格都不能随便来的。

1. 配置输入 inputs

如果有不同的配置, 就用多个- type: log, 但是如果只是多个目录, 一个- type: log 就够了

如:

- type: log
配置1

- type: log
配置2

每个- type: log

enabled: true #启用

paths

     - G:\testlog\*.log  #用了* 的通配符,这个百度一下就了解了用法了

     - 其他目录。。。。。可以配置多个目录

     #exclude_lines: ['^DBG']                #不包括的行,用了正则表达式,这里是排除debug 的行数据

     #include_lines: ['^ERR', '^WARN']   #包括的行, 用了正则表达式, 这是是指定错误或警告的行数据

     #exclude_files: ['.gz$']             #排除的文件, 这里是排除gz 的压缩文件

     #fields:           #自定义的字段和值, 用于传给输出

          自定义字段1: 自定义字段的值1

     ### Multiline options 多行配置,如java 的exception 输入整个栈的内容

     #multiline.pattern: ^\[             #正则表达式,这个后面还有两个参数配合使用

     #multiline.negate: false

     #multiline.match: after              #官方的例子是最好的说明了

          win10 安装elastic 的Filebeat

    #多行的其他设置

    #multiline.flush_pattern  #指定正则表达式,匹配的多行信息将会结束,内容将会从内存中输出并刷新,特别适合有指定开始标志和结束标志的日志信息。

 #multiline.max_lines   #最大的合并行的行数, 默认是500

 #multiline.timeout    #合并行的超时时间,默认5秒,超过5秒没有新的行加入,已合并的行将会被发出

------------------------下面是*.yml 文件没有写到的  -----------------------------

     #recursive_glob.enabled        #是否包括子目录,最多8层目录,默认是true, 可以设置为false               

     #encoding: utf-8                #文件编码,对于有中文的这个配置就很重要了,最后用编码utf-8, 如果用gb 系统编码,最新是gb18030, 比utf-8 支持的汉字要多

     #harvester_buffer_size   #每一行的缓存字节数, 默认是16384, 设当的缓存能提高效率

     #max_bytes           #一次性发送的消息最大字节数,超过的会被抛弃,特别是对多行的数据有用,默认10MB (10485760)   

      #ignore_older      #忽略更新时间在指定时间段前的文件,如忽略更新在2个小时前的文件。默认值是0,表示不启用该功能。启用该功能的话,可以使用时间字符串,2h(2小时)或 5m(5分钟)。这个配置项的值必须比 close_inactive 的值大, 为什么呢? 后面有说明, 忽略的文件必须是关闭的, 对于打开的文件, 就要关闭后再忽略了, close_inactive 配置的时间就是多久没更新就关闭文件的句柄。

     ## close_* 文件关闭的一些配置

     #close_inactive    #文件在指定时间内没有再次被采集,filebeat 关闭该文件的句柄。如果后面文件有更新,还是会被采集到的。默认是5m(5分钟)。如果文件的更新频率比较固定,我们可以设置关闭的时间比更新的时间高一些,这样每次都能实时采集,不然就是要等下一次的扫描周期才会采集。

      #close_renamed     #配置了这项的话,文件改名或移动,filebeat 将关闭文件的句柄。实践中,一些日志文件达到某些条件(如大小lin49940,行数或日期等),就会重新创建一个新的文件,老的文件改名,由于filebeat 是指向文件句柄的,所以文件改名或移动对其识别是没影响的,如果配置了这个,那么filebeat 将关闭文件句柄,不再读取文件。 

  #close_removed     #配置了这项的话,文件删除,filebeat 将关闭文件句柄,不再采集。特别是大文件,如果没有采集完全就被删除了,那么采集就不完整了。

  #close_timeout      #timeout 超时,容易让人误解这个配置项的意义。它其实是采集器的生命周期,到了时间就停止采集,等待下一次的扫描周期。

     ##clean_* 清理registry  文件, registry  文件会记录我们采集过的文件和文件内部的位置, 但是如果我们采集的文件很多,采集进行很久了, 那么registry  文件将会很大,所以必须有一个操作来维护registry  文件,减少它的大小。

     #clean_inactive    #清理 registry  文件 中不活跃的文件状态,设定的时间必须大于ignore_older + scan_frequency 的时间设定值。如果清除状态的文件再次更新, 那么文件会被从头开始采集。官方文档写了一个这个配置项最有用的地方,就是Linux系统的 inode 重用问题导致 filebeat 认错文件的问题。个人lin49940 追加一个,就是业务中不会再被更新的日志文件,如有时间周期的日志文件,归档的日志文件等。

   #clean_removed    #该配置项是默认启用的,如果文件被改名,移动或者删除, 那么这些文件的状态将从registry  文件 中清除。 当时有一个场景要注意, 就是当我们读取文件夹的权限被没收,然后再此被给与, 这个时候文件夹下面的文件的状态会从registry  文件被清除, 这些文件将会从头开始采集,因为这个由于,官方是建议关闭这个配置项的。如果我们禁用close_removed 配置项的话,那么必须同时禁用该配置项。

  #scan_frequency  #扫描指定文件夹的频率,默认是10s(10秒),设置1s 扫描filebeat 也没问题, 但是不建议扫描时间低于1秒。如果你需要近乎实时同步数据,那也不要把这个值配置得很低, 我们可以修改close_inactive 的值,一直打开的文件句柄会被持续轮询。

     #scan.sort     #排序字段,默认是禁用的,属于还在实验中的阶段,一般有用的话,文件修改时间或文件名称作为排序字段

  #scan.order            #搭配前面的排序字段使用(asc or desc)升序和倒序,默认是升序,也是属于实验的阶段。

     #tail_files             #从文件尾部开始扫描,默认是false, 如果是true,就是只关心当前及后面发生的日志,不关心前面的日志了。

 #symlinks     #软链接,要理解的话就是windows 的快捷方式了,像我们同一个软件装了几个版本,但是我们每次想指定一个默认的版本使用,用软链接就很适合了,切换版本修改一下软链接就行了。Linux下安装python3后也会用到软链接,用于默认使用python3,而不是python2

      

     没有了 document_type 了。

 

 

 

 

 

 

 

五. 启动

命令启动或者在服务里面启动

PS C:\Program Files\Filebeat> Start-Service filebeat