当前位置: 首页 > news >正文

SkyWalking异步采集spring gateway日志

 SkyWalking异步采集spring gateway日志架构

 
环境及帮助文件

SkyWalking-OAP官方下载地址

SkyWalking-OAP帮助文档  -- 配置说明

SkyWalking-Agent官方下载地址

SkyWalking-Agent帮助文档 -- 配置说明

Agent is available for JDK 8 - 21

Oracle JDK8u202(Oracle JDK8最后一个非商业版本)   下载地址:Oracle JDK8u202

【重点知识】

异步采集相关通用配置见:

SkyWalking集成Kafka实现日志异步采集经验总结_skywalking kafka-CSDN博客

下面重点列出gateway集成上的差异

一、拷贝对应版本的gateway插件到插件目录

1、确认自己使用的gateway版本

如:下面是3.1.9

1、${skywalking-agent}/apm-spring-cloud-gateway-3.x-plugin-9.4.0.jar 拷贝到 ${skywalking-agent}/plugins

二、拷贝数据压缩插件到插件目录

说明:集成其他应用或组件同样适用

${skywalking-agent}/optional-reporter-plugins/zstd-jni-1.4.3-1.jar拷贝到 ${skywalking-agent}/plugins

zstd相比snappy-java-1.1.7.3.jar更耗CPU,但它的压缩比非常大,过万个pod的大型系统推荐使用。

三、拷贝链路过滤插件到插件目录

说明:集成其他应用或组件同样适用

${skywalking-agent}/optional-reporter-plugins/apm-trace-ignore-plugin-9.4.0.jar拷贝到 ${skywalking-agent}/plugins

并在agent的config目录创建文件:apm-trace-ignore-plugin.config,内容如下:

#  忽略路径数据上传
#  路径匹配规则
#  /path/?   单个字符
#  /path/*   多个字符
#  /path/**  多个字符和多级路径
#  多个规则使用逗号“,”分割
# 注意: 有些路径需要带要协议名称,是否需要带上参考sw-ui页面采集到的url数据
trace.ignore_path=${SW_AGENT_TRACE_IGNORE_PATH:GET:/actuator/**,/eureka/**}

常见问题

Q1:报NullPointer,打印堆栈异常与fastjson有关

A:这个CPU指标采样插件不要用:trace-sampler-cpu-policy-plugin-9.4.0.jar(其他几个低些的版本也一样),当然,如果你没报这个错,用了就用了也不用删除。

附件

附件一: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-OAP配置最佳实践

这里只对几个关键的参数进行说明,这些参数经常是成功实施的关键所在:

1、SW_STORAGE_ES_FLUSH_INTERVAL 默认5秒,这里设置10s

2、SW_STORAGE_ES_CONCURRENT_REQUESTS 默认4,这里设置为2

3、SW_STORAGE_ES_INDEX_SHARDS_NUMBER  -- 这个有资料显示用ES节点数*2,但作者告诉你,你只要设置为2就行了,这个2将是图中这个2,另外几个索引是10(2*5)个分区

注意

  •  修改oap配置需要在重启oap后删除ES索引,oap会自动按新分区数重建
  • 上图几个G只是30分钟的数据(因为作者30分钟前有删除所有索引数据)

4、SW_STORAGE_ES_INDEX_REPLICAS_NUMBER  ES 副本数量设置为0即可

5、SW_KAFKA_FETCHER_CONSUMERS  默认2,不变

6、SW_KAFKA_FETCHER_PARTITIONS  单个消费者消费多少个分区:这里设5,那么2个消费都一共消费10个分区。实际kafka10个分区,这里所有pod(3个集群,每个集群4个oap的pod,共12个oap的pod)都消费所有分区。下图可以看到kafka topic的分区数量

7、SW_KAFKA_FETCHER_PARTITIONS_FACTOR   -- 分区因子,可以是kafka topic的总分区数,也可以是小数,比如:0.2 (表示消费的topic的数量占总数量的比例) 。作者设置为10

总之,读者在实际项目中根据上面的信息结合实际理论上可以优化出一套可行的配置。保证7*24小时不挂

http://www.lryc.cn/news/598625.html

相关文章:

  • postgresql执行创建和删除时遇到的问题
  • AWS云S3+Glue+EMRonEC2+ReadShift
  • ThinkPHP8集成RabbitMQ的完整案例实现
  • 使用 Strands Agents 开发并部署生产级架构通用型个人助手
  • 【论文阅读】基于EEG的冥想状态数据挖掘研究(2025)
  • 深入探索Amazon SQS:构建弹性微服务与无服务器应用的秘密武器
  • Nodejs:从“模块未找到”到“大师之路”, 项目初始化与依赖安全完全指南
  • JimuReport 积木报表 v2.1.1 版本发布,免费开源的报表和大屏
  • 主流摄像头协议及其开源情况,GB/T 28181协议介绍
  • Word2Vec模型训练全流程解析:从数据预处理到实体识别应用
  • PyTorch常用Tensor形状变换函数详解
  • 如何恢复mysql,避免被研发删库跑路
  • 多模态数据处理系统:用AI读PDF的智能助手系统分析
  • 六、Element-快速入门
  • K8s WebUI 选型:国外 Rancher vs 国内 KubeSphere vs 原生 Dashboard,从部署到使用心得谁更适合企业级场景?
  • 从零用java实现 小红书 springboot vue uniapp(14) 集成阿里云短信验证码
  • Android安全存储:加密文件与SharedPreferences最佳实践
  • 【C++】使用箱线图算法剔除数据样本中的异常值
  • 进程通信----匿名管道
  • 【redis其它面试问题】
  • PHP 与 Vue.js 结合的前后端分离架构
  • 工具分享02 | Python批量文件重命名工具
  • 电商接口什么意思?
  • 数据所有权与用益权分离:数字经济时代的权利博弈与“商业机遇”
  • Claude Code是如何做上下文工程的?
  • Maven Scope标签:解锁Java项目依赖管理的秘密武器
  • [嵌入式embed]ST官网-根据指定固件名下载固件库-STSWSTM32054[STM32F10x_StdPeriph_Lib_V3.5.0]
  • 使用maven-shade-plugin解决依赖版本冲突
  • RCLAMP0504S.TCT 升特半导体TVS二极管 无损传输+军工防护+纳米护甲 ESD防护芯片
  • 陕西地区特种作业操作证考试题库及答案(登高架设作业)