SkyWalking是一个开源的分布式系统跟踪、监测和分析工具。它可以帮助我们实时了解分布式系统的性能指标、追踪调用链以及分析问题根因。SkyWalking支持多种语言和框架,可以与Java、.NET、Node.js等应用程序集成,并提供丰富的监控和分析功能。
在开始安装 SkyWalking 之前,确保满足以下前置条件:
● 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 的官方网站(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 上,官方文档的 Agent 章节有介绍(我是看不太明白),反而在 UI 介绍文档中看到了 服务器代理,里面有 「Java代理 了解如何在不影响代码的情况下在您的服务中安装 Java 代理」文章链接。但是最新的文档只有 v8.12.0 的。
在被监控的应用程序中,需要添加 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
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可以追踪分布式系统中各个服务之间的调用链,包括HTTP、RPC、消息队列等不同类型的调用。通过可视化的调用链图,我们可以清晰地了解请求经过哪些服务和组件,以及每个环节的耗时和错误情况。
SkyWalking可以监控关键性能指标,如请求响应时间、吞吐量、错误率等。通过设置阈值和告警规则,我们可以在系统出现性能下降或故障时及时得到通知,进行相应的处理和优化。
SkyWalking支持设置告警规则,并提供多种通知方式,如邮件、短信等。当系统的性能或可用性达到或超出预设阈值时,将触发告警并发送报警通知,帮助我们第一时间响应并解决问题。
通过本文的介绍,你已经了解了如何安装和配置 SkyWalking,以及如何启动并使用它来监控分布式系统。希望这篇文章对你有所帮助,祝你使用 SkyWalking 能够更好地监控和诊断你的应用程序。如果你有任何问题或疑问,请随时提问。
使用SkyWalking进行分布式系统监控