ELK的使用——Filebeat给Logstash采集日志

为什么使用Filebeat给Logstash收集日志

Logstash本身也是能收集日志的,只不过占用的cup和内存比较多,不是安全传输,是框架级别。filter功能过滤分析,过滤能力强,使用面很广。

Filebeat收集日志是占用的CPU和内存给Logstash少很多,性能给Logstash好很多,收集日志速度比Logstash快很多。

即使Logstash既能过滤也可以收集日志,但是我们考虑而资源占用和性能问题,果断的选择使用Filebeat给Logstash收集日志。

那这样,Filebeat能都代替Logstash呢?
必然是不能的,Filebeat的过滤功能弱于Logstash,虽然使用Filebeat收集日志,但过滤还是使用自己的更强大。

具体操作:

1、先将Filebeat安装好。

2、配置logstash.conf文件

input {
     beats {
    port => 5041  //配置文件输入的端口号。
  }
}

output {
  stdout {
   codec => rubydebug
  }

  elasticsearch {
    hosts => "elasticsearch 的ip:9200" 
    index => "log-%{+YYYY.MM.dd}"


  }
}

3、配置filebeat.yml文件

在开头配置输入*.log的位置。

filebeat.inputs:

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

- type: log

  # Change to true to enable this input configuration.
  enabled: true

  # Paths that should be crawled and fetched. Glob based paths.
  paths:
    - /var/log/*.log
    //日志的具体位置。
output.logstash:
  # The Logstash hosts
  hosts: ["Logstash的IP:5041"]  
  //5041端口号要和logstash输入的端口号一致。

4、执行命令进行测试
在filebeat安装的目录下执行

sudo ./filebeat -e -c filebeat.yml -d "publish"

在logstash安装目录下执行

bin/logstash -f logstash.conf

A、在/var/log目录下新建T.log文件并写入”tw”。

a、filebeat输出的信息是

2018-09-16T16:11:02.533+0800
INFO
log/harvester.go:251    
Harvester started for file: /var/log/1.log

b、logstash输出的信息是

这里写图片描述

通过以上的配置让Filebeat收集日志扔给Logstash来过滤,然后再扔给Elasticsearch。

ELK使用Filebeat给Logstash采集日志,成功!


版权声明:本文为aiTCR原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。