前言
你是否遇到这样的问题:
- 业务日志繁杂无序,无法进行聚拢和分析,怎么进行合理分组和统计?
- 无效日志太多,没办法进行精准的过滤,怎么抽丝剥茧找到黄金指标?
- 业务的核心指标,缺乏多维度统计和展现能力,如何进行规律性分析?
- 当前指标波动是因为高峰期引起的预期趋势还是业务受损导致的异常下滑,有没有历史同期数据可以辅助参考?
- 指标监控做起来了,没有配套的报警机制,怎么进行一步到位的报警设置?
- 报警泛滥,在保证报警透出的前提下,还要提供强效降噪怎么实现?
👉针对以上场景,阿里云运维事件中心来帮您。😉
阿里云运维事件中心,提供符合Restful API规范的接入网关,对外提供统一调用接口,支持用户调用和数据推送。通过强大的日志分析引擎,进行数据清洗、过滤、分组和统计。结合报警引擎的“当前值、N分钟持续、环比增长或下跌”等多维报警能力,打通监控→报警流程。
并且运维事件中心提供应急规则制定、人员应急协同能力。用户可以自定义配置报警、事件、故障等级的触发条件和收敛规则,分配应急小组及成员,完成监控→报警→应急→恢复的场景闭环。
业务监控的使用场景
业务运行过程中,伴随着产生丰富多样的日志,其中可以提炼出多种可以综合反映业务运行状态的关键指标如请求总量、成功量、失败率、耗时等。如何快速定义这些指标的采集规则,准确的提取指标背后的实时数据,帮助企业管理者快速了解当前业务的健康状态,辅助运维团队定位业务运行中的问题环节,是一个成熟的业务监控系统的能力体现。
阿里云运维事件中心(业务监控)为解决业务自定义监控痛点而生,客户经过简单的流程配置(业务日志接入、监控指标配置和告警规则配置),即可实现业务的监控需求。
业务监控适用场景示例
某公司电子票据业务,开票接口的调用请求耗时(ms)监测:
下面我们来介绍阿里云运维事件中心是如何进行业务监控的配置
如何进行日志数据收集
阿里云运维事件中心提供API集成接口,接收来自业务侧的日志数据。用户可以在集成中心申请API授权,授权后在数据来源侧通过接口调用方式,向运维事件中心推送指定业务的日志数据,日志数据符合JSON格式。
- 日志示例
{ "alarms": [ { "lastTime": 332162, "cluster": "OssHybridCluster-A-201xxx13-a9xd", "product": "oss", "metricName": "oss_service-cluster_error_code_from_chxxx", "updateTime": 1567575607990, "message": "many 5xx error occured", "eventLevel": "NOTIFY", "alertCount": 52, "alertName": "private.C_OssHybridCluster-A-20190813-axxe_oss_service_check_5xx_error__oss-service_base-template", "hashCode": "-1176585681", "service": "oss-service", "Status": "fail", "alarmId": "02.305.0101.0xxx1", "startTime": 1567574648125, "id": 403032, "region": "cn-qingdao-9b-dxx1", "contacts": [], "dimensions": "{\"cluster\":\"OssHybridCluster-A-20190813-axxe\",\"serverrole\":\"oss-service.OssClusterMonitor#\",\"host\":\"vm01xxxx025048\"}", "notifyFlag": true }, { "lastTime": 532162, "cluster": "OssHybridCluster-A-201xxxx3-ax6e", "product": "oss", "metricName": "oss_service-cluster_error_code_from_chxxx", "updateTime": 1567575607990, "message": "many 5xx error occured", "eventLevel": "NOTIFY", "alertCount": 32, "alertName": "private.C_OssHybridCluster-A-20190813-axxe_oss_service_check_5xx_error__oss-service_base-template", "hashCode": "-1176585681", "service": "oss-service", "Status": "success", "alarmId": "02.305.0101.0xxx1", "startTime": 1567574648125, "id": 403032, "region": "cn-qingdao-9b-dxx1", "contacts": [], "dimensions": "{\"cluster\":\"OssHybridCluster-A-20190813-axxe\",\"serverrole\":\"oss-service.OssClusterMonitor#\",\"host\":\"vm01000902xxx8\"}", "notifyFlag": true } ] }
通过这一步,可以实现多业务系统日志的统一收集,汇聚到运维事件中心监控系统,接入成本低,适用性广。
如何进行过滤配置
基于原始推送日志,设置过滤规则洗掉脏数据,运维事件中心支持设置黑白名单过滤。
如:过滤[host=vm01000902xxx8]的日志,可以设置筛选的日志列(host)和过滤值(vm01000902xxx8)。
如何进行指标的统计配置
日志的内容千变万化,不同业务的统计维度和指标的计算逻辑也不尽相同。平台的能力是将关键指标从抽象的数据中提取出来。在过滤出所需日志后,下一步就是定义需要监控的对象,并按对象进行数据分组,创建数据透视表。同时定义统计对象的指标和计算规则。
如:统计每个host的告警总数(alertCount)
host |
alertCount |
vm01xxxx025048 |
52 |
vm01000902xxx8 |
32 |
绿色背景:分组列,按统计对象进行分组。黄色背景:统计列,对象的统计指标和指标值。
此种场景适用于单一的数值维度累计场景。除此之外运维事件中心还支持根据日志求行数、去重求行的常规统计方式;同时针对数值类型的日志支持数值求合、最大、最小、平均等多种维度的计算逻辑。多种指标计算方式,灵活满足客户的多种使用场景。
如何进行指标数据的展示
在进行分组统计规则和指标计算规则配置后,运维事件中心将会根据规则创建数据透视表,采用类似Excel形式将分钟级数据平铺,方便用户查看当前具体各项指标的详细数值。
同时也可以在某项数值上点击下钻,生成该指标的监控曲线,查看一段时间内指标监控趋势。运维事件中心还支持结合历史同期的数据进行对比分析,帮助用户判断是否周期性规律或业务高峰期。
如何进行告警配置
用户已经完成了数据集成、指标和规则配置。接下来需要进行报警触发条件的设置,以便及时发现业务告警,拉通后续的应急协同流程。
运维事件中心集成了多种告警维度的计算和判断逻辑,如当前时间值、连续上涨/下跌、环比上涨/下跌、周期同比、求和、均值等10余种计算逻辑,完全适配客户多样化的告警需求。
如何进行应急协同
运维事件中心的两大核心功能模块,其一是上文我们提到的业务监控,作为【监控中心】。另一块是来源阿里云十余年业务连续性保障支撑的实际经验,并将其产品化为【事件中心】。
事件中心向上承接了来自多源的指标报警数据,按照事件等级或故障等级的定义触发事件,或影响恶化后触发故障。借助移动端(钉钉、企微已支持)、电话、短信、邮件等多渠道快速通知应急小组,拉通相关责任人上线,快速完成故障止血、故障恢复。在问题解除后,组织故障复盘,制定改进措施,最终验收完成后,完成问题处理闭环。
阿里云运维事件中心产品目前支持免费开通试用各功能,对产品有任何疑问可以加入官方钉钉用户群(群号:35645045),进群有官方技术支持和产品优惠活动同步。
开通链接:https://alert.console.aliyun.com/
产品详情页:https://www.aliyun.com/product/developerservices/gemp