美文网首页
ETL工具之日志采集filebeat+logstash

ETL工具之日志采集filebeat+logstash

作者: 洛奇lodge | 来源:发表于2019-09-25 14:41 被阅读0次

1、概述

web服务产生的日志文件,需要进行日志收集并进行可视化展示,一般使用filebeat和logstash组合。

2、组件介绍

2.1 Logstash

Logstash是具有实时收集日志功能,可以动态统一来自不同来源的数据,任何类型的事件都可以通过各种各样的输入,过滤功能和输出插件来丰富和转换。是一个重量级的服务,很占用内存,会影响到部署到本机器上的服务。

2.2 Filebeat

Filebeat是用于转发和采集日志数据的轻量级服务。能监视您指定的日志文件或位置,收集日志事件,并将它们转发到Logstash或elasticsearch (在 5.x 版本中,它也具备过滤的能力,但是还不及Logstash丰富)

2.3 选型

如果对于日志不需要进行过滤分析的,可以直接使用filebeat
如果需要对日志进行过滤分析, 可以使用filebeat+Logstash最合适,如果单独使用Logstash,多台机都需部署Logstash,每台机消耗资源大,filebeat+Logstash相结合,每台机部署filebeat进行数据采集, 一台机部署Logstash作为中心进行接收数据处理以及存储到不同的地方,

3、单点部署

3.1、 部署流程
3.2、 Filebeat.yml文件
filebeat.prospectors:
# 输入设置
- input_type: log
  paths:
    # 指定日志文件位置,可以使用正则方式,也可以指定多个路径的日志
    - /mnt/log/log.*

# 输出设置
output.logstash:
  # logstsh的ip地址 
  hosts: ["127.0.0.1:5044"]
  loadbalance: true
  index: filebeat

3.3、 Logstash.conf文件
input {
  # 接收filebeat读取的数据
  beats {
    port => 5044
    codec => "json"
  }
}

output {
  # 输出到es
  elasticsearch {
    hosts => ["127.0.0.1:9200"]
    index => "test"
    document_type => "log"
    manage_template => false
  }
}

3.4、Logstash.yml文件
http.host: "0.0.0.0"
path.config: /usr/share/logstash/pipeline
xpack.monitoring.enabled: false
3.5、 容器创建

Logstash

sudo docker run \
--restart always \
--name logstash \
-itd \
-p 5044:5044 \
-p 9600:9600 \
-v /path/logstash/pipeline/:/usr/share/logstash/pipeline/ \
-v /path/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml \
elastic/logstash

Filebeat

sudo docker run \
--restart always \
--name filebeat \
-itd \
-v /path/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml \
-v /path/mylog:/data \
elastic/filebeat

4、多个日志源输出到不同存储位置

4.1、修改filebeat.yml
filebeat.prospectors:
# 日志源1
- input_type: log
  paths:
    - /data/video/log.*
  tags: ["log1"]  # 后面logstash用于区别哪个日志来源写入不同的位置
# 日志源2
- input_type: log
  paths:
    - /data/search/*.log
  tags: ["log2"]  # 后面logstash用于区别哪个日志来源写入不同的位置
 
# 输出位置
output.logstash:
  # The Logstash hosts
  hosts: ["127.0.0.1:5044"]
  loadbalance: true
  index: filebeat

4.2、修改logstash.conf
input {
  # 接收filebeat读取的数据
  beats {
    port => 5044
    codec => "json"
  }
}

# 不同的日志输出到不同的位置
output {
  if "log1" in [tags] {      
    elasticsearch{
      hosts => ["127.0.0.1:9200"]
      index => "test_logstash_log1"
      document_type => "log" 
    }
  }
  if "log2" in [tags] { 
    elasticsearch{
      hosts => ["127.0.0.1:9200"]
      index => "test_logstash_log2"
      document_type => "log"
    }
  }
}

参考链接

filebeat文档:https://www.elastic.co/guide/en/beats/filebeat/current/index.html
logstash文档: https://www.elastic.co/guide/en/logstash/7.3

相关文章

  • ETL工具之日志采集filebeat+logstash

    1、概述 web服务产生的日志文件,需要进行日志收集并进行可视化展示,一般使用filebeat和logstash组...

  • ETL工具之日志采集filebeat+logstash

    原文地址:https://www.jianshu.com/p/7aa55172c3e2 1、概述 web服务产生的...

  • Streamsets POC总结

    Streamsets介绍 Streamsets是一款大数据实时采集和ETL工具,可以实现不写一行代码完成数据的采集...

  • 流量回放原理

    流量回放是通过日志采集再处理来获取所需要的数据 日志采集 通过logstash工具从应用容器拉取日志信息,可以根据...

  • 流量回放原理

    流量回放是通过日志采集再处理来获取所需要的数据 日志采集 通过logstash工具从应用容器拉取日志信息,可以根据...

  • filebeat+logstash收集错误日志发送邮件提醒

    filebeat+logstash收集错误日志发送邮件提醒 因为只收集错误日志并且数据量并不是非常大所以简化流程 ...

  • Flume基础学习

    Flume是一款非常优秀的日志采集工具。支持多种形式的日志采集,作为apache的顶级开源项目,Flume再大数据...

  • Ruby ETL 工具漫谈

    activewarehouse-etl ActiveWarehouse ETL 应该是最早的Ruby ETL工具,...

  • 大数据架构

    ETL工具 ETL常用的三种工具Datastage,Informatica,Kettle 演进案例 MySql -...

  • ETL工具之Airflow

    概念 Airflow是Airbnb 开源的一个用 Python 编写的调度工具。于 2014 年启动,2015 年...

网友评论

      本文标题:ETL工具之日志采集filebeat+logstash

      本文链接:https://www.haomeiwen.com/subject/hbcbuctx.html