Skywalking: 一款用于微服务的链路追踪工具。
- Skywalking Collector:数据分析、收集
- Skywalking UI:可视化界面
- Skywalking Agent:探头
官网:http://skywalking.apache.org/
版本:apache-skywalking-apm-es7-8.7.0
环境要求:JDK8+、ES7、8080,10800,11800,12800端口不被占用。
1)下载
下载页面:https://skywalking.apache.org/downloads/
2)下载后解压缩
3)目录讲解
4)设置配置文件 config/application.yml
storage:
# 修改存储引擎为mysql
selector: ${SW_STORAGE:mysql}
……
mysql:
properties:
# 修改ip和数据库
jdbcUrl: ${SW_JDBC_URL:"jdbc:mysql://localhost:3306/swtest"}
# 修改用户名
dataSource.user: ${SW_DATA_SOURCE_USER:root}
# 修改密码
dataSource.password: ${SW_DATA_SOURCE_PASSWORD:root}
……
Skywalking支持的几种存储方式:
h2
:是Skywalking自带的,对应的jar包路径是Skywalking/oap-libs/h2-1.4.196.jar,h2是一种内存数据库mysql
:MySQL数据库ElasticSearch
:ElasticSearch 非关系型数据库- ……
5)下载MySQL连接jar
下载链接:mysql-connector-java-5.1.49.jar
将jar包放在oap-libs
目录下即可,如果没有连接jar包,会抛如下异常:
Failed to get driver instance for jdbcUrl=jdbc:mysql://localhost:3306/swtest
No suitable driver
6)启动
- 在
bin/
目录下,执行starup.bat
(Windows)或者startup.sh
(Linux)文件 - startup脚本文件会同时启动Skywalking Collector、Skywalking UI
7)测试
访问:http://localhost:8080/
(可以在webapp
目录下的webapp.yml
文件中修改端口)
8)监控服务
Skywalking Agent探头服务的包在agent/skywalking-agent.jar
;
配置参数:
skywalking-agent\configagent.config
文件中配置Collector的IP和端口:
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:127.0.0.1:11800}
示例:
# 启动注册中心
# -javaagent 指向探头所在路径
# -Dskywalking.agent.service_name 服务名称
$ java -javaagent:D:\java\apache-skywalking-apm-es7-8.7.0\apache-skywalking-apm-bin-es7\agent\skywalking-agent.jar -Dskywalking.agent.service_name=注册中心 -jar eureka-server.jar
刷新界面如下:
9)踩坑:启动后页面访问空白
页面截图:
查看日志:
在 logs
文件夹中执行如下命令:
tail -n 500 skywlking0-oap-server.log
日志报错截图:
可以看到日志中报错 No files in meter-analyzer-config
:
日志文本:
2023-07-28 16:23:09,838 - org.apache.skywalking.oap.server.starter.OAPServerBootstrap - 60 [main] ERROR [] - No files in meter-analyzer-config
java.lang.NullPointerException: No files in meter-analyzer-config
at java.util.Objects.requireNonNull(Objects.java:228) ~[?:1.8.0_60]
at org.apache.skywalking.oap.server.library.util.ResourceUtils.getPathFiles(ResourceUtils.java:52) ~[library-util-9.2.0.jar:9.2.0]
at org.apache.skywalking.oap.server.analyzer.provider.meter.config.MeterConfigs.loadConfig(MeterConfigs.java:54) ~[agent-analyzer-9.2.0.jar:9.2.0]
at org.apache.skywalking.oap.server.analyzer.provider.AnalyzerModuleProvider.prepare(AnalyzerModuleProvider.java:101) ~[agent-analyzer-9.2.0.jar:9.2.0]
at org.apache.skywalking.oap.server.library.module.ModuleDefine.prepare(ModuleDefine.java:96) ~[library-module-9.2.0.jar:9.2.0]
at org.apache.skywalking.oap.server.library.module.ModuleManager.init(ModuleManager.java:46) ~[library-module-9.2.0.jar:9.2.0]
at org.apache.skywalking.oap.server.starter.OAPServerBootstrap.start(OAPServerBootstrap.java:44) [server-starter-9.2.0.jar:9.2.0]
at org.apache.skywalking.oap.server.starter.OAPServerStartUp.main(OAPServerStartUp.java:23) [server-starter-9.2.0.jar:9.2.0]
问题分析:
从报错角度来看是 meter-analyzer-config
中缺少文件,百度之后发现是因为 路径中包含中文名 导致的。
报错修复:
将 skywalking
所在路径中的中文名调整为英文,或者调整文件夹到不包含中文的目录下进行启动。正常启动后,应该是有两个控制台窗口:Skywalking Collector
+ Skywalking Webapp
。
通过 jps
查看目前系统中运行的 java 进程如下:
![](https://i-blog.csdnimg.cn/blog_migrate/081039300def9c56b0cd3b334c0a75df.png)
正常启动后,刷新页面:http://localhost:8080/
总结完毕,完结撒花~
参考地址:
1.Skywalking web页面空白问题解决,https://blog.csdn.net/weixin_48404074/article/details/130115841