Skywalking是一个分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。SkyWalking 是观察性分析平台和应用性能管理系统。提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。支持Java, .Net Core, PHP, NodeJS, Golang, LUA语言探针,支持Envoy + Istio构建的Service Mesh。
一、基础环境
服务器: windos
Java jdk:1.8
Skywalking: 8.3
Elasticsearch: 6.7 (数据存储)
Nodejs: 14.15
Kibana: 6.7 (ES数据可视化)
二、安装、配置、启动
所有服务为本地安装,各软件均采用默认配置,若有需求更改对应软件相关配置文件即可。
2.1 ES + Kibana
1、解压压缩包
2、执行 elasticsearch-6.7.0\bin\elasticsearch.bat 文件,http://localhost:9200/ 验证启动情况
3、执行 kibana-6.7.2-windows-x86_64\bin\Kibana.bat 文件,http://localhost:5601/验证启动情况
2.2 Skywalking
主要目录结构如下:
- bin目录存放的是启动脚本,包含oapService.sh、webappService.sh等启动脚本
- config是oap服务的配置,包含一个application.yml的配置我呢
- agent是skywalking的agent,一般用来采集业务系统的日志
- webapp目录是skywalking前端的UI界面服务的配置
整体的架构如下:
在整个skywalking的系统中,有四个角色:
- skywalking agent和业务系统绑定在一起,负责收集各种监控数据
- Skywalking oapservice是负责处理监控数据的,比如接受skywalking agent的监控数据,并存储在数据库中;接受skywalking webapp的前端请求,从数据库查询数据,并返回数据给前端。Skywalking oapservice通常以集群的形式存在。
- skywalking webapp,前端界面,用于展示数据。
- 用于存储监控数据的数据库,比如mysql、elasticsearch等。
2.2.1 配置更改
更改存储数据库:apache-skywalking-apm-bin\config\application.yml
storage:
# h2 为默认数据库
#selector: ${SW_STORAGE:h2}
# 选择 ES
selector: ${SW_STORAGE:elasticsearch}
启动: 执行 apache-skywalking-apm-bin\bin\startup.bat 文件, http://localhost:8080/ 验证启动情况
三、JVM 服务使用
通过添加JVM启动参数的方式来覆写配置项:
# 指定java agent的jar包路径
-javaagent:D:\software\apache-skywalking-apm-bin\agent\skywalking-agent.jar
# 指定skywalking agent的服务名称,通常对应项目的服务名称
-Dskywalking.agent.service_name=you-service-name
更多配置项参考: apache-skywalking-apm-bin\agent\config\agent.config
完成以上步骤后,在IDEA中引导类的配置界面里设置JVM启动参数(多个服务分别添加即可)
启动服务,刷新 Skywalking页面看到【当前服务】不为空则成功