文档

混合云场景下应用监控最佳实践

更新时间:
一键部署

应用实时监控服务ARMS(Application Real-Time MonitoringService)是一款阿里云应用性能管理(APM)类监控产品。借助本产品,可以基于应用和业务自定义等维度,迅速便捷地为企业构建秒级响应的业务监控能力。

前提条件

此次示例基于阿里云专有云3.14及以上版本,涉及阿里云应用实时监控服务ARMS产品。

背景信息

工作流程:1

  • 数据收集:应用实时监控服务ARMS支持通过配置从StarAgent、鹊桥和MQ上抓取日志。

  • 任务定义:

    • 通过任务配置来定义实时处理、数据存储、展示分析、数据API和报警等任务,从而定义出自己的应用场景。

    • 通过应用监控预设场景直接进行业务监控。

  • 应用场景:如上所述,除了自定义监控以外,应用实时监控服务ARMS还有可直接使用的预设监控场景,例如应用监控。

本次最佳实践将基于阿里云应用实时监控服务ARMS产品,介绍产品各项监控指标。

应用监控

此章节会对应用监控进行简单概述,并演示如何创建应用监控及监控后的数据展示。

应用监控是一款应用性能管理方面的监控工具。它以Google Dapper理论模型和阿里巴巴集团内部实践为基础,提供面向应用的业务实时监控。目前,应用监控支持Java语言,接下来将会支持更多语言。

  1. 应用监控功能。

    • 应用拓扑的自我发现功能。

      • 不同应用之间通过RPC框架(如Dubbo、HTTP、HSF等协议)组成的调用链,能通过ARMS有效捕获、智能计算、自动生成分布式应用间的调用关系,并展示在监控界面上。

    • 常用诊断场景下的指标下钻分析功能。

      • 根据应用响应时间、请求数、错误率等指标开展下钻分析,并按应用、事务、数据库等维度查看。异常事务和慢事务的捕获分析调用事务的超时和异常情况,并有效自动关联到对应的接口调用,如SQL、MQ等,实时掌握应用内部错误情况。

    • 基于调用链的事务快照查询功能。

      • 通过调用链(Invocation Trace)智能收集问题事务,借助明细数据排查异常或错误的源头。

    • 即席多维排查功能。

      • 查看分布式和本地方法栈的明细信息,并按应用、IP、耗时等维度进行分析。

    • PaaS平台集成功能。

      • 通过一键集成阿里云EDAS PaaS平台,让运行于阿里中间件分布式架构平台上的应用监控更加有效。

  2. 创建应用监控。

    为Java应用安装ARMS探针后,ARMS即可对Java应用进行应用拓扑、调用链路追踪、异常事务和慢事务监控、SQL分析等一系列监控。安装探针可采用手动接入方式和一键接入方式。

    1. 在左侧导航栏中选择应用监控 > 应用列表

    2. 在页面右上角单击接入应用。

      • 采用以下方法之一下载Java探针,并在接入应用页面的下载探针页签单击下一步

        • 方法一:直接下载。在下载探针页签单击下载探针,下载最新ZIP包。

        • 方法二:使用wget命令下载。执行下载探针页签方法二区域的wget命令下载探针安装包。2

        • 切换到ArmsAgent探针包所在目录,执行以下命令解压到任意工作目录下。

          unzip ArmsAgent.zip -d /{user.workspace}/

        • 在接入应用页面的安装探针页签查看并保存LicenseKey属性。3

      • 添加AppName以及参数。

      • Tomcat运行环境。

        • 在Linux或Mac环境下,在{TOMCAT_HOME}/bin/setenv.sh文件中加入以下配置:

          JAVA_OPTS="$JAVA_OPTS-javaagent:/{user.workspace}/ArmsAgent/arms-bootstrap-1.7.0-SNA
          PSHOT.jar-Darms.licenseKey= -Darms.appName="
        • 在Windows环境下,在文件中加入以下配置:

          set"JAVA_OPTS=%JAVA_OPTS% -javaagent:{user.workspace}ArmsAgentarms-bootstrap-1.7.0-
          SNAPSHOT.jar-Darms.licenseKey= -Darms.appName="
  3. 数据展示。

    选择应用监控 > 应用列表,单击某应用进入应用监控的应用总览页面。4

    1. 全局拓扑。

      • 所有应用拓扑纵览。

      • 主要调用健康统计。

      • 各类组件调用分类统计。5

    2. 应用详情。

      • JVM监控。

        • GC瞬时次数、GC瞬时耗时、堆内存详情等信息统计。6

      • 主机监控。

        • CPU、物理内存、Disk等信息统计。7

    3. 接口调用。

      • 基于接口名称和类型统计。

      • 实时分析拓扑。

      • 关联指标统计,如异常慢SQL等。8

    4. 数据库调用。

      • 针对数据库SQL查询的聚合统计。数据库调用1

    5. 调用链路查询。

      • 根据不同调用信息进行调用链查询。9

    6. MQ查询。

      • 在拓扑图中展示应用与MQ数据源之间的消息发布和订阅关系。10

      • 展示消息发布的统计数据,包括请求数、响应时间和错误数。11

      • 展示消息订阅的统计数据,包括消息延迟、请求数、响应时间和错误数。12

      • 提供关于消息发布和订阅的接口快照,通过TraceId链接查看完整调用链以及诊断问题原因。13

自定义监控

  • 自定义监控任务:对于高度定制化的业务场景,可以通过创建自定义监控任务来清洗日志、自由统计所需指标、生成需要的数据与报表,以及灵活配置报警。

  • 基于模板的监控任务:如需跨地域或在同一地域下复制一个监控任务,可以使用导入模板的方式创建监控任务。

  1. 数据接入。

    1. 背景信息。

      数据源(日志源)为ARMS提供流入数据,您可以通过多种方式将数据从数据源推送到ARMS实时计算引擎。

      在专有云环境下,ARMS支持通过StarAgent增量推送VM或Docker实例上的日志文件,并支持消费MQ中的消息数据,此方式适用于所有网络直连互通的网络环境。Agent是日志系统中处于数据源头的关键组件,必须在每一台日志源服务器上安装Agent,ARMS才能抓取日志。正常情况下,StarAgent日志源服务器默认自动安装Agent,您仅需配置白名单即可接入数据。

    2. 配置白名单。

      白名单类型分为:

      • IP地址白名单:

        • IP地址白名单配置文件的路径为:/usr/alisys/dragoon/conf/white_ip.conf 。

        • 只有IP地址在白名单中的客户端才允许访问。

        • 可用以下符号分隔IP地址:换行符(¶)、英文逗号(,)、分号(;)和空格。

        • 最大支持10000个IP地址。

        • 如需令所有机器都可访问,请使用默认配置文件中的配置,即1~255。关于具体写法,请参考安装包默认配置。

        • 如果是网络直连模式,请在白名单中填写ARMS服务器的IP地址。关于服务器地址,请联系ARMS运维人员。如果是通过鹊桥方式连接,请在白名单中填写Sproxy的IP地址。

      • 文件目录白名单:

        • Agent要求的文件目录为:/alidata/、/apsara/、/home/、/opt/、/tmp/、/usr/和/var/,文件末尾包含log或LOG。

        • 在Agent机器上执行命令可以查看文件目录白名单。

        • 通过修改文件来修改配置,配置内容与get conf ig命令返回的内容一致。

        • 最大权限是将目录设置为/。

    3. 更多操作。

      Agent安装完毕后,可以执行以下命令来启动和停止Agent:

      • 启动:/usr/alisys/dragoon/bin/DragoonAgent -H0.0.0.0

      • 停止: /usr/alisys/dragoon/bin/agent.shstop

  2. 创建监控任务。

    在左侧导航栏中选择自定义监控 > 监控任务管理

    1. 要创建自定义监控任务,在右上角选择新建监控任务 > 新建自定义监控,然后在新建自定义任务对话框中选择任务区域,并输入监控任务名称,然后单击新建并进行配置。

    2. 要创建基于自定义模板的监控任务,在右上角选择新建监控任务 > 导入自定义模板,然后在新建导入模板任务对话框中选择任务区域,输入监控任务名称,并在模板配置文本框中粘贴准备好的模板文件,然后单击新建并进行配置。14

      1. 数据源配置。

        在数据源配置页面上的日志源配置区域输入日志源类型、日志路径、采集目标和编码设置等信息。15

      2. 定义日志清晰逻辑。

        • 智能切分模式会对抓取的日志数据进行自动切分,将其转化为标准的KV格式。您还可以调整方案,包括删除和修改等操作。

        • 如果智能切分方案无法满足需求,您可以使用可视化的自定义切分功能。16

      3. 如下图所示定义数据集。17

      4. 定义大盘。18

  3. 数据展示。

    1. 查看数据集详情。

      • 在左侧导航栏中单击数据集详情

        • 数据集详情页面以曲线图的形式展示该任务的所有数据集。19

        • 单击图表右上角的齿轮图标,显示所有配置选项,并按需更改配置。 例如,单击柱状图20

          下图为配置后的效果:21

    2. 查看任务运行详情。

      • 在左侧导航栏中单击任务运行详情

        • 任务运行详情页面展示了任务的详细运行过程,包括除数据存储之外的另外三个环节。1

        • 通过数据拉取、数据切分、数据聚合图表,可以详细地看到每分钟处理成功的行数和处理失败的行数。下图为数据切分图表:22

        • 单击图表右上角的感叹号图标,可查看错误详情。23

  • 本页导读
文档反馈