小知识,大挑战!本文正在参与“程序员必备小知识”创作活动
本文同时参与「掘力星计划」,赢取创作大礼包,挑战创作激励金
该篇博客是Skywalking的安装使用
官方文档:
github.com/apache/skyw…
一. 简介
Skywalking概念相关的介绍请看官方文档官方文档
Skywalking用于分布式系统的应用程序性能监视工具,特别为微服务、云本机和基于容器(Docker, K8s, Mesos)架构设计。
二. Skywalking架构
从逻辑上讲,SkyWalking分为四个部分
- 探针(Agent):收集数据并重新格式化以符合SkyWalking的要求(不同的探针支持不同的来源)。
- 后端(Oap):支持数据聚合,分析并驱动从探针到UI的流程。该分析包括SkyWalking本机跟踪和度量,第三方,包括Istio和Envoy遥测,Zipkin跟踪格式等。您甚至可以通过使用针对本机度量的Observability Analysis Language和针对扩展度量的Meter System来定制聚合和分析。
- 存储:通过开放/可插入的界面存储SkyWalking数据。您可以选择现有的实现,例如ElasticSearch,H2或由Sharding-Sphere管理的MySQL集群,也可以实现自己的实现。欢迎为新的存储实现者打补丁!
- UI:是一个高度可定制的基于Web的界面,允许SkyWalking最终用户可视化和管理SkyWalking数据。
后端(Oap)又分为三个角色
- 混合Mixed(默认):默认角色,OAP应承担以下责任,1.接收代理跟踪或指标,2.进行L1聚合,3.内部通讯(发送/接收),4.进行L2聚合,5.持久化,6.报警
- 接收者Receiver:1.接收代理跟踪或指标,2.进行L1聚合,3.内部通讯(发送/接收)
- 聚合器Aggregator:4.进行L2聚合,5.持久化,6.报警
可以利用Receiver和Aggregator进行高级部署,来区分节点责任,缓解压力、
注意:Receiver节点也可以进行持久化,继承Record类的实体在进行L1聚合时持久化
三. 安装OAP
3.1 前置
本教程使用的是最新版8.0.1,使用的数据源是es7,如果你要部署集群环境就适用zookeeper
所以需要安装es7和zk(可选,集群需要)
请自行安装,本教程重点是skywalking
3.2 下载
点击进入下载页
下载最新版8.0.1
解压后
3.3 修改配置application.yml
/config/application.yml部分配置
1 | yml复制代码cluster: |
主要修改,SW_CLUSTER
, SW_CORE_ROLE
,SW_STORAGE
,SW_NAMESPACE
,SW_STORAGE_ES_CLUSTER_NODES
SW_CLUSTER
默认standalone单机模式SW_CORE_ROLE
默认Mixed混合模式SW_STORAGE
存储,我使用的是es7,所以设置成elasticsearch7SW_NAMESPACE
es的namespaceSW_STORAGE_ES_CLUSTER_NODES
es地址,多个地址以,
分割
3.4 webapp配置
可以在这里修改前端工程端口,默认8080
webapp/webapp.yml
1 | yml复制代码server: |
3.5 启动
进入bin目录,执行启动文件,windows下startup.bat
,linux为startup.sh
。startup.bat
包含后端启动文件oapService.bat
和前端启动文件webappService.bat
。
后端工程会启动两个端口11800
和12800
,大多数代理使用11800
端口,只有少数不支持grpc的代理使用12800
。
前端工程使用12800
启动成功后访问**http://localhost:8080**显示如下:
四. 使用Agent
agent目录
4.1 修改配置
有四种方式配置,优先级如下
探针配置 > JVM配置 > 系统环境变量配置 > agent.config文件
1.JVM配置覆盖
1 | ini复制代码-Dskywalking.agent.service_name = demo-provider |
2.探针配置覆盖
1 | ini复制代码-javaagent:/var/local/agent/skywalking-agent.jar=agent.service_name=service-pfm |
我们使用JVM 配置,所以此处不修改。
/agent/config/agent.config主要配置
1 | yml复制代码# 不同的namespace会导致调用链路追踪中断 |
注意:如果Collector以集群方式部署,比如:Acollector和Bcollector,建议Acollector.sampleRate = Bcollector.sampleRate
4.2 启动工程接入Agent
在jvm启动参数上添加
1 | javascript复制代码-javaagent:/var/local/apache-skywalking-apm-bin/agent/skywalking-agent.jar |
完整的启动命令
1 | ini复制代码java -javaagent:/var/local/apache-skywalking-apm-bin/agent/skywalking-agent.jar -Dskywalking.agent.service_name=service-pfm -Dskywalking.collector.backend_service=127.0.0.1:11800 -jar simple-skywalking-test.jar |
IDEA中启动
添加参数,直接正常启动就可以了
启动成功后访问API,页面会看到数据
排错需要观察agent的日志,路径为/agent/logs/skywalking-api.log
和skywalking的运行日志,路径为logs/skywalking-oap-server.log
本文转载自: 掘金