SkyWalking集成Kafka实现日志异步采集经验总结
SkyWalking日志异步采集架构

【重点知识】
1、【Agent】kafka-reporter-plugin-x.x.x.jar包放plugins目录后必走kafka(kafka没有正确配置就会报错)
2、【Agent】异步如不开启数据压缩,日志数据较大,pod多、业务大时容易造成网络拥堵
3、【Agent】SW_AGENT_INSTANCE_NAME默认:UUID@hostname,建议调整为:nodeip@podip
4、【Agent】官方说:使用Kafka时skywalking.collector.backend_service参数依然要配置
5、【APM】SkyWalking OAP配置启用kafka并配置好后,OAP启动时会自动创建Topic
环境及帮助文件
SkyWalking-OAP官方下载地址
SkyWalking-OAP帮助文档 -- 配置说明
SkyWalking-Agent官方下载地址
SkyWalking-Agent帮助文档 -- 配置说明
Agent is available for JDK 8 - 21
Oracle JDK8u202(Oracle JDK8最后一个非商业版本) 下载地址:Oracle JDK8u202
skywalking-OAP服务
启用kafka配置
编辑oap配置文件 ${skywalking-apm}/config/application.yml配置
# line 323 apache-skywalking-apm-9.6.0
kafka-fetcher:selector: ${SW_KAFKA_FETCHER:default}default:# 多个使用逗到分隔bootstrapServers: ${SW_KAFKA_FETCHER_SERVERS:localhost:9092}namespace: ${SW_NAMESPACE:""}# 默认3,几个消费者就配几partitions: ${SW_KAFKA_FETCHER_PARTITIONS:3}# 不能超过kafka集群机器的数量,默认2replicationFactor: ${SW_KAFKA_FETCHER_PARTITIONS_FACTOR:2}enableNativeProtoLog: ${SW_KAFKA_FETCHER_ENABLE_NATIVE_PROTO_LOG:true}enableNativeJsonLog: ${SW_KAFKA_FETCHER_ENABLE_NATIVE_JSON_LOG:true}consumers: ${SW_KAFKA_FETCHER_CONSUMERS:1}kafkaHandlerThreadPoolSize: ${SW_KAFKA_HANDLER_THREAD_POOL_SIZE:-1}kafkaHandlerThreadPoolQueueSize: ${SW_KAFKA_HANDLER_THREAD_POOL_QUEUE_SIZE:-1}
...
skywalking-agent服务
经验
-》 kafka-reporter-plugin-x.x.x.jar 这个包放plugins目录后必走kafka,如果kafka没有正确配置就会报错
-》 不压缩的情况下,一次请求约1KB日志
-》SW_AGENT_INSTANCE_NAME 默认:UUID@hostname,建议:host_ip@pod_ip
-》使用Kafka时skywalking.collector.backend_service参数依然要配置(官方说的)
开启Kafka
- 将${skywalking-agent}/optional-reporter-plugins/kafka-reporter-plugin-x.x.x.jar 拷贝到 ${skywalking-agent}/plugins
开启消息数据压缩
# optional-reporter-plugins下面任选一种(lz4、snappy、zstd-jni)压缩实现包即可
- 将${skywalking-agent}/optional-reporter-plugins/zstd-jni-x.x.x.jar 拷贝到 ${skywalking-agent}/plugins
Springboot应用增加jvm参数
应用启动参数,多个kafka地址使用逗号分割
# myApp 改为你的包名
java \
-javaagent:/usr/local/agent/skywalking-agent.jar \
-Dskywalking.agent.service_name=myApp \
-Dskywalking.collector.backend_service=aigoServer:11800 \
-Dskywalking.plugin.kafka.bootstrap_servers=10.81.**.14:9092 \
-Xmx1g \
myApp.jar
Tomcat应用增加jvm参数
应用启动参数,多个kafka地址使用逗号分割
# myApp 改为实际应用名
JAVA_OPTS="$JAVA_OPTS --javaagent:/usr/local/agent/skywalking-agent.jar \
-Dskywalking.agent.service_name=myApp \
-Dskywalking.collector.backend_service=aigoServer:11800 \
-Dskywalking.plugin.kafka.bootstrap_servers=10.81.**.14:9092"
说明:
使用Kafka时skywalking.collector.backend_service参数依然要配置(官方说的)
附件
附件一:lz4压缩算法
lz4压缩算法 --- 压缩速度快
GitHub - lz4/lz4: Extremely Fast Compression algorithm
附件二:snappy压缩工具
snappy压缩算法 --- 压缩速度快
GitHub - google/snappy: A fast compressor/decompressor
附件三:Zstd压缩算法
Zstd压缩算法 --- 压缩比高,CPU比较富裕时此算法
GitHub - facebook/zstd: Zstandard - Fast real-time compression algorithm
附件四:Kafka可视化管理工具
-) Kafka Map -- 国产、开源,通过配置kafka地址实现管理(作者使用)
kafka-map: 一个美观简洁且强大的kafka web管理工具。
-) kafka CMAK -- 通过配置zookeeper地址实现管理(作者使用)
GitHub - yahoo/CMAK: CMAK is a tool for managing Apache Kafka clusters
-) kafka-monitor -- 开源
https://github.com/linkedin/kafka-monitor/wiki
-) kafka-eagle -- 商业软件(收费)
EFAK
等等
附件五:客户端配置示例
# 客户端参数两种key形式
# 客户端参数两种key形式
-Dskywalking.agent.service_name=smet-rpc-service
-javaagent:/app/saashealth/skywalking-agent/skywalking-agent-9.2.0/skywalking-agent.jar
-Dskywalking.plugin.kafka.bootstrap_servers=10.130.***.92:19092
-Dskywalking.collector.backend_service=10.130.***.92:11801
# 大写变量形式
-DSW_AGENT_NAME=smet-rpc-service \
-javaagent:/app/saashealth/skywalking-agent/skywalking-agent-9.2.0/skywalking-agent.jar \
-DSW_KAFKA_BOOTSTRAP_SERVERS=10.130.***.92:19092 \
-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=10.130.***.92:11801 \
相关文章:
SkyWalking集成Kafka实现日志异步采集经验总结
SkyWalking日志异步采集架构 【重点知识】 1、【Agent】kafka-reporter-plugin-x.x.x.jar包放plugins目录后必走kafka(kafka没有正确配置就会报错) 2、【Agent】异步如不开启数据压缩,日志数据较大,pod多、业务大时容易造成网络…...
Java知识点——IO流
目录 一、IO流基础概念 二、常见的IO流类 三、字符流 1.字符输入流(Reader)与字符输出流(Writer) 2.常用实现类 3.实例 四、字节流 1.字节输入流(InputStream)与字节输出流(OutputStrea…...
uniapp h5端和app端 使用 turn.js
前提:添加页后,添加页与当前页会重叠在一起,不知道为什么,没有找到解决办法 1.h5端 <template><view class"container"><view id"flipbook"><view class"page page1">Page 1</view><view class"page pag…...
使用大语言模型(Deepseek)构建一个基于 SQL 数据的问答系统
GitHub代码仓库 架构 从高层次来看,这些系统的步骤如下: 将问题转换为SQL查询:模型将用户输入转换为SQL查询。 执行SQL查询:执行查询。 回答问题:模型根据查询结果响应用户输入。 样本数据 下载样本数据…...
时间转换(acwing)c/c++/java/python
读取一个整数值,它是工厂中某个事件的持续时间(以秒为单位),请你将其转换为小时:分钟:秒来表示。 输入格式 输入一个整数 NN。 输出格式 输出转换后的时间表示,格式为 hours:minutes:second…...
连接Sql Server时报错无法通过使用安全套接字层加密与 SQL Server 建立安全连接
文章目录 一. 前言二. 解决方案 方案1方案2 三. 总结 一. 前言 在《数据库原理》这门课的实验上,需要使用SQL Server,然后使用jdbc连接sql server突然报错为:SQLServerException: “Encrypt”属性设置为“true”且 “trustServerCertific…...
基于CNN的FashionMNIST数据集识别3——模型验证
源码 import torch import torch.utils.data as Data from torchvision import transforms from torchvision.datasets import FashionMNIST from model import LeNetdef test_data_process():test_data FashionMNIST(root./data,trainFalse,transformtransforms.Compose([tr…...
go channel 的用法和核心原理、使用场景
一、Channel 的核心用法 1. 基本操作 // 创建无缓冲 Channel(同步通信) ch : make(chan int) // 创建有缓冲 Channel(容量为5,异步通信) bufferedCh : make(chan int, 5) // 发送数据到 Channel ch <- 42 // 从…...
pyside6学习专栏(七):自定义QTableWidget的扩展子类QTableWidgetEx
PySide6界面编程中较常用的控件还有QTableWidget表格控件,用来将加载的数据在表格中显示出来,下面继承QTableWidget编写其扩展子类QTableWidgetEx,来实现用单元格来显示除数据文字外,还可以对表格的单元格的文字颜色、背景底色进行设置&#…...
Mybatis常用动态 SQL 相关标签
1. <if> 用于条件判断,当满足条件时执行对应的 SQL 片段。 示例: <select id"findUser" resultType"User">SELECT * FROM usersWHERE 11<if test"name ! null and name ! ">AND name #{name}</if><if…...
AWQ和GPTQ量化的区别
一、前言 本地化部署deepseek时发现,如果是量化版的deepseek,会节约很多的内容,然后一般有两种量化技术,那么这两种量化技术有什么区别呢? 二、量化技术对比 在模型量化领域,AWQ 和 GPTQ 是两种不同的量…...
ESP32S3:解决RWDT无法触发中断问题,二次开发者怎么才能使用内部RTC看门狗中断RWDT呢?
目录 基于ESP32S3:解决RWDT无法触发中断问题引言解决方案1. 查看报错日志2. 分析报错及一步一步找到解决方法3.小结我的源码基于ESP32S3:解决RWDT无法触发中断问题 引言 在嵌入式系统中,RWDT(看门狗定时器)是确保系统稳定性的重要组件。然而,在某些情况下,RWDT可能无法…...
基于SpringBoot的民宿管理系统的设计与实现(源码+SQL脚本+LW+部署讲解等)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...
go 日志框架
内置log import ("log""os" )func main() {// 设置loglog.SetFlags(log.Llongfile | log.Lmicroseconds | log.Ldate)// 自定义日志前缀log.SetPrefix("[pprof]")log.Println("main ..")// 如果用format就用PrintF,而不是…...
如何在 PDF 文件中嵌入自定义数据
由于 PDF 文件格式功能强大且灵活,它经常被用于内部工作流程。有时候,将自定义数据嵌入 PDF 文件本身会非常有用。通常,这些信息会被大多数工具忽略,因此 PDF 仍然可以作为普通 PDF 文件正常使用。 以下是一些实现方法࿱…...
计算机毕业设计SpringBoot+Vue.js服装商城 服装购物系统(源码+LW文档+PPT+讲解+开题报告)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
22.回溯算法4
递增子序列 这里不能排序,因为数组的顺序是对结果有影响的,所以只能通过used数组来去重 class Solution { public:vector<int> path;vector<vector<int>> res;void backtracking(vector<int>& nums,int start){if(path.si…...
linux -对文件描述符的操作dup、fcntl有五种
dup #include<unistd.h> int dup(int oldfd);作用:复制一个新的文件描述符fd 3, int fd1 dup(fd);f指向的是a.txt,fd1指向的也是a.txt从空闲的文件描述符表中找一个最小的作为新的拷贝的文件描述符返回:成功返回新的文件描述符,失败…...
技术解析 | 适用于TeamCity的Unreal Engine支持插件,提升游戏构建效率
龙智是JetBrains授权合作伙伴、Perforce授权合作伙伴,为您提供TeamCity、Perforce Helix Core等热门的游戏开发工具及一站式服务 TeamCity 是游戏开发的热门选择,大家选择它的原因包括支持 Perforce、可以进行本地安装,并提供了多种配置选项。…...
Ubuntu22.04 - brpc的安装和使用
目录 介绍安装使用 介绍 brpc 是用 c语言编写的工业级 RPC 框架,常用于搜索、存储、机器学习、广告、推荐等高性能系统 安装 先安装依赖 apt-get install -y git g make libssl-dev libprotobuf-dev libprotoc-dev protobuf-compiler libleveldb-dev libgflags-d…...
Qwen3.5-9B-GGUF高效率部署:单卡RTX 3090/4090运行9B模型详细参数配置
Qwen3.5-9B-GGUF高效率部署:单卡RTX 3090/4090运行9B模型详细参数配置 1. 项目概述 Qwen3.5-9B-GGUF是基于阿里云开源的Qwen3.5-9B模型,经过GGUF格式量化后的高效推理版本。这个项目使用llama-cpp-python和Gradio构建了一个完整的推理服务,…...
VSPD虚拟串口的5个高级用法:从基础调试到TCP/IP设备模拟
VSPD虚拟串口的5个高级用法:从基础调试到TCP/IP设备模拟 在嵌入式开发和工业自动化领域,串口通信调试一直是工程师们的日常挑战。传统物理串口受限于硬件连接、端口数量和环境干扰,而虚拟串口技术则打破了这些限制。VSPD作为业内知名的虚拟串…...
别再为.NET 3.5报错头疼了!Win10/LTSC系统离线安装最全避坑指南
Win10/LTSC系统.NET 3.5离线安装终极避坑手册:从错误码解析到镜像精准匹配 当你面对那个熟悉的灰色弹窗——"无法安装.NET Framework 3.5",而手头的工作软件正急待这个运行环境时,这种挫败感我深有体会。作为经历过数十次不同场景下…...
企业级云原生平台实战指南:Tsuru服务网格部署的完整解决方案
企业级云原生平台实战指南:Tsuru服务网格部署的完整解决方案 【免费下载链接】tsuru Open source and extensible Platform as a Service (PaaS). 项目地址: https://gitcode.com/gh_mirrors/ts/tsuru Tsuru是一款开源且可扩展的Platform as a Service (PaaS…...
Mastering Modular JavaScript:模块化思维的终极指南
Mastering Modular JavaScript:模块化思维的终极指南 【免费下载链接】mastering-modular-javascript 📦 Module thinking, principles, design patterns and best practices. 项目地址: https://gitcode.com/gh_mirrors/ma/mastering-modular-javascr…...
因果AI:用户增长领域的“决策透视镜”
因果AI:用户增长领域的“决策透视镜” 引言:从相关性到因果性,用户增长的新范式 在用户增长领域,我们长期依赖A/B测试和相关分析来指导决策。然而,相关不等于因果。你是否曾遇到过这些困境? 给所有沉默用…...
Kubernetes 生产环境调试安全最佳实践:2026 年完整指南
Kubernetes 生产环境调试安全最佳实践:2026 年完整指南 摘要:在生产环境中调试 Kubernetes 集群是每个 DevOps 工程师和 SRE 的日常工作。然而,传统的调试方法往往依赖宽泛的集群管理员权限、共享跳板机或长期有效的 SSH 密钥,这些…...
BODIPY FL-Fe₃O₄ NPs,BODIPY FL标记四氧化三铁纳米颗粒,主要应用
BODIPY FL-Fe₃O₄ NPs,BODIPY FL标记四氧化三铁纳米颗粒,主要应用BODIPY FL-Fe₃O₄ NPs(BODIPY FL标记四氧化三铁纳米颗粒)是一类将磁性无机纳米核与绿色荧光染料BODIPY FL耦合构建的多功能纳米体系,兼具磁响应与稳定…...
API密钥泄露率飙升47%?Dify 2026网关安全配置(2024Q3 CISA认证级实操手册)
第一章:API密钥泄露率飙升47%的行业现状与Dify 2026网关安全演进逻辑近年来,API密钥泄露事件呈爆发式增长。根据2025年CNVD与OWASP联合发布的《AI服务接口安全年报》,全球生产环境中检测到的硬编码API密钥泄露数量同比上升47%,其中…...
ESP32物联网开发终极指南:从Arduino核心到智能硬件实战
ESP32物联网开发终极指南:从Arduino核心到智能硬件实战 【免费下载链接】arduino-esp32 Arduino core for the ESP32 项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32 想要快速构建物联网设备却担心开发难度?ESP32 Arduino核心为…...
