性能监控-微服务链路追踪skywalking搭建

news/2024/11/28 23:44:44/

中文文档:hong设置 (skyapm.github.cio)

参考:微服务链路追踪SkyWalking的介绍和部署_skywalking部署_技术闲聊DD的博客-CSDN博客

参考:链路追踪SkyWalking整合项目以及数据持久化_skywalking 持久化_技术闲聊DD的博客-CSDN博客

Liunx部署skywalking以及skywalking基本使用_linux部署skywalking_LiuEastHua的博客-CSDN博客

官方demo:

Apache SkyWalking

下载skywalking APM

 

解压

tar zxvf apache-skywalking-apm-9.6.0.tar.gz 

 解压后文件

下载java agent

https://skywalking.apache.org/docs/main/next/en/setup/backend/log-analyzer/

wget https://dlcdn.apache.org/skywalking/java-agent/9.0.0/apache-skywalking-java-agent-9.0.0.tgz --no-check-certificate

 

 解压 

tar zxvf apache-skywalking-java-agent-9.0.0.tgz

配置数据库

配置文件路径apache-skywalking-apm-bin/config/

可以用ES,默认是h2,我这里配置为mysql

搭建SkyWalking OAP 服务 

cd  /apache-skywalking-apm-bin/bin/

./startup.sh

启动成功后会有两个服务,如下:

skywalking-oap-server:暴露11800 和 12800 两个端口,分别为收集监控数据的端口11800和接受前端请求的端口12800,修改端口可以修改config/applicaiton.yml
skywalking-web-ui:服务会占用 8080 端口, 修改端口可以修改webapp/webapp.yml


查看日志tail -300f  /apache-skywalking-apm-bin/logs/

问题1 jdk版本错误

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/skywalking/oap/server/webapp/ApplicationStartUp has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

 说明应该用jdk11版本,而我的jdk是1.8的。

安装jdk11版本。

问题2 mysql驱动不对

启动,报错

Failed to get driver instance for jdbcUrl=jdbc:mysql,可以直到是mySQL的驱动不对。

skywalking使用笔记 - 知乎 (zhihu.com)

在ops-lib加上MySQL驱动包,下载地址MySQL :: Download Connector/J

我下载的是depend platform版本,解压后,把jar包放到ops-lib下。

显示version of OAP后,start脚本仍然在运行,也无法访问。

反应很慢,过了5-10分钟,才显示jdbc操作

然后又卡住不动了。

问题3 windows闪退

用windows部署,同样修改数据库配置,添加mysql驱动,启动startup.bat闪退

百度说是文件夹路径有中文或者空格,去掉了空格,启动startup.bat解决。

问题4 webservice.bat窗口闪退 

查看时jdk版本不对,电脑同时有两个版本,读到了jdk8 应该读11,需要修改下环境变量。

改了jdk版本还是不对,手动输入命令

java -jar E:\sky\apache-skywalking-apm-9.0.0\apache-skywalking-apm-bin\webapp\skywalking-webapp.jar  --spring.config.location=E:\sky\apache-skywalking-apm-9.0.0\apache-skywalking-apm-bin\webapp\webapp.yml --logging.file=E:\sky\apache-skywalking-apm-9.0.0\apache-skywalking-apm-bin\logs\webapp.log

问题5 报错logback

卡住了,不知道怎么解决。

问题6 yaml报错

运行9.6.0版本又报错yaml文件

 

问题7

Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: finishConnect(..) 

意外惊喜? 

我又在linux上分别运行oap.service.sh和 webappservice.sh,过了很久很久,竟然可以访问了,这两个脚本也没有运行结束,然后这执行窗口也不能关,关了后skywalking就也不能用了。

实际这样的日志就是对的

 部署项目

下载一个测试jar

curl -O https://arthas.aliyun.com/math-game.jar

使用java agent,启动项目

nohup java -javaagent:skywalking-agent.jar -Dskywalking.agent.service_name=admin -jar adminmath-game.jar > /dev/null 2>&1 &

 启动后,在skywalking 常规服务-服务,可以看到启动的service。

windows版本安装

部署skywalking

1、准备好jdk11环境,设置环境变量。

2、修改application.yaml里数据库配置。我这里还用的mysql

3、mysql驱动放到ops-lib文件夹

用的是这个MySQL :: Download Connector/J

4、启动oapService.bat

5、启动webappService.bat

日志路径:D:\software\apache-skywalking-apm-9.6.0\apache-skywalking-apm-bin\logs 

启动成功标志,查看日志:

 数据库自动创建数据表

访问skywalking

访问:http://127.0.0.1:8080/

 部署項目

java -javaagent:skywalking-agent.jar -Dskywalking.agent.service_name=UserApplication -jar UserApplication-SNAPSHOT.jar

 报错

ERROR 2023-10-08 17:13:23.672 main SnifferConfigInitializer : Failed to read the config file, skywalking is going to run in default config.
org.apache.skywalking.apm.agent.core.conf.ConfigNotFoundException: Failed to load agent.config.

 配置文件加载失败,因为偷懒直接把agent.jar复制到了一个文件执行的命令。

再次在agent目录下执行命令

java -javaagent:skywalking-agent.jar -Dskywalking.agent.service_name=UserApplication -jar D:\Project\UserApplication\target\UserApplication-SNAPSHOT.jar

 

可以看到提示8080端口被占用了,所以需要指定端口启动

java -Dserver.port=8090 -javaagent:skywalking-agent.jar -Dskywalking.agent.service_name=UserApplication -jar D:\Project\UserApplication\target\UserApplication-SNAPSHOT.jar

启动成功

 启动后,在skywalkig会多出一个常规服务模块,点进去可以看到部署的服务。

 修改skywalking服务地址

skywalking-agent默认连接的是本机的skywalking,如果要修改配置,

修改配置文件:agent.config,修改

(1)服务名(The service nmae in UI),随意

(2)服务器地址(Backend service addresses)


http://www.ppmy.cn/news/1141065.html

相关文章

php实战案例记录(19)对登录角色的权限进行判断

在 PHP 中,通过以下步骤对登录角色的权限进行判断: 确定登录用户的角色:首先,需要确保登录用户分配了一个角色。这可以通过检查用户登录凭据(如用户名和密码)来验证,并将用户与特定角色关联起来…

第八章 排序 十二、败者树

一、多路平衡带来的问题 二、败者树的构造 三、败者树在K路平衡归并中的应用 1、我们有如下例子 2、接着我们构造一棵败者树,并且选出最小的数的归并段序号 3、接着把归并段3的数据填充进入败者树,这次最多只需要和之前的胜者比3次就能得到最终胜者 也…

计算机竞赛 题目: 基于深度学习的疲劳驾驶检测 深度学习

文章目录 0 前言1 课题背景2 实现目标3 当前市面上疲劳驾驶检测的方法4 相关数据集5 基于头部姿态的驾驶疲劳检测5.1 如何确定疲劳状态5.2 算法步骤5.3 打瞌睡判断 6 基于CNN与SVM的疲劳检测方法6.1 网络结构6.2 疲劳图像分类训练6.3 训练结果 7 最后 0 前言 🔥 优…

【刷题篇】回溯算法(深度优先搜索(二))

文章目录 岛屿数量电话号码的字母组合组合总和活字印刷 岛屿数量 给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直…

【Verilog】画出下列wave信号波形图

题目分析与仿真参考答案 题目 画出下列wave信号波形图。 分析与仿真 从0时刻开始,wave初值为0,持续50个时间单位 接下来wave变为1,持续100个时间单位,此时的时间是50 100 150 接下来wave变为0,持续100个时间单位&a…

day10.8ubentu流水灯

流水灯 .text .global _start _start: 1.设置GPIOE寄存器的时钟使能 RCC_MP_AHB4ENSETR[4]->1 0x50000a28LDR R0,0X50000A28LDR R1,[R0] 从r0为起始地址的4字节数据取出放在R1ORR R1,R1,#(0x1<<4) 第4位设置为1STR R1,[R0] 写回2.设置PE10管脚为输出模式 G…

Java RPC调用: 远程过程调用的实现与应用

远程过程调用&#xff08;RPC&#xff09;是一种允许程序在不同计算机之间进行通信的协议。它通过将本地函数调用转化为远程函数调用来实现分布式计算。在Java中&#xff0c;可以使用一些RPC框架实现远程过程调用&#xff0c;如Apache Thrift和gRPC。 用法: Java中的RPC调用可…

k8s集群-7 service

工作负载的应用是如何暴露出去的 解决访问问题 Service可以看作是一组提供相同服务的Pod对外的访问接口。借助Service&#xff0c;应用可以方便地实现服务发现和负载均衡。 service默认只支持4层负载均衡能力&#xff0c;没有7层功能。(可以通过Ingress实现) service的类型: C…