ETL工具之日志采集filebeat+logstash
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ETL工具之日志采集filebeat+logstash相关的知识,希望对你有一定的参考价值。
参考技术A原文地址: https://www.jianshu.com/p/7aa55172c3e2
web服务产生的日志文件,需要进行日志收集并进行可视化展示,一般使用filebeat和logstash组合。
Logstash是具有实时收集日志功能,可以动态统一来自不同来源的数据,任何类型的事件都可以通过各种各样的输入,过滤功能和输出插件来丰富和转换。是一个重量级的服务,很占用内存,会影响到部署到本机器上的服务。
Filebeat是用于转发和采集日志数据的轻量级服务。能监视您指定的日志文件或位置,收集日志事件,并将它们转发到Logstash或elasticsearch (在 5.x 版本中,它也具备过滤的能力,但是还不及Logstash丰富)
如果对于日志不需要进行过滤分析的,可以直接使用filebeat
如果需要对日志进行过滤分析, 可以使用filebeat+Logstash最合适,如果单独使用Logstash,多台机都需部署Logstash,每台机消耗资源大,filebeat+Logstash相结合,每台机部署filebeat进行数据采集, 一台机部署Logstash作为中心进行接收数据处理以及存储到不同的地方,
Logstash
Filebeat
filebeat文档: https://www.elastic.co/guide/en/beats/filebeat/current/index.html
logstash文档: https://www.elastic.co/guide/en/logstash/7.3
Es数据采集工具之filebeat安装和使用
- 在看filebeat之前我们先来看下Beats
- Beats是一组轻量级采集程序的统称,这些采集程序包括并不限于:
- filebeat: 进行文件和目录采集,主要用于收集日志数据。
- metricbeat: 进行指标采集,指标可以是系统的,也可以是众多中间件产品的,主要用于监控系统和软件的性能。
- packetbeat: 通过网络抓包、协议分析,对一些请求响应式的系统通信进行监控和数据收集,可以收集到很多常规方式无法收集到的信息。
- Winlogbeat: 专门针对windows的event log进行的数据采集。
- Heartbeat: 系统间连通性检测,比如icmp, tcp, http等系统的连通性监控。
-
下载安装包
-
解压修改配置文件filebeat.yml
- inputs支持的type有
- log
- stdin
- redis
- udp
- tcp
-
syslog
- outputs支持的type有
- logstash
- elasticsearch
- kafka
- file
- redis
- console
-
启动命令
./filebeat -c filebeat.yml
-
场景讲解
- inputs为log类型,多个日志文件,格式化输出到控制台
#=========================== Filebeat inputs ============================= ##配置多个input filebeat.inputs:
- type: log
enabled: true
paths:配置多个log
- /home/logstash/echo.log
- /home/logstash/echo2.log
- type: log
paths:通配符
- /home/logstash/*_input_msg
#-------------------------------- Console output
output.console:
pretty: true- **fields配置** ```SHELL ## 添加固定字段 logcate: "dev" ## 添加字段获取系统变量 ,echo $HOSTNAME ===> s156 nodename: $HOSTNAME ## 输出到根节点,否则会输出 fields.logcate, fields.nodename; ## 如果与filebeat中字段冲突,自定义字段会覆盖其他字段 ## fields_under_root: true ## 设置标签 tags: ["normal"] ## 当包含 DEBUG或者INFO 时,才采集 include_lines: [DEBUG,INFO] # exclude_lines: - type: log paths: - /home/logstash/*_input_msg tags: ["unnormal"] ## 以WARN开头,或以ERROR开头。 include_lines: ["^WARN","^ERROR"]
- 多行合并
#指定用于匹配多行的正则表达式 multiline.pattern: ^\\[ #是否“否定”定义的模式:multiline.pattern定义的模式 #negate:否定 multiline.negate: true #指定Filebeat如何把多行合并成一个事件。可选的值是 after 或者 before multiline.match: after
- inputs为log类型,多个日志文件,格式化输出到控制台
- 还有很多其他的配置,比如正则,定义json格式等等。使用时可以具体查找
以上是关于ETL工具之日志采集filebeat+logstash的主要内容,如果未能解决你的问题,请参考以下文章
ELK 架构之 Logstash 和 Filebeat 安装配置