中文文档: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)