https://hub.docker.com/r/apache/skywalking-oap-server
https://hub.docker.com/r/apache/skywalking-ui
---启动Skywalking
docker run --name skywalking-oap --restart always -p 11800:11800 -p 12800:12800 -v /usr/local/app/skywalking/config:/skywalking/ext-config -d docker.io/apache/skywalking-oap-server:8.7.0-es7
-下载
https://archive.apache.org/dist/skywalking/8.7.0/apache-skywalking-apm-8.7.0.tar.gz,解压apache-skywalking-apm-8.7.0.tar.gz,解压目录为/usr/local/app/apache-skywalking-apm-bin/
-将目录
/usr/local/app/apache-skywalking-apm-bin/config中所有配置文件拷贝到/usr/local/app/skywalking/config
-配置application.yml,使用elasticsearch7存储数据,并配置es的链接地址
docker run --name skywalking-oap --restart always -p 1234:1234 -p 11800:11800 -p 12800:12800 -d --link elasticsearch:elasticsearch -e SW_STORAGE=elasticsearch -e SW_STORAGE_ES_CLUSTER_NODES=elasticsearch:9200 apache/skywalking-oap-server:8.3.0-es6
默认端口就是12800
---启动UI
docker run --name skywalking-ui --restart always -p 9898:8080 -e SW_OAP_ADDRESS=skywalking-oap:12800 -d docker.io/apache/skywalking-ui:8.7.0
访问地址:
http://ip:9898/
---程序启动加入监控脚本
java -javaagent:/usr/local/app/apache-skywalking-apm-bin/agent/skywalking-agent.jar -Dskywalking.agent.service_name=gateway-service -Dskywalking.collector.backend_service=192.168.43.237:11800 -Dserver.port=9090 -jar /usr/local/webapp/gateway.jar > /dev/null 2>&1 &
使用
以java使用为例。
1,拿到agent包
去官网下载skywalking的完整tar包
解压,把里面的agent文件夹整个传到被监控应用所在的服务器上
2,配置被监控应用的启动参数
-javaagent:/path/to/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=my-App-name -Dskywalking.collector.backend_service=localhost:11800
启动项目: 拷贝skywalking-agent目录到所需位置,探针包含整个目录,请不要改变目录结构,可修改agent.config配置agent.application_code=xxl-job为自己的应用名
增加JVM启动参数,-javaagent:/path/to/skywalking-agent/skywalking-agent.jar。
参数值为skywalking-agent.jar的绝对路径。
通过以上几步之后,我们就可以直接访问我们的项目的接口,看skywalking界面上能否收集到我们的调用信息了。
下图为skywalking的首页,主要展示全局的性能信息。
# 启动jar包
原来的启动方式为:
java -jar spring-boot-demo-0.0.1-SNAPSHOT.jar
那么使用skywalking agent,启动命令为:
java -javaagent:/opt/apache-skywalking-apm-bin/agent/skywalking-agent.jar -Dskywalking.agent.service_name=xxxtest -Dskywalking.collector.backend_service=127.0.0.1:11800 -jar /opt/spring-boot-demo-0.0.1-SNAPSHOT.jar
说明:
-javaagent 指定agent包位置。这里我将apache-skywalking-apm-es7-8.1.0.tar.gz解压到/opt目录了,因此路径为:/opt/apache-skywalking-apm-bin/agent/skywalking-agent.jar
-Dskywalking.agent.service_name 指定服务名
-Dskywalking.collector.backend_service 指定skywalking oap地址,我的地址为:192.168.34.26:11800
-jar 指定jar包的路径,这里我直接放到/opt/目录了。
#
随着微服务架构的流行,一些微服务架构下的问题也会越来越突出,比如一个请求会涉及多个服务,而服务本身可能也会依赖其他服务,整个请求路径就构成了一个网状的调用链,而在整个调用链中一旦某个节点发生异常,整个调用链的稳定性就会受到影响,所以会深深的感受到 “银弹” 这个词是不存在的,每种架构都有其优缺点 。
面对以上情况, 我们就需要一些可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题,这时候 APM(应用性能管理)工具就该闪亮登场了。
目前主要的一些 APM 工具有: Cat、Zipkin、Pinpoint、SkyWalking,这里主要介绍 SkyWalking ,它是一款优秀的国产 APM 工具,包括了分布式追踪、性能指标分析、应用和服务依赖分析等。
skywalking是一个开放源码的,用于收集、分析,聚合,可视化来自于不同服务和本地基础服务的数据的可观察的平台,
skywalking提供了一个简单的方法来让你对你的分布式系统甚至是跨云的服务有清晰的了解。
它更像是一个现代的系统性能管理,特别为分布式系统而设计。
skywalaking总体架构分为三部分:
skywalking-collector:链路数据归集器,数据可以落地ElasticSearch,单机也可以落地H2,不推荐,H2仅作为临时演示用
skywalking-web:web可视化平台,用来展示落地的数据
skywalking-agent:探针,用来收集和发送数据到归集器