链路追踪框架
官网:http://skywalking.apache.org/
下载:http://skywalking.apache.org/downloads/
Github:https://github.com/apache/skywalking
文档:https://skywalking.apache.org/docs/main/v9.4.0/readme/
中文文档: https://skyapm.github.io/document-cn-translation-of-skywalking/
SkyWalking OAP 服务、SkyWalking UI 服务
官网下载:
https://skywalking.apache.org/downloads/
在线下载:
wget https://dlcdn.apache.org/skywalking/9.4.0/apache-skywalking-apm-9.4.0.tar.gz
wget https://dlcdn.apache.org/skywalking/java-agent/8.15.0/apache-skywalking-java-agent-8.15.0.tgz
习惯放到local路径下
cd /usr/local/
tar -zxvf apache-skywalking-apm-9.4.0.tar.gz -C /usr/local
tar -zxvf apache-skywalking-java-agent-8.15.0.tgz -C /usr/local
避免端口冲突,更换 SkyWalking UI界面默认8080端口:
cd apache-skywalking-apm-bin
查看目录
ll
编辑yml文件,以8100端口为例:
vi webapp/application.yml
vi config/application.yml
:set number 可查看行号
大概133 行 修改h2为mysql
storage:
selector: ${SW_STORAGE:mysql}
大概183-194行,确认MySQL连接信息(地址、账号、密码),记得新建数据库。
mysql:
properties:
jdbcUrl: ${SW_JDBC_URL:"jdbc:mysql://localhost:3306/swtest?rewriteBatchedStatements=true"}
dataSource.user: ${SW_DATA_SOURCE_USER:root}
dataSource.password: ${SW_DATA_SOURCE_PASSWORD:123456}
ESC :wq 保存并退出
下载MySQL驱动jar包到 /oap-libs
目录下
wget -P /usr/local/apache-skywalking-apm-bin/oap-libs https://repo1.maven.org/maven2/com/mysql/mysql-connector-j/8.0.32/mysql-connector-j-8.0.32.jar
sh bin/oapService.sh
查看启动日志:tail -f logs/skywalking-oap-server.log
最后一句为
50 [main] INFO [] - Version of OAP: 9.4.0-520d531
skywalking-oap-server服务启动后会暴露11800 和 12800 两个端口,记得放开端口。
sh bin/webappService.sh
默认是8080端口,上面更换了
访问:
http://192.168.20.128:8100/
官方提供了两个脚本一起启动的脚本,这次启动无误后,下次可直接
sh bin/startup.sh
服务开机自启配置,参考8
写一个shell脚本,通过 -javaagent 参数进行 配置SkyWalking Agent来跟踪微服务
vi SkyWalking-Test-startup.sh
添加内容:
#!/bin/sh
# SkyWalking Agent 配置
# 配置Agent名字为项目的 `spring.application.name`
export SW_AGENT_NAME=SkyWalking-Test
# 配置 Collector 地址
export SW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800
#配置链路的最大Span数量,默认为 300
export SW_AGENT_SPAN_LIMIT=2000
# SkyWalking Agent jar 地址
export JAVA_AGENT=-javaagent:/usr/local/skywalking-agent/skywalking-agent.jar
# jar 启动
java -jar $JAVA_AGENT -jar SkyWalking-Test-0.01-SNAPSHOT.jar
赋权:
chmod u+x SkyWalking-Test-startup.sh
等同于:
java ‐javaagent:usr/local/skywalking-agent/skywalking-agent.jar ‐DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800 ‐DSW_AGENT_NAME=SkyWalking-Test ‐jar SkyWalking-Test-0.01-SNAPSHOT.jar
IDEA中配置JVM参数,编辑VM Options,如果应用程序和SkyWalking部署在同一机器,backend_service可以不写
# skywalking‐agent.jar的本地磁盘的路径
-javaagent:F:\Apache\skywalking-agent\skywalking-agent.jar
# 在skywalking上显示的服务名
-Dskywalking.agent.service_name=SkyWalking-Test
# skywalking的collector服务的IP及端口
-Dskywalking.collector.backend_service=192.168.20.128:11800
-DSW_AGENT_COLLECTOR_BACKEND_SERVICES
可以指定远程地址,但-javaagent必须绑定本地路径的 skywalking- agent.jar
<!-- Skywalking 工具类-->
org.apache.skywalking</groupId>
apm-toolkit-trace</artifactId>
8.15.0</version>
</dependency>
只需要在业务方法上加上@Trace注解
在方法上增加@Tag或者@Tags。
@Tag 注解中 key = 方法名 ; value = returnedObj 返回值 arg[0] 参数
准备设置一个.service,开机执行这个脚本文件,以此实现自启效果
系统启动脚本目录 /etc/systemd/system/
vi /etc/systemd/system/skyWalking.service
[Unit]
Description=skyWalking
After=network.target remote-fs.target nss-lookup.target mysql8.service zookeeper.service kafka.service nacos-cluster.service
[Service]
Type=forking
ExecStart=sh /usr/local/apache-skywalking-apm-bin/bin/startup.sh start
PrivateTmp=true
[Install]
WantedBy=multi-user.target
按ESC :wq保存并退出
chmod 754 /etc/systemd/system/skyWalking.service
systemctl enable skyWalking.service
systemctl daemon-reload
可重启尝试脚本可行性(reboot)
systemctl status skyWalking.service
暂时到这,感谢阅览~
END