文章目录
- 什么是SkyWalking
- 为什么选择SkyWalking
- 安装步骤
- 前置条件
- 环境要求
- 下载 SkyWalking
- 配置 SkyWalking
- Skywalking 使用
- Agent 配置
- Collector 配置
- 启动 SkyWalking
- 配置SkyWalking代理
- SkyWalking的监控功能
- 分布式调用链追踪
- 性能指标监控
- 告警和报警
- 总结
什么是SkyWalking
SkyWalking是一个开源的分布式系统跟踪、监测和分析工具。它可以帮助我们实时了解分布式系统的性能指标、追踪调用链以及分析问题根因。SkyWalking支持多种语言和框架,可以与Java、.NET、Node.js等应用程序集成,并提供丰富的监控和分析功能。
为什么选择SkyWalking
- 分布式追踪:SkyWalking可以跟踪分布式系统中不同服务之间的调用关系,帮助我们定位性能瓶颈和故障根源。
- 性能监测:SkyWalking可以监控关键性能指标,如请求响应时间、吞吐量等,帮助我们评估系统的性能状况。
- 告警和报警:SkyWalking支持设置告警规则,并在达到指定条件时发送报警通知,帮助我们及时发现和解决问题。
- 易于集成:SkyWalking提供了与多种常见技术栈的集成方案,可以快速将其集成到我们的应用程序中。
安装步骤
前置条件
在开始安装 SkyWalking 之前,确保满足以下前置条件:
- Java 运行环境已经安装并配置好。
- 确定要监控的应用程序已经部署并运行。
环境要求
● JDK 版本:JKD8 ~ JDK17 之间
● 端口:
○ 11800:后端监听 gRPC API 的端口
○ 12800:后端监听 HTTP REST API 的端口
○ 8080:web UI 界面端口
# Linux / macOS
netstat -an | grep 8080
# windows
netstat -ano | findstr 8080
下载 SkyWalking
首先,从 SkyWalking 的官方网站(https://skywalking.apache.org/downloads/ )下载最新的发布版本。选择适合你系统的压缩包,并解压到你希望安装的目录。
下载一个最新的版本 9.2.0
# 解压
tar -xf apache-skywalking-apm-9.2.0.tar
cd apache-skywalking-apm-bin/
# 进入 bin 目录,启动
[root@localhost apache-skywalking-apm-bin]# cd bin/
[root@localhost bin]# ./startup.sh
SkyWalking OAP started successfully!
SkyWalking Web Application started successfully!
# 显示启动成功,
# 启动后的日志默认在安装目录下的 logs 目录,里面有日志 oap.log skywalking-oap-server.log webapp-console.log
# 启动成功的话,会看到 skywalking-oap-server.log
# 停止服务
[root@localhost bin]# jps
1731 skywalking-webapp.jar
1716 OAPServerStartUp
2127 Jps
[root@localhost bin]# kill 1731 1716
然后访问 http://xxx.xxx.xx.xxx:8080/(如果是在你自己电脑上安装的,则是你的本地ip,如果是在linux服务器上安装的,则是你服务器的ip地址) 就进入到了 Skywalking UI 界面。
配置 SkyWalking
安装完成后,需要对 SkyWalking 进行一些基本的配置。
Skywalking 使用
也就是如何让服务接入到 Skywalking 上,官方文档的 Agent 章节有介绍(我是看不太明白),反而在 UI 介绍文档中看到了 服务器代理,里面有 「Java代理 了解如何在不影响代码的情况下在您的服务中安装 Java 代理」文章链接。但是最新的文档只有 v8.12.0 的。
Agent 配置
在被监控的应用程序中,需要添加 SkyWalking Agent 的配置。根据你的应用程序类型,选择合适的 Agent 配置方式,并将其添加到应用程序的启动脚本中。
示例 Agent 配置:
# SkyWalking Agent 配置
agent.service_name=my-application
agent.sample_n_per_3_secs=100
agent.namespace=default
agent.collector.backend_service=localhost:11800
Collector 配置
SkyWalking Collector 是用于接收和处理来自 Agent 的监控数据的组件。在 Collector 的配置文件中,你可以指定数据存储方式、数据存储位置以及其他相关的配置项。
示例 Collector 配置:
# SkyWalking Collector 配置
storage:
elasticsearch:
name: default
namespace: ${SW_NAMESPACE:default}
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:1}
indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0}
启动 SkyWalking
完成配置后,你可以启动 SkyWalking,并开始监控你的应用程序了。根据你的安装方式,执行相应的启动命令或脚本。
配置SkyWalking代理
- 在应用程序中添加SkyWalking代理的依赖,具体方法取决于应用程序使用的语言和框架。
- 根据具体需求修改代理配置文件,如指定SkyWalking服务器地址和端口。
- 启动应用程序,代理将自动收集应用程序的性能指标和调用链信息,并发送给SkyWalking服务器。
SkyWalking的监控功能
分布式调用链追踪
SkyWalking可以追踪分布式系统中各个服务之间的调用链,包括HTTP、RPC、消息队列等不同类型的调用。通过可视化的调用链图,我们可以清晰地了解请求经过哪些服务和组件,以及每个环节的耗时和错误情况。
性能指标监控
SkyWalking可以监控关键性能指标,如请求响应时间、吞吐量、错误率等。通过设置阈值和告警规则,我们可以在系统出现性能下降或故障时及时得到通知,进行相应的处理和优化。
告警和报警
SkyWalking支持设置告警规则,并提供多种通知方式,如邮件、短信等。当系统的性能或可用性达到或超出预设阈值时,将触发告警并发送报警通知,帮助我们第一时间响应并解决问题。
总结
通过本文的介绍,你已经了解了如何安装和配置 SkyWalking,以及如何启动并使用它来监控分布式系统。希望这篇文章对你有所帮助,祝你使用 SkyWalking 能够更好地监控和诊断你的应用程序。如果你有任何问题或疑问,请随时提问。
使用SkyWalking进行分布式系统监控