混合云场景下应用监控最佳实践
应用实时监控服务ARMS(Application Real-Time MonitoringService)是一款阿里云应用性能管理(APM)类监控产品。借助本产品,可以基于应用和业务自定义等维度,迅速便捷地为企业构建秒级响应的业务监控能力。
前提条件
此次示例基于阿里云专有云3.14及以上版本,涉及阿里云应用实时监控服务ARMS产品。
背景信息
工作流程:
数据收集:应用实时监控服务ARMS支持通过配置从StarAgent、鹊桥和MQ上抓取日志。
任务定义:
通过任务配置来定义实时处理、数据存储、展示分析、数据API和报警等任务,从而定义出自己的应用场景。
通过应用监控预设场景直接进行业务监控。
应用场景:如上所述,除了自定义监控以外,应用实时监控服务ARMS还有可直接使用的预设监控场景,例如应用监控。
本次最佳实践将基于阿里云应用实时监控服务ARMS产品,介绍产品各项监控指标。
应用监控
此章节会对应用监控进行简单概述,并演示如何创建应用监控及监控后的数据展示。
应用监控是一款应用性能管理方面的监控工具。它以Google Dapper理论模型和阿里巴巴集团内部实践为基础,提供面向应用的业务实时监控。目前,应用监控支持Java语言,接下来将会支持更多语言。
应用监控功能。
应用拓扑的自我发现功能。
不同应用之间通过RPC框架(如Dubbo、HTTP、HSF等协议)组成的调用链,能通过ARMS有效捕获、智能计算、自动生成分布式应用间的调用关系,并展示在监控界面上。
常用诊断场景下的指标下钻分析功能。
根据应用响应时间、请求数、错误率等指标开展下钻分析,并按应用、事务、数据库等维度查看。异常事务和慢事务的捕获分析调用事务的超时和异常情况,并有效自动关联到对应的接口调用,如SQL、MQ等,实时掌握应用内部错误情况。
基于调用链的事务快照查询功能。
通过调用链(Invocation Trace)智能收集问题事务,借助明细数据排查异常或错误的源头。
即席多维排查功能。
查看分布式和本地方法栈的明细信息,并按应用、IP、耗时等维度进行分析。
PaaS平台集成功能。
通过一键集成阿里云EDAS PaaS平台,让运行于阿里中间件分布式架构平台上的应用监控更加有效。
创建应用监控。
为Java应用安装ARMS探针后,ARMS即可对Java应用进行应用拓扑、调用链路追踪、异常事务和慢事务监控、SQL分析等一系列监控。安装探针可采用手动接入方式和一键接入方式。
在左侧导航栏中选择应用监控 > 应用列表。
在页面右上角单击接入应用。
采用以下方法之一下载Java探针,并在接入应用页面的下载探针页签单击下一步。
方法一:直接下载。在下载探针页签单击下载探针,下载最新ZIP包。
方法二:使用wget命令下载。执行下载探针页签方法二区域的wget命令下载探针安装包。
切换到ArmsAgent探针包所在目录,执行以下命令解压到任意工作目录下。
unzip ArmsAgent.zip -d /{user.workspace}/
在接入应用页面的安装探针页签查看并保存LicenseKey属性。
添加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="
数据展示。
选择应用监控 > 应用列表,单击某应用进入应用监控的应用总览页面。
全局拓扑。
所有应用拓扑纵览。
主要调用健康统计。
各类组件调用分类统计。
应用详情。
JVM监控。
GC瞬时次数、GC瞬时耗时、堆内存详情等信息统计。
主机监控。
CPU、物理内存、Disk等信息统计。
接口调用。
基于接口名称和类型统计。
实时分析拓扑。
关联指标统计,如异常慢SQL等。
数据库调用。
针对数据库SQL查询的聚合统计。
调用链路查询。
根据不同调用信息进行调用链查询。
MQ查询。
在拓扑图中展示应用与MQ数据源之间的消息发布和订阅关系。
展示消息发布的统计数据,包括请求数、响应时间和错误数。
展示消息订阅的统计数据,包括消息延迟、请求数、响应时间和错误数。
提供关于消息发布和订阅的接口快照,通过TraceId链接查看完整调用链以及诊断问题原因。
自定义监控
自定义监控任务:对于高度定制化的业务场景,可以通过创建自定义监控任务来清洗日志、自由统计所需指标、生成需要的数据与报表,以及灵活配置报警。
基于模板的监控任务:如需跨地域或在同一地域下复制一个监控任务,可以使用导入模板的方式创建监控任务。
数据接入。
背景信息。
数据源(日志源)为ARMS提供流入数据,您可以通过多种方式将数据从数据源推送到ARMS实时计算引擎。
在专有云环境下,ARMS支持通过StarAgent增量推送VM或Docker实例上的日志文件,并支持消费MQ中的消息数据,此方式适用于所有网络直连互通的网络环境。Agent是日志系统中处于数据源头的关键组件,必须在每一台日志源服务器上安装Agent,ARMS才能抓取日志。正常情况下,StarAgent日志源服务器默认自动安装Agent,您仅需配置白名单即可接入数据。
配置白名单。
白名单类型分为:
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命令返回的内容一致。
最大权限是将目录设置为/。
更多操作。
Agent安装完毕后,可以执行以下命令来启动和停止Agent:
启动:
/usr/alisys/dragoon/bin/DragoonAgent -H0.0.0.0
停止:
/usr/alisys/dragoon/bin/agent.shstop
创建监控任务。
在左侧导航栏中选择自定义监控 > 监控任务管理。
要创建自定义监控任务,在右上角选择新建监控任务 > 新建自定义监控,然后在新建自定义任务对话框中选择任务区域,并输入监控任务名称,然后单击新建并进行配置。
要创建基于自定义模板的监控任务,在右上角选择新建监控任务 > 导入自定义模板,然后在新建导入模板任务对话框中选择任务区域,输入监控任务名称,并在模板配置文本框中粘贴准备好的模板文件,然后单击新建并进行配置。
数据源配置。
在数据源配置页面上的日志源配置区域输入日志源类型、日志路径、采集目标和编码设置等信息。
定义日志清晰逻辑。
智能切分模式会对抓取的日志数据进行自动切分,将其转化为标准的KV格式。您还可以调整方案,包括删除和修改等操作。
如果智能切分方案无法满足需求,您可以使用可视化的自定义切分功能。
如下图所示定义数据集。
定义大盘。
数据展示。
查看数据集详情。
在左侧导航栏中单击数据集详情。
数据集详情页面以曲线图的形式展示该任务的所有数据集。
单击图表右上角的齿轮图标,显示所有配置选项,并按需更改配置。 例如,单击柱状图。
下图为配置后的效果:
查看任务运行详情。
在左侧导航栏中单击任务运行详情。
任务运行详情页面展示了任务的详细运行过程,包括除数据存储之外的另外三个环节。
通过数据拉取、数据切分、数据聚合图表,可以详细地看到每分钟处理成功的行数和处理失败的行数。下图为数据切分图表:
单击图表右上角的感叹号图标,可查看错误详情。
- 本页导读