前言
工作中在执行不同场景性能测试的时候,避免不了对应用的链路进行分析,这样在我们进行性能瓶颈定位的时候不但能有判断的依据,还有瓶颈定位的证据链。今天就带着大家搭建一套应用链路追踪环境。我们就选择目前最主流的SkyWalking+ElasticSearch吧,我在之前的公司做性能的时候用的也是这套环境。
工作原理大概是这样的,SkyWalking的Agent(探针)从应用中收集 SkyWalking Tracing(链路追踪)出来的数据,把数据传递给SkyWalking的OAP服务,SkyWalking的OAP服务接收到Agent发送过来的这些数据后对这些数据进行分析并整合,整合的数据会存储到ElasticSearch、H2、MySQL等存储器中,我这里选择ElasticSearch存储器,SkyWalking UI(可视化界面)把SkyWalking OAP服务整合的数据可视化展示出来。SkyWalking的具体原理和架构图大家可以进入SkyWalking的官网自行查看。
根据SkyWalking的工作原理整体环境部署过程分下面几步进行:
部署ElasticSearch服务并测试
部署SkyWalking OAP服务+SkyWalking UI并测试
Agent集成JAVA项目应用程序
部署ElasticSearch服务
下载ElasticSearch镜像,如果不知道镜像名字,可以进入Docker镜像仓库查询下,
https://hub.docker.com/searchq=elasticsearch&type=image
浏览器访问进入后搜索框输入elasticsearch,操作如下图:
2.进入到服务器粘贴这个命令开始下载镜像
3.镜像下载后如何运行呢?在刚才复制下载镜像命令的页面切换回Overview
4.向下滑动找到下图的位置并复制容器启动命令
5.进入到服务器输入该命令启动容器,通过STATUS 可以看到容器已在运行
小经验:启动后如果发现服务器特别卡,什么操作都不能进行,这是由内存分配导致的问题,ElasticSearch默认给-Xms和-Xmx分配的内存是1g,我们在启动时候添加参数:-e ES_JAVA_OPTS="-Xms512m -Xmx512m"就可以解决这个问题.
6.浏览器访问ip:端口 测试ElasticSearch服务,出现下图说明ElasticSearch服务已经部署好啦
7.如果后期需要进入容器修改ElasticSearch的配置文件可以使用如下命令
8.为了后续方便查看数据,我这里顺便也安装了kibana实现ES可视化,下载kibana镜像
9.后台启动kibana容器
10.浏览器输入ip:端口 访问验证
部署SkyWalking OAP服务+SkyWalking UI
1.下载SkyWalking-OAP-Server镜像(如果不知道镜像名字参考ElasticSearch步骤查看),因为有版本兼容问题,我这里选择了6.6.0-es7版本,我的ES和SkyWalking也是安装在不同的服务器上的
2.启动SkyWalking-OAP-Server容器,我这里在启动参数中直接设定了存储器和ES服务器,这样就不需要在容器中再次进行配置啦.
3.下载SkyWalking-UI镜像
4.启动SkyWalking-UI容器
5.浏览器访问 IP:8088 测试,通过下图可以看到SkyWalking已经启动成功,到这里基础环境就已经部署好啦,接下来就是集成应用啦。
三.Agent集成JAVA项目应用程序
1.下载SkyWalking压缩包,解压后把Agent整个目录放到java应用的服务器上,这里尽量使用与SkyWalking同样的版本,有可能回遇到一些兼容问题。
2.进入agent的配置文件指定SkyWalking OAP所在的服务器和端口,这里也可以不再配置文件配置,如果不配置就要在启动应用的时候指定。
3.启动java应用
4.服务器访问应用后查看在SkyWalking UI查看监控结果
5.到目前为止应用链路的监控环境也搭建完成啦,SkyWalking的使用需要自己补一下,我就不写如何使用这一块啦,告警和发送邮件后面看吧,目前有一套实现方案,有机会也会分享给大家学习。
领取专属 10元无门槛券
私享最新 技术干货