新闻资讯

    目录前言什么是链路跟踪技术架构下载启动服务器探针监控Trace监控Jvm监控服务告警总结前言

    微服务框架落地后,分布式部署架构带来的问题就会迅速凸显出来。尤其线上出现问题,不知道如何排查,问题出现在哪个服务?如何快速定位问题?如何跟踪业务调用链路?如何分析解决业务瓶颈?今天老顾来跟小伙伴们看看如何解决以上问题。

    什么是链路追踪

    微服务架构是通过业务来划分服务的,使用REST调用。对外暴露的一个接口apache启动失败,请检查相关配置,可能需要很多个服务协同才能完成这个接口功能,如果链路上任何一个服务出现问题或者网络超时,都会形成导致接口调用失败。随着业务的不断扩张apache启动失败,请检查相关配置,服务之间互相调用会越来越复杂。

    上图中,user调用A,A会调用C,C再调用E;这条调用链路,我们还能够看清楚;但是一旦微服务很多,调用依赖复杂就看不清楚了,如下图

    上图是不是看到后,有密集恐惧症,像个线团,一团乱麻;如果这个时候出现了调用异常,那我们依据调用接口入口,一步步、一个服务一个服务的去跟踪调试;这个流程会把人搞疯的,也许1个小时后,也不知道什么问题;就像我们以前找线头,然后一步步的去重新卷圈。

    面对以上情况,我们就需要一些可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题,这就是所谓的 APM(应用性能管理)。

    什么是

    是一款国内开源的应用性能监控工具,支持对分布式系统的监控、跟踪和诊断。目前主要的一些 APM 工具有: Cat、、、。也是的孵化项目之一,拥有顶级二级域名。

    它提供了如下的主要功能特性:

    功能特性:

    技术架构

    上图看了是不是比较乱,其实总体可以分为四部分:

    1、 Agent:使用做字节码植入,无侵入式的收集,并通过HTTP或者gRPC方式发送数据到 。

    2、 :链路数据收集器,对agent传过来的数据进行整合分析处理并落入相关的数据存储中。

    启动会话失败请检查appid是_apache配置虚拟 启动失败_apache启动失败,请检查相关配置

    3、:的存储,在6.x版本中支持以(推荐)、Mysql、TiDB、H2、作为存储介质进行数据存储。

    4、UI :Web可视化平台,用来展示落地的数据。

    下载并启动

    官方已经为我们准备好了编译过的服务端版本,现在最新版本为6.4.0

    下载地址为

    配置

    下载完成后解压缩

    # tar -xvf apache-skywalking-apm-6.4.0.tar
    # mv apache-skywalking-apm-bin /usr/local/skywalking
    # cd /usr/local/skywalking
    

    修改配置

    # cd config
    

    # vim .yml@

    apache启动失败,请检查相关配置_启动会话失败请检查appid是_apache配置虚拟 启动失败

    配置存储方式,默认H2,官方推荐

    这里需要做三件事:

    注释 H2 存储方案启用 存储方案修改 服务器地址

    : ${::9200}

    启动

    修改完配置后,进入 \bin 目录,运行.bat启动服务端

    通过浏览器访问 :8080 出现如下界面即表示启动成功

    默认的用户名密码为:admin/admin,登录成功后,效果如下图

    Java Agent 服务器探针

    agent简单的理解就是放一个插件,随着应用程序启动,监控数据、收集数据、发送数据的作用。

    探针文件在/agent目录下

    启动方式

    在以前启动应用程序时,加上一些参数

    java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar 
    

    启动会话失败请检查appid是_apache配置虚拟 启动失败_apache启动失败,请检查相关配置

    -Dskywalking.agent.service_name=shop-goods-provider -Dskywalking.collector.backend_service=localhost:11800 -jar yourApp.jar

    参数含义:

    启动后,访问链接,就会发现 与 已经成功检测到了

    表示 链路追踪配置成功。

    监控

    调用链路监控可以从两个角度去看待。我们先从整体上来认识一下我们所监控的系统。

    通过给服务添加探针并产生实际的调用之后,我们可以通过的前端UI查看服务之间的调用关系。

    从图中可以看到:

    有两个服务节点: &

    有一个数据库节点:【mysql】

    消费了提供出来的接口。

    apache启动失败,请检查相关配置_apache配置虚拟 启动失败_启动会话失败请检查appid是

    一个系统的拓扑图让我们清晰的认识到系统之间的应用的依赖关系以及当前状态下的业务流转流程。

    细心的小伙伴们可能发现图示节点上有一部分是红色的,红色是什么意思呢?

    红色代表当前流经节点的请求有一断时间内是响应异常的。当节点全部变红的时候证明服务现阶段内就彻底不可用了。运维人员可以通过迅速发现某一个服务潜在的问题,并进行下一步的排查并做到预防。

    Trace监控

    通过业务调用监控进行依赖分析,提供给我们了服务之间的服务调用拓扑关系、以及针对每个的trace记录。

    我们在之前看到节点服务中发生了错误,让我们一起来定位下错误是发生在了什么地方又是什么原因呢?

    在每一条trace的信息中都可以看到当前请求的时间、、以及请求被调用的时间。我们分别看一看正确的调用和异常的调用。

    Trace调用链路监控

    上图展示的是一次正常的响应,这条响应总耗时19ms;可以详细点击每个span查看详细信息

    JVM信息监控

    还可以监控到运行时的CPU、堆内存、非堆内存使用率、以及GC情况。这些信息来源于JVM。

    服务告警

    上面我们提到了通过查看拓扑图以及调用链路可以定位问题,可是运维人员又不可能一直盯着这些数据,那么我们就需要告警能力,在异常达到一定阈值的时候主动的提示我们去查看系统状态。

    启动会话失败请检查appid是_apache配置虚拟 启动失败_apache启动失败,请检查相关配置

    在 6.x版本中新增了对服务状态的告警能力。它通过的方式让我们可以自定义我们告警信息的通知方式。诸如:邮件通知、微信通知、短信通知等。

    告警的规则配置。在alarm-.xml中可以配置告警规则,告警规则支持自定义。

    1、le:告警规则名称 ***_rule (规则名称可以自定义但是必须以’_rule’结尾

    2、-name:指标数据名称: 定义参见

    3、op: 操作符: > , < , = 【当然你可以自己扩展开发其他的操作符】

    4、:目标值:指标数据的目标数据 如中的1000就是服务响应时间,配合上操作符就是大于的服务响应

    5、: 告警检查周期:多久检查一次当前的指标数据是否符合告警规则

    6、: 达到告警阈值的次数

    7、-:忽略相同告警信息的周期

    8、:告警信息

    文件结尾有最后一个属性:服务告警通知服务地址

    webhooks:
    # - http://127.0.0.1/notify/
    # - http://127.0.0.1/go-wechat/
    

    总结

    本文简单了介绍了简单的知识,可以通过,可以让我们方便的查看微服务架构中系统瓶颈以及性能问题等。小伙伴们可以去尝试操作一下哦,谢谢!!!

    ---End---

    最近老顾上传了微服务网关的分享课程,请大家多多支持

网站首页   |    关于我们   |    公司新闻   |    产品方案   |    用户案例   |    售后服务   |    合作伙伴   |    人才招聘   |   

地址:北京市海淀区    电话:010-     邮箱:@126.com

备案号:冀ICP备2024067069号-3 北京科技有限公司版权所有