🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# :-: **skywalking** :-: ## **skywalking 链路追踪介绍** `SkyWalking`是一个可观测性分析平台(Observability Analysis Platform 简称OAP)和应用性能管理系统(Application Performance Management 简称 APM)。 提供分布式链路追踪,服务网格(Service Mesh)遥测分析,度量(Metric)聚合和可视化一体化解决方案。 SkyWalking 特点 * 多语言自动探针,java,.Net Code ,Node.Js * 多监控手段,语言探针和Service Mesh * 轻量高效,不需要额外搭建大数据平台 * 模块化架构,UI ,存储《集群管理多种机制可选 * 支持警告 * 优秀的可视化效果。 ![](https://img.kancloud.cn/23/4b/234b3f9e2fbe2ce3cbf76759af224889_2362x1068.png) :-: :-: 二、安装 ``` 以下仅是基本的安装方法 ``` **步骤一,下载SkyWalking**:[http://skywalking.apache.org/downloads/](https://links.jianshu.com/go?to=http%3A%2F%2Fskywalking.apache.org%2Fdownloads%2F)解压缩后得到主目录如下 ![](https://img.kancloud.cn/41/62/41620bcdea90865aa6017d1a6afe8392_638x320.png) **步骤二,启动Collector**:定义:收集来自各项目上传的监控数据,并保存至h2或Elasticsearch部署:单独部署节点启动方法:进入/bin目录,windows运行startup.bat即可启动服务([Linux则启动startup.sh](http://xn--Linuxstartup-6x5ts6dt6j.sh)),这个时候实际上是启动了两个项目,一个收集器,一个web页面。然后在浏览器输入地址:localhost:8080,即可打开web监控页面: ![](https://img.kancloud.cn/76/42/7642f067de1928d06f86c86fd005bd84_1281x380.png) **** **** | 参数 | 描述 | | --- | --- | | javaagent | 配置skywalking-agent.jar的地址 | | service\_name | 配置需要监控的服务名 | | javaagent | skywalking收集器服务的地址 | **** **步骤三,安装Agent**:定义:获取当前项目的接口请求、jvm等信息,并将这些信息上传给Collector部署:跟随项目一起启动方法:复制或移动/agent目录到你所在的项目节点(如果只是本地测试就无所谓了),找到该目录下的skywalking-agent.jar文件,不要单独移动此文件,因为它与同目录下的其他配置文件有关联。使用java命令启动打包好的springboot项目jar包,例如: ``` java -javaagent:/usr/hj/apps/agent/skywalking-agent.jar -Dskywalking.agent.service_name=Trade -Dskywalking.collector.backend_service=服务器地址:11800 -jar hmall-service-trade/hmall-service-trade.jar --spring.profiles.active=test ``` ### **服务器地址:是**skywalking-server的服务器地址 注意指定的是skywalking-agent.jar的绝对路径)接下来,访问my-project工程的某一个接口,就能在刚才打开的skywalking服务端看到你的项目访问跟踪信息了。 **步骤四,完善Agent**:你会发现,你在skywalking的Web监控页面看到的项目名称并非你原有的项目名称,而是一个默认的—— Your\_ApplicationName。这是因为你还没有配置。打开/agent/config/agent.config文件,找到agent.service\_name一项,将Your\_ApplicationName变成你想要的项目名称、可能你还有一个疑问:我同一个服务器要部署多个项目,如果都使用同一个agent.config ,那么Collector就无法区分哪些监控信息对应哪个项目,那么在Web监控页面就只会显示同一个项目名称?此时,你可以在启动各个项目时覆盖原有配置,有两种方法:一种是另外创建一份agent.config并重命名(一个项目对应一个agent.config),另一种是在启动项目时仅指定特定参数。 ``` 覆盖文件:java -javaagent:/home/data/apache-skywalking-apm-incubating/agent/skywalking-agent.jar -Dskywalking_config=/home/data/apache-skywalking-apm-incubating/agent/config/agent-copy.config -jar my-project.jar 覆盖参数:参考官方文档。由于覆盖文件方式更容易处理,因此没有采取该种方式 ``` ``` 指定特定参数 java -javaagent:D:\project\hjmall\ext\agent\skywalking-agent.jar -Dskywalking.agent.service_name=hjmall-account -Dskywalking.collector.backend_service=skywalking-server的服务器地址:11800 -jar hjmall_product.jar ``` ## **idea开发环境:设置如下** ![](https://img.kancloud.cn/c2/a8/c2a89171ecfc08f7f9e08c972b8da03a_817x307.png) **步骤五,替换Collector的存储方案**:服务端默认采用in-memory方式存储信息,意味着你重启服务端后原有的信息就会丢失,你可以在Collector端的config/application.yml中将存储方式替换为Elasticsearch。[接下来修改Elasticsearch的cluster.name](http://xn--Elasticsearchcluster-vk45av2ztk8id6hd7nb09g.name),随后在/agent/cofig/agent.config中找到agent.application\_code一项,修改值与你的cluster.name一致,如果没有则增加。记住,对应着每个项目的agent.config文件都要进行相应修改。