FileBeat安装配置详解程序员

  在ELK中因为logstash是在jvm上跑的,资源消耗比较大,对机器的要求比较高。而Filebeat是一个轻量级的logstash-forwarder,在服务器上安装后,Filebeat可以监控日志目录或者指定的日志文件,然后将这些信息到发送给logstarsh或直接发送给elasticsearch。当发送数据到Logstash或Elasticsearch时,Filebeat使用一个反压力敏感(backpressure-sensitive)的协议来解释高负荷的数据量。当Logstash数据处理繁忙时,Filebeat放慢它的读取速度。一旦压力解除,Filebeat将恢复到原来的速度,继续传输数据。

  Filebeat目前已经是Elastic Stack非常重要的组成部分了。

  闲话少说,先来看一下filebeat怎么安装配置吧。

  官网地址:https://www.elastic.co/guide/en/beats/filebeat/current/index.html

  一、 安装流程

  在linux中的安装相当简单,在此主要说一下windows中的安装和配置:

  1. 下载软件

   下载地址:https://www.elastic.co/downloads/beats/filebeat   选择相应的版本下载即可。

  2. 下载后解压软件到C:/Program Files 并将文件夹更名为filebeat

  3. 以管理员身份运行powershell

PS C:/Windows/system32> cd 'C:/Program Files/Filebeat/' 
PS C:/Program Files/Filebeat> ./install-service-filebeat.ps1

  4. 安装服务后只需要在配置一下filebeat.yml,然后启动filebeat服务即可

  二、配置Filebeat

  下面是本人实际项目中一个配置:

filebeat.prospectors: 
 
- type: log 
  enabled: true      #一定要启用 
  paths: 
    - D:/web/webapi/log/*   #日志路径 
  document_type: "webapi"   #指定类型  在elastic中可通过[type]识别 
  fields: 
    tag: webapi             #指定标签  在logstahs中可通过[fields][tag]识别 
 
- type: log        #一定不要省略前面的-   血的教训 
  enabled: true 
  paths: 
    - D:/web/webmanage/log/* 
  document_type: "webmanage" 
  fields: 
    tag: webmanage 
 
- type: log 
  enabled: true 
  paths: 
    - D:/web/webuser/Log/* 
  document_type: "webuser" 
  fields: 
    tag: webuser 
 
#-------------------------- Elasticsearch output ------------------------------ 
output.elasticsearch: 
  # Array of hosts to connect to. 
  hosts: ["192.168.1.2:9200"]    #指定ES的路径和端口即可 
 
  # Optional protocol and basic auth credentials. 
  #protocol: "https" 
  #username: "elastic"           #可为ES配置验证信息 
  #password: "changeme" 
 
#----------------------------- Logstash output -------------------------------- 
output.logstash: 
  # The Logstash hosts 
  hosts: ["192.168.1.1:5044"]   #指定Logstash的地址

 以上配置的是将FileBeat读取的日志传输到Logstash,对应的LogStash中的配置如下:

input  
{ 
  beats 
  { 
    port => 5044 
  } 
} 
output  
{ 
   if [fields][tag] == "webapi"  
   { 
       elasticsearch  
       {  
             hosts => ["192.168.1.2:9200"] 
             index => "webapi-%{+YYYY.MM.dd}" 
       } 
   } 
   if [fields][tag] == "webmanage" 
   { 
        #stdout { codec => rubydebug } 
        elasticsearch 
        { 
             hosts => ["192.168.1.2:9200"] 
             index => "webmanage-%{+YYYY.MM.dd}" 
        } 
   } 
   if [fields][tag] == "webuser" 
   { 
        elasticsearch 
        { 
             hosts => ["192.168.1.2:9200"] 
             index => "webuser-%{+YYYY.MM.dd}" 
        } 
   } 
}

这样通过[fields][tag]标识不同的日志来源和类型,可以针对性的进行日志处理,在Elastic中就可以建不同的索引文件

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/2757.html

(0)
上一篇 2021年7月16日
下一篇 2021年7月16日

相关推荐

发表回复

登录后才能评论