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 进程如下:

正常启动后,刷新页面:http://localhost:8080/

在这里插入图片描述

总结完毕,完结撒花~





参考地址:

1.Skywalking web页面空白问题解决,https://blog.csdn.net/weixin_48404074/article/details/130115841

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐