糟糕的 filebeat

2024-02-29 19:48
文章标签 filebeat 糟糕

本文主要是介绍糟糕的 filebeat,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

因为公司的服务器和日志所在的kafka集群不是在一个网络下,导致服务器到kafka之间日志传输率受带宽的限制,高峰期一直把带宽跑满,最近花了挺长时间来解决这个问题。

问题

遇到带宽跑满时,大概率就知道是压缩有问题。我们的filebeat采用了snappy压缩算法,这算法压缩率确实感人,单机发往kafka集群的流量在3Mb/s左右。

第一次尝试解决问题

看到snappy压缩这么感人,果断立马用了gzip,压缩效果立马就体现出来了,单机发往kafka集群的流量在1.5Mb/s左右。但是又遇到了一个无法接受的问题,filebeat客户端cpu使用率有点高,2c机器大概在30%上下。(ps: lz4的流量也不能接受)

第二次尝试解决问题

在尝试了调各种参数无法解决问题后,只能尝试改代码了。。

说实话,我以前没有写过go代码,第一次上手真的是晕,全程面向搜索引擎编程。

因为我们只需要把数据发到kafka,所以需要做的就只是改filebeat kafka output部分的逻辑。

查问题

为什么filebeat发到kafkacpu使用这么高,在对代码一顿研究之后,发现filebeat发到kafka是一行日志发一条消息,然后kafka producer针对每条消息,做gzip压缩。

filebeat在采集日志时,会把一批日志构建一个batch,然后在协程里把batch的每条日志作为一个kafka record发到kafka

解决思路

既然filebeat在采集时已经构建了一个batch,为啥还要再把batch单条发送,直接把batch自己用gzip压缩一发不就完了嘛,然后把这批压缩后的batch作为一条kafkfa消息发给集群就行了(kafka producer的压缩策略配置为none)。

然后花了挺久的时间改代码,改完后测试了一发,流量比默认的gzip压缩还小,cpu比默认的gzip也有所降低,大概低了5-8%之间。

总结

说实话没啥好总结的,改fb的代码真是头疼。。。还是写flink开心多了,哈哈哈哈哈。

这篇关于糟糕的 filebeat的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/759877

相关文章

ELK系列之四---如何通过Filebeat和Logstash优化K8S集群的日志收集和展示

前 言 上一篇文章《日志不再乱: 如何使用Logstash进行高效日志收集与存储》介绍了使用ELK收集通用应用的日志,在目前大多应用都已运行在K8S集群上的环境,需要考虑怎么收集K8S上的日志,本篇就介绍一下如何使用现有的ELK平台收集K8S集群上POD的日志。 K8S日志文件说明 一般情况下,容器中的日志在输出到标准输出(stdout)时,会以.log的命名方式保存在/var/log/po

Elastic Stack(四):filebeat介绍及安装

目录 1 filebeat介绍1.1 filebeat和beat的关系1.2 filebeat是什么1.3 filebeat工作原理1.4 传输方案 2 安装2.1 filebeat-源码包安装8.11、下载2、创建密钥库3、修改filebeat配置文件修改filebeat配置文件(使用模块的配置) 4、配置快速启动文件注意 5、在kibana中查看 1 filebeat介绍

构建ELK+Filebeat+kafka+zookeeper大数据日志分析平台

https://blog.csdn.net/weixin_45623111/article/details/137143863?spm=1001.2014.3001.5502 在构建 ELK (Elasticsearch, Logstash, Kibana) + Filebeat + Kafka + Zookeeper 的大数据日志分析平台中,数据流向 filebeat -> logstash

Filebeat进阶指南:核心架构与功能组件的深度剖析

🐇明明跟你说过:个人主页 🏅个人专栏:《洞察之眼:ELK监控与可视化》🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、什么是ELK 2、FileBeat在ELK中的角色  二、FileBeat核心架构 1、Filebeat的整体架构图 2、核心组件 注册表(Registrar) 3、核心组件 爬虫(Harvester) 4、核心组件 发布者(Publisher

一篇糟糕的实验报告

本人在读本科大三学生,这个学期在修网络编程,在其中一次实验报告--利用wireshark观察和分析一些常见协议中,用了一周多的时间来研读相关资料和写报告。 在上学期修过计算机网络理论基础,绩点虽然过得去(90多),实际上我对TCP/IP的理解非常肤浅,根本道不出所学的体系结构等等。 在这次实验中,我用了很久没用的LaTeX去写(也因此花了不少时间在这),基本上按照自己的想法写到满意,后来我觉得

【一个糟糕的词:省流】

今日思考,博主分享📝,原文如下, 我最近听到了一个特别糟糕的词叫省流。我甚至认为这个词可以用来衡量一个人的智商啊,我们可以把一个知识简单的分成三部分问题,答案思维方式就是这个答案是怎么推导出来的啊,现在我不知道是什么原因啊,就越来越多人开始只关注那个那个答案。你可别废话了,啰里吧嗦一大堆,就直接说什么情况吧,对吧? 省流对吧?呃,但是最重要的是什么?恰恰就是这个思维方式。 著名的经济

使用filebeat采集文件到es中

继上一篇logstash采集日志。 之前用logstash做日志采集,但是发现logstash很占用机器资源导致机器运行有点慢。查询资料表明logstash使用Java编写,插件是使用jruby编写,对机器的资源要求会比较高,网上有一篇关于其性能测试的报告。之前做过和filebeat的测试对比。在采集日志方面,对CPU,内存上都要比前者高很多。那么果断使用filebeat作为替代方案。走起!

cubic 相比 bbr 并非很糟糕

迷信 bbr 的人是被它的大吞吐所迷惑,我也不想再解释,但我得反过来说一下 cubic 并非那么糟。 想搞大吞吐的,看看我这个 pixie 算法:https://github.com/marywangran/pixie,就着它的思路改就是了。 cubic 属于 aimd-based 算法,以 aimd 描述全程。以下是一个参数为 1,0.5 的 aimd 过程 tcptrace 图,md 采用

filebeat源码分析服务启动

在开始源码分析之前先说一下filebeat是什么?beats是知名的ELK日志分析套件的一部分。它的前身是logstash-forwarder,用于收集日志并转发给后端(logstash、elasticsearch、redis、kafka等等)。filebeat是beats项目中的一种beats,负责收集日志文件的新增内容。当前的代码分支是最新的6.x的代码。 先看我们服务启动配置文件的一个例子

elk+filebeat+kafka日志收集方案

文章目录 架构图搭建安装zookeeper集群安装kafka集群安装kafka-manager 管理平台安装elasticsearch集群安装filebeat安装logstash安装kibana 架构图 搭建 安装zookeeper集群 tar -zxf /opt/files/zookeeper-3.4.8.tar.gz -C /opt/env vim /op