Skywalking

1、简介

Skywalking是由国内开源爱好者吴晟开源并提交到Apache孵化器的开源项目, 2017年12月SkyWalking成为Apache国内首个个人孵化项目, 2019年4月17日SkyWalking从Apache基金会的孵化器毕业成为顶级项目, 目前SkyWalking支持Java、 .Net、 Node.js、 go、 python等探针, 数据存储支持MySQL、 ElasticSearch等, SkyWalking与Pinpoint相同, 对业务代码无侵入, 不过探针采集数据粒度相较于Pinpoint来说略粗, 但性能表现优秀, 目前SkyWalking增长势头强劲, 社区活跃, 中文文档齐全, 没有语言障碍, 支持多语言探针, 这些都是 SkyWalking的优势所在, 还有就是SkyWalking支持很多框架, 包括很多国产框架, 例如, Dubbo、 gRPC、 SOFARPC 等等, 同时也有很多开发者正在不断向社区提供更多插件以支持更多组件无缝接入SkyWalking。

官网地址:Apache SkyWalking

Skywalking 快速搭建应用监控_skywalking 前端监控-CSDN博客

2、下载

Index of /skywalking

清华的Open JDK下载镜像: hotspot版本
wget https://mirrors.tuna.tsinghua.edu.cn/Adoptium/11/jdk/arm/linux/OpenJDK11U-jdk_arm_linux_hotspot_11.0.22_7.tar.gz

Open JDK下载_openjdk下载-CSDN博客

下载apm 及agent

wget https://dlcdn.apache.org/skywalking/9.7.0/apache-skywalking-apm-9.7.0.tar.gz
wget https://dlcdn.apache.org/skywalking/java-agent/apache-skywalking-java-agent-9.1.0.tgz
# 安装
pwd
/data/midware/skywaiking
tar -zxvf apache-skywalking-apm-9.7.0.tar.gz
tar -zxvf  apache-skywalking-java-agent-9.1.0.tgz
# 9以后的版本,需要jdk11+
vi bin/webappService.sh # 添加如下内容
export JAVA_HOME=/data/midware/jdk/jdk-11.0.21+9
#初始化 数据库需要自己手动创建,表的话,启动下面的sh脚本即可
sh oapServiceInit.sh  >> /data/midware/skywaiking/log/skyoapinit.log 2>&1 &
#运行  oap服务: 数据收集后台服务
sh oapService.sh >> /data/midware/skywaiking/log/skyoap.log 2>&1 &
# 运行 web服务: 可视化 
sh webappService.sh >> /data/midware/skywaiking/log/skyweb.log 2>&1 &

数据源可以选择关系数据库 PostgreSQL 或者ES等

pwd
/apache-skywalking-apm-bin/config/application.yml 
storage.selector = ${SW_STORAGE:postgresql}

3、后端上报端口

Http默认端口 12800 【前端上报端口】,gRPC默认端口 11800【后台上报端口】。

# 在需要被agent 监控的项目的启动脚本中加入
# 数据通过 11800端口进行上报
JAVA_OPTS=" $JAVA_OPTS -javaagent:/data/midware/skywalking/skywalking-agent/skywalking-agent.jar"
JAVA_OPTS=" $JAVA_OPTS -Dskywalking.agent.service_name=xxxxProject -Dskywalking.collector.backend_service=192.168.5.190:11800"
nohup $JAVA $JAVA_OPTS $JAVA_DEBUG_OPT $ADAPTER_OPTS -classpath .:$CLASSPATH  -jar xxxxProject .jar  > stdout.log 2>&1 &

4、前端上报 走12800 端口

前端有相应的js SDK

使用skywalking-client-js 监控vue2项目数据-CSDN博客

Skywalking Agent配置及使用(2)

Skywalking Agent配置及使用(2)_skywalking-agent.jar-CSDN博客

5、小结:

skywalking 主要是偏后端API上报,对于有用户行为统计,但是需求不多的个性化功能,可以考虑自研,这样可提高定制化的灵活度,方便网站的运营。