filebeat读取本地文件到ELK简单配置

winxcoder 2019-07-01

filebeat读取本地文件到ELK简单配置

前言
阅读本文前请确保已经部署ELK,本文是基于window server
如未部署请参考window环境下搭建简单ELK日志收集
相比较之前用logback + redis + elk 收集日志的方式,filebeat的方式可以减少对系统的耦合性,不会对运行的系统造成干扰。

filebeat读取本地文件到ELK简单配置

依赖组件
filebeat-5.6.14-windows-x86_64
官网下载地址 最新版本6.6
filebeat官方下载
5.6到6.6 跨度太大,如果elk使用6.X的版本需要注意下参数配置,有些参数在6.X的版本已经取消了

  • 配置filebeat

下载下来之后解压,修改配置文件 filebeat.yml

配置文件里面其实已经有详细的说明,5.X跟6.X的版本不太一样,不过测试的时候发现5.X的配置在6.X的filebeat也能用,只是启动会提示你该参数已经过时,建议更换。

首先需要定义输入源和输出源
输入源那边定义文件夹地址,支持读取单个文件或者是多个文件,输出可以输出到redis、logstash和es
可以参考官网的配置:filebeat配置

filebeat.prospectors:

# Each - is a prospector. Most options can be set at the prospector level, so
# you can use different prospectors for various configurations.
# Below are the prospector specific configurations.

- input_type: log

  # Paths that should be crawled and fetched. Glob based paths.
  paths:
    - c:\programdata\elasticsearch\logs\*.log
  # Optional additional fields. These field can be freely picked
  # to add additional information to the crawled log files for filtering
  # 这边这个自已定参数名,例如这边定义了个type名字叫service-debug
  # 在logstash那边可以用这个type参数作为es的索引名称
  fields:
     type: service-debug
  #  level: debug
  #  review: 1  

##-------------------------- es output ------------------------------------
#output.elasticsearch:
  # Array of hosts to connect to.
  #hosts: ["localhost:9200"]

  # Optional protocol and basic auth credentials.
  #protocol: "https"
  #username: "elastic"
  #password: "changeme"  
##-------------------------- logstash output -----------------------------
 output.logstash:
  # The Logstash hosts
  hosts: ["127.0.0.1:5044"]

如果需要通过redis输出,只需要把输出配置改成用redis

output.redis:
  hosts: ["127.0.0.1"] 
  port: 6379
  #password: "test"  
  db: 2
  timeout: 5
  key: "service-debug"
  • 修改logstash配置

如果是filebeat直接输出logstash,配置如下,如果是通过redis,请参考上面文章

input{
 beats {
   port => 5044

 }
}
filter {
}
output {
    if [fields][type]=="service-debug" {
       elasticsearch {
        hosts => ["127.0.0.1:9200"]
        index => "service-debug-%{+YYYY.MM.dd}"
     }
    }

    stdout{}
}

配置完成后启动filebeat,启动参数 filebeat.exe -e -c filebeat.yml
启动完成后,当日志文件有发生变化时候,filebeat会把相关日志输出到logstash

END

相关推荐