本站所有文章均为原创,如对您有帮助,恳请帮忙点击任何一处广告

ELK Stack——Filebeat 6的安装与配置教程

发布:TangLu2019-4-17 13:39分类: ELK Stack 标签: filebeat ELK ElasticSearch logstash

由于Logstash依赖于JAVA环境,偏重量级,占用系统资源较高,而且每台客户端都要配置JAVA的话也略嫌麻烦。所以出现了filebeat的解决方案,它不依赖JAVA环境,非常轻量。由于Filebeat轻量级的特性,它不支持正则,在使用中通常会结合Logstash的正则提取


对比下几种工作模式:

1、Logstash -> Elasticsearch  -> Kibana(适合分析,但偏重量级)

2、Filebeat -> Elasticsearch -> Kibana(只适合查看日志,不适合分析)

3、Filebeat -> Logstash(需要开启端口监听) -> Elasticsearch -> Kibana(适合分析)


一、Filebeat的安装与配置(不需要JDK环境):

1、下载Filebeat二进制安装包

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.6.0-linux-x86_64.tar.gz


2、由于是二进制安装包,只需要解压Filebeat压缩包即可,和Logstash、Kibana一样

tar zxf filebeat-6.3.0-linux-x86_64.tar.gz
mv filebeat-6.3.0-linux-x86_64 /usr/local/


3、Filebeat的目录结构与配置,主要关注的就是可执行文件filebeat和配置文件filebeat.yml

filebeat1.png


4、编辑配置文件filebeat.yml修改输入输出配置项。首先将输出直接给到ES处理,配置如下:

filebeat.inputs:
- type: log
  enabled: true
  backoff: "1s"
  paths:
    - /var/log/message.log
  fields:  #如果要采集多个日志需要增加该选项作为区分
    filetype: system  #给每个日志打个标签,用于if判断
  fields_under_root: true
#- type: log
#  enabled: true
#  backoff: "1s"
#  paths:
#    - /var/log/nginx/access.log
#  fields:
#    filetype: nginx
#  fields_under_root: true
output:
  elasticsearch:
  hosts: ["192.168.1.100:9200"]

5、启动Filebeat,启动速度相比Logstash会快许多,内存占用也更少

nohup /usr/local/filebeat/filebeat -e -c /usr/local/filebeat/filebeat.yml &


6、使用Kibana查看数据能看到日志就OK了



二、Filebeat+Logstash架构

如果Filebeat直接把日志传给ES的话,由于其不支持正则、无法移除字段等,没办法实现数据分析,所以更优的配置是将Filebeat收集到的日志输出给一台Logstash服务器,由Logstash处理后再给ES

1、修改Filebeat输出配置,输出给到Logstash,其他配置不动

output:
  logstash:
  hosts: ["192.168.1.100:5044"]


2、修改Logstash input相关配置,其他不动

input {
  beats {
    host => '192.168.1.100'  #如果配置了很多个beat,那这行可以不写,只保留port部分
    port => 5044
  }
}

filter {
    grok {
        match => {
            "message" => '(?<source_ip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) - [a-zA-Z0-9-]+ \[(?<nginx_time>[^ ]+) \+\d+\] "(?<method>[A-Z]+) (?<request_url>[^ ]+) HTTP/\d.\d" (?<status>\d+) \d+ "(?<referer>[^"]+)" "(?<agent>[^"]+)" ".*"'
        }   
        remove_field => ["message", "beat"]
    }   
     date {
        match => ["nginx_time", "dd/MMM/yyyy:HH:mm:ss"]
        target => "@timestamp"
    }
}

output {
  elasticsearch {
    hosts => ["http://127.0.0.1:9200"]
  }
}



温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!
et_highlighter51
版权所有:《Linux运维技术学习站点
文章标题:《ELK Stack——Filebeat 6的安装与配置教程
除非注明,文章均为 《Linux运维技术学习站点》 原创
转载请注明本文短网址:http://www.linuxe.cn/post-422.html  [生成短网址]

已有 0/195 人参与

发表评论:

欢迎分享Linux运维技术学习站点

欢迎使用手机扫描访问本站,还可以关注微信哦~