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中就可以建不同的索引文件

posted @ 2018-02-12 16:02 silent 阅读(...) 评论(...) 编辑 收藏