可用性监控-先于客户知道您的应用挂了

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介: 任何服务都避免不了出现以下问题,你的用户访问不了你的服务或者站点,用户偶尔碰到5xx,服务响应延迟比较慢,某台应用进程挂掉,导致访问时好时坏。问题在于,你是否要等你的用户来告诉你,你的程序是问题了。

背景

任何服务都避免不了出现以下问题,你的用户访问不了你的服务或者站点,用户偶尔碰到5xx,服务响应延迟比较慢,某台应用进程挂掉,导致访问时好时坏。问题在于,你是否要等你的用户来告诉你,你的程序是问题了。

出问题的原因很多,应用进程挂了,java应用大GC导致应用不响应,应用依赖的rds,redis响应慢或者干脆不响应。应用依赖的其他http服务响应慢或者不响应等。

困难

然而,当企业上云后,应用程序的运行环境也变得复杂。
也许你的应用程序跑在了ecs上,可能是在vpc的内网环境里,无法有效的触达到你的应用程序。
也许你的应用程序跑在docker容器里。
也许你的应用程序是直接run在serverless架构里。
也许你懒于自己维护了一个zabbix,需要付出较大的维护成本。
以上这些,都让应用程序的运行时可用性监控变得困难。

另外,出问题的原因很多,应用进程挂了,java应用大GC导致应用不响应,应用依赖的rds,redis响应慢或者干脆不响应。应用依赖的其他http服务响应慢或者不响应等。
如何用一个方案,简单的把这些全部监控起来?出问题的时候及时的告诉应用开发人员?

解决方案

可用性监控

云监控推出了应用可用性监控,可以通过在控制台创建一个可用性监控任务,从分组内选择部分机器,发起到本地127.0.0.1或者到内网组件(rds,oss,redis等),或者是远程api的探测任务,并将探测结果反馈到云监控,同时用户可以对探测结果设置一个报警, 当探测不通或者不符合预期时,通过短信,邮件,钉钉,消息,回调等方式,在出问题的第一时间通知给你,让你在第一时间作出反应。
目前支持的探测类型包括:ping,telnet,http(s)三种,其中http支持对返回结果做简单检验,判断是否包括某些关键字等。

可用性探测示意图

image

具体步骤

  • 创建分组,实例资源加入分组,并给分组指定相关人(管理分组,接收报警通知)
    image

image

  • 创建应用本身的可用性监控

image
image

  • 创建应用对rds/redis的依赖监控
    前提是,需要将依赖也加入到本应用分组内。

这个监控只能对应用分组的资源进行监控。
image

报警通知

目前云监控支持短信,钉钉,邮件,消息MNS,公网http回调等多种通知方式。同时支持报警后静默多长时间再次通知,在哪个时间段内生效(也许白天你上班时间自己盯着,不希望白天发短信)。
另外,云监控提供每月1000条短信免费使用。在下个版本,大概3月底,云监控还将支持电话报警。
到这里, 安全可靠的应用可用性监控就配置好了, 如果应用发生问题,比如进程挂掉,端口不响应,响应延迟等,就可以及时得到通知了。

彩蛋

同时, 云监控还支持

  • 主机监控(提供秒级的丰富的监控指标,支持非阿里云主机,打通线上线下)
  • 云服务监控(包括阿里云上30+商业化产品),
  • 站点监控
  • 日志监控
  • 自定义监控
  • 事件监控(上报异常事件并报警)
  • 丰富灵活的Dashboard(自定义监控大盘)
  • 支持跨产品跨地域的应用资源分组
    等丰富完善的端到端的监控功能栈。相信一定可以解决您的云上监控需求。

更多详情可查看云监控产品手册:https://www.aliyun.com/product/jiankong
image

产品咨询与支持,欢迎扫描钉钉二维码加入云监控用户支持群
image

相关实践学习
基于云监控实现的监控系统
通过阿里云云监控功能给非阿里云主机安装监控插件,从而实现对非阿里云主机的各项指标进行监控和管理,在配置报警规则和报警人的情况下,能对特定的场景做出报警反应通知到报警人的手机上。
目录
相关文章
|
7月前
|
测试技术
线上问题,如何处理?
线上问题,如何处理?
175 37
|
运维 监控 数据库
线上服务故障处理原则
墨菲定律 任何事情都没有表面看起来那么简单 所有事情的发展都会比你预计的时间长 会出错的事情总会出错 如果担心某个事情发生,那么它更有可能发生 墨菲定律暗示我们,如果担心某种情况会发生,那么它更有可能发生,久而久之就一定会发生。
2268 0
|
运维 监控 Shell
磁盘占用高生产故障复盘总结
磁盘占用高生产故障复盘总结
324 0
|
缓存 JSON 运维
如何避免大规模线上故障
如何避免大规模线上故障
190 0
|
缓存 数据挖掘 BI
面试官问你:日亿万级请求日志收集如何不影响主业务?你怎么回复
数据收集 上篇详细讨论了写缓存的架构解决方案,它虽然可以减少数据库写操作的压力,但也存在一些不足。比如需要长期高频插入数据时,这个方案就无法满足,接下来将围绕这个问题逐步提出解决方案。
|
运维 监控 网络协议
如何监控IT正常运行时间,网络正常运行对企业业务至关重要
随着企业的扩展,其IT网络规模也将不断增长。当将大量属于不同类别,由不同供应商制造的设备添加到您的IT基础结构中时,正常运行时间的管理复杂性就急剧上升
148 0
如何监控IT正常运行时间,网络正常运行对企业业务至关重要
|
监控 NoSQL Redis
如何解决 “主节点故障恢复的自动化” 问题?
工作 & 面试中,当面试官问你主服务器宕机了,怎么办,如何处理?那么“哨兵”它来了~~~
如何解决 “主节点故障恢复的自动化” 问题?
|
监控 Kubernetes Cloud Native
面对大规模 K8s 集群,如何先于用户发现问题?
怎样才能在复杂的大规模场景中,做到真正先于用户发现问题呢?下面我会带来我们在管理大规模 ASI 集群过程中对于快速发现问题的一些经验和实践,希望能对大家有所启发。
面对大规模 K8s 集群,如何先于用户发现问题?
如何构建一个拖垮整个公司的备份系统
在如今“数据即资产”的时代,有备才能无患。备份就像备胎,虽然大多人都知道备胎很重要,却很少有人检查。不发生点什么,你永远不知道TA对你有多重要。
6055 0
如何构建一个拖垮整个公司的备份系统
|
监控 NoSQL 关系型数据库