前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >请求收集 | Filebeat日志采集

请求收集 | Filebeat日志采集

作者头像
一个架构师
发布2022-06-27 15:08:51
8110
发布2022-06-27 15:08:51
举报
文章被收录于专栏:从码农的全世界路过

请求录制文章中, 我们介绍了如何利用filter打印请求信息, 今天再一起看下, 如何收集请求日志. 日志数据的监控和采集一般会选用Logstash和Filebeat, 其中Filebeat占用的系统资源更少而成为首选.

一. 请求收集

通过Filebeat收集指定日志信息, 并通过kafka发送到流量银行服务中, 进行日志分析和存储; 流量银行服务可以根据平台规划存储到mongoDB,ES等存储引擎中.

二. Filebeat

2.1

安装

Filebeat的安装非常简单, 直接从官网下载安装包即可.在mac环境下, 直接解压就可以使用.

官网地址:

代码语言:javascript
复制
https://www.elastic.co/cn/downloads/beats/filebeat

文件内容:

2.2

配置文件filebeat.yml

Filebeat是需要根据配置文件(filebeat.yml)收集文件信息的. 配置文件主要分为输入项和输出项两部分. 在我们的配置中, 输入项是指定目录下的日志文件, 输出项为Kafka.

代码语言:javascript
复制
filebeat.inputs:
- type: log
  paths:
    - "/Users/xxx/logs/*.log"
  multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
  multiline.negate: true
  multiline.match: after

output.kafka:
  hosts: ["kafkaserver:9092"]
  topics:
    - topic: 'filebeat-log'
      when:
        contains:
          message: "RequestRecordFilter"
  partition.round_robin:
    reachable_only: false
  required_acks: 1
  compression: gzip
  max_message_bytes: 1000000

配置说明: (1)输入项中, 配置日志收集目录, 可配置多项; (2)输入项中, 日志内容需要注意多行合并的情况; (3)输出项中, 配置的kafka地址可以根据集群或单点信息配置多个, 以[,]分隔. (4)输出项中, 配置的topic信息, 也是可以根据上下文配置项信息动态配置. (5)输出项中, 如果在你的日志文件中, 并不只含有你想收集的数据, 或者想根据日志内容分发到不同的kafka topic中, 可以使用[when]条件自定义配置;

点击阅读原文查看更多配置项;

三. Kafka

Kafka的单机安装部署之前我们介绍过,可以参考Kafka单机部署. 在使用docker-compose方式时, 如果需要清理旧的容器信息, 可以执行命令:

代码语言:javascript
复制
docker-compose rm -v

四. 测试

启动filebeat, 监听日志文件.

代码语言:javascript
复制
filebeat -e -c filebeat.yml

进入到kafka容器中, 监听topic(filebeat-log)消费内容.

代码语言:javascript
复制
# 查看topic列表:
kafka-topics.sh --list --zookeeper zookeeper:2181
# 监听命令:
kafka-console-consumer.sh --bootstrap-server kafka:9092 --topic filebeat-log --from-beginning

内容:

代码语言:javascript
复制
"@timestamp":"2021-02-20T20:51:48.038Z","@metadata":{"beat":"filebeat","type":"_doc","version":"7.11.1"},"agent":{"hostname":"MacBook-Pro.local","ephemeral_id":"9ab03559-417a-45b3-a1be-35532a01e2b9","id":"2f530193-f0cf-45d5-b1a3-f1c556803ac3","name":"MacBook-Pro.local","type":"filebeat","version":"7.11.1"},"log":{"flags":["multiline"],"offset":63440,"file":{"path":"/Users/xxx/logs/spring.log"}},"message":"2021-02-20 20:51:45.027 ERROR [RequestRecord,12ffadfd900cd438,12ffadfd900cd438,true] 65453 --- [http-nio-8080-exec-8] com.in.RequestRecordFilter               : uri=[/post/test],method=[POST],Header=[host=localhost:8080;connection=keep-alive;content-length=21;sec-ch-ua=\"Chromium\";v=\"88\", \"Google Chrome\";v=\"88\", \";Not A Brand\";v=\"99\";accept=application/json;charset=UTF-8;sec-ch-ua-mobile=?0;user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36;content-type=application/json;origin=http://localhost:8080;sec-fetch-site=same-origin;sec-fetch-mode=cors;sec-fetch-dest=empty;referer=http://localhost:8080/swagger-ui.html;accept-encoding=gzip, deflate, br;accept-language=zh-CN,zh;q=0.9;cookie=Idea-2af32566=512880ee-48ca-47a8-a36e-8a43047d2321;],Parameter=[],Body=[{\n  \"str\": \"string\"\n}],response=[string-1613793105023]","input":{"type":"log"},"ecs":{"version":"1.6.0"},"host":{"name":"MacBook-Pro.local"}}

小结

本文主要介绍,使用Filebeat收集请求数据的简单实现, 有了这些数据, 就可以为后面的流量回放平台做准备了.

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从码农的全世界路过 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档