来自 道旅旅游科技股份有限公司 鬼谷子 的撰稿
公司由于业务迅速扩展,需要针对业务方面进行定制监控。通过选型最终采用了 ARMS 方案。以下篇幅简单介绍了方案的大致概要以及最终效果,以供读者参考。
以下是几个产品方案的对比。需要解释的是,以下三个产品在我们的架构中都有大量使用,但是只是在本监控方案中,由于一些业务场景的特殊性,我们使用了业务实时监控服务 ARMS,虽然这并不代表 ARMS 是一个银弹。
我们以前用过 MaxCompute 作周期性的业务数据计算,缺点非常明显,就是延迟性太高,这对于实时监控来说是致命的直接被PASS。
参加深圳云栖大会的时候了解到流计算如获至宝,也回来尝试使用过一段时间,在实时监控的功能节点上是很重要的一环没错,但太过于细节,导致整条线过程冗长且繁杂,最后也放弃了。
一套组合拳,在数据分析、实时计算、报警、API、持久化存储等方面给我们节省了不少时间,也提供了更多的可能性。所以,最终我们选择了 ARMS。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLzIjNtETMz0SYYZ0VlFGWYtGczNlaKtEVO5kMhBFWvJUMCR1LcNnZ09CXt92Yu4GZjlGbh5yZtl2Lc9CX6MHc0RHaiojIsJye.png)
Windows ECS 安装 Logtail 对 IIS 产生的日志进行实时抓取
使用日志服务 SDK 提交日志
ARMS 的配置分为以下几个部分,由于篇幅原因,仅列出重点,详细内容不赘述。
根据规则对日志进行切分、类型转换、字段重组等
将符合条件的数据进行汇总保存(留待后续分析和监控使用),按需设置报警(邮件、短信)
通过对接 API,可以对数据集内的数据进行查询,以便后续的业务分析和问题复查
实时查询数据集内的结果,根据业务在内存中进行二次计算形成报表
我们做了个 Monitoring 的项目,对接 Grafana 的 Datasource,这样便可以在 Grafana 实时看到数据集内的数据。
该场景用于我们对供应商酒店请求数的业务监控和事后分析,主要使用方是业务人员。介绍如下:
通过日志服务 SDK 在酒店请求接口中埋点日志
在 ARMS 后台根据供应商 Id,酒店 Id,请求维度等参数配置数据集
对接 ARMS 接口,通过下钻的方式获取到数据。
在内存中根据业务进行二次计算
生成报表
该场景用于我们对供应商酒店请求的状态码分析,主要使用方是运维和开发。本方案实现了 ARMS 对 Grafana 的对接,基本介绍如下:
通过 Logtail 实时抓取 IIS 日志
在 ARMS 后台配置好数据集
在 Monitoring 项目中对接 ARMS 接口,并根据 simpleJson 接口规则实现 Grafana Data Source 对接。
为 SimpleJson 的 Search 接口定义 target 规则,并生成 target 与配置对应关系
使用 ARMS 的下钻功能为 SimpleJson 的 Search 接口支持 Templating 功能
在 Grafana 中使用 Moniroing 提供的 simpleJson 接口实现展示数据
<a href="https://www.aliyun.com/product/arms">点击了解 业务实时监控服务 ARMS</a>