使用阿里云平台定制的一套监控方案

原创
2019/08/26 11:44
阅读数 2.2K

老生常谈——为什么配置监控?

当开发提交代码、运维完成部署后,我们开发的程序便运行起来。但是程序运行是正常,期间是否会出现什么意外问题,对于任何开发/运维人员来说都是很难在没有任何辅助工具的情况下感知到的,尽管在上线之前由测试同学做了地毯式的测试,但是因为测试环境和线上环境终究是有区别的,难免有覆盖不到的问题。很多时候一直到接到用户的投诉电话,bug才能被发现,其实此时已经大面积影响用户使用,对于用户体验和提升用户粘性来说是很糟糕的事情!

通过监控系统来辅助技术人员第一时间发现、处理、修复线上业务是一件相当重要的事情。但是,告警的配置是一个不断优化的过程,因为告警的基础取决于数据,而数据是根据业务的不断优化在不断变化的,监控的配置整体来说是一个动态的过程,如果为了完成任务而去添加告警,想着一蹴而就,很容易造成误报,进而随着时间的推移导致告警疲劳。

所以,可靠稳定的产品背后必须要有靠谱的监控报警框架做支撑。

监控系统

针对不同的场景,告警系统主要分为三部分:基础监控、接口监控(arms)、业务监控。

基础监控

基础监控是通过阿里云平台的云监控实现的,主要对ecs实例、slb、redis实例、rds实例、api网关、oss存储、CDN等基础服务做了监控,监控指标如下:

  • 实例存活状态;
  • 内存使用率;
  • CPU使用率;
  • 磁盘使用率;
  • 带宽使用率;
  • QPS使用率;
  • … ...

该部分主要由运维组来配置、关注并及时对告警作出应急响应!

配置方法:阿里云云监控

接口监控

接口监控是对应用的基础监控,主要包括各个应用接口的请求频率、响应时间、错误数及整个调用链路等,该部分是通过阿里云的arms(应用实时监控服务)系统来实现,示例如下:

20190826156678696241158.png

该部分需要在edas中开启应用的高级监控功能,通过edas发布的时候会自动部署。运维人员负责督导,技术人员关注并对告警作出应急响应,及时评估业务可用性,保证业务正常运行!

配置方法:阿里云arms监控

业务监控

业务监控是目前对线上业务最细粒度的监控,各个监控指标直接反应了业务的实时可用性,相对于前两周种监控来讲,业务监控更直观的反应了client(客户端)的使用情况,所以也是重中之重!该部分是通过阿里云的日志服务来实现的,示例如下:

20190826156678750216648.png

该部分由运维组联合大数据组配置日志服务,然后由开发来配置具体监控项,告警信息直接发送到企业微信"服务预警"群(机器人),发生告警后由开发主导、运维协助并督促来排查和修复线上问题!

配置方法:阿里云日志服务

监控配置规范

关于监控告警配置规范主要是针对业务监控。规范的告警信息,能提升可读性、fix(修复)效率。业务监控告警模板:

  • 业务名称:要简单明了
  • 告警原因:信息可靠有效
  • 告警提示信息:要精简、有指导性,提升技术人员fix效率
  • 告警提醒人:建议@all,广而告之,强制提醒!

以上模板不是一成不变的,统一是为了提升可读性,具体情况需要根据业务的需求适当进行调整,但是一定要遵循精简的原则!

Attention Pls!!!

注意事项!!!

其实很多时候,因为工作疲劳、不重要的告警太频繁等等导致大家慢慢不再关注告警,甚至直接屏蔽告警消息(免打扰),这种事情屡见不鲜,如何避免此类事情?

监控要靠谱!!!(不靠谱的告警,时间久了自然而然没人愿意关注!浪费感情~~)

配置靠谱的监控:

  • 监控指标要靠谱:这取决于开发人员对于自身所负责业务的了解!
  • 告警阈值要靠谱:告警阈值的设定直接关系到告警的频率,所以设定合适的阈值非常重要(动态!)
  • 告警信息要靠谱:告警信息禁止冗余的内容,三个字——讲重点
  • 应急响应要及时:负责人要时刻关注告警信息,对于自己管辖内的告警要及时响应及时反馈(避免其他人跟着担忧)

话外音: 对于告警信息,不应是屏蔽/免打扰,而是通过不断的优化合理的使用告警及时的反馈处理进度来提升业务稳定性,减少告警!

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部