互联网产品,除了线上关键服务的实时监控十分重要,其实各服务的具体接口监控也不容忽视。如果线上某个接口挂了,最直观的表现是App/Web端上刷不出数、超时或直接抛错误。而这类接口异常的排查可能比服务异常更费时费力。
如何对线上服务关键接口进行实时监控呢?
解决思路
1. 速成:在运维监控平台上配置监控接口,如: zabbix;
zabbix 配置监控接口 -> http://www.ttlsa.com/zabbix/zabbix-monitor-web-api/
2. 简单粗暴:运维童鞋对线上应用log进行实时监控过滤,可以通过python, shell 脚本简单处理。定义监控规则,如:监控频率、错误结果统计、错误告警提示等;
3. “高大上”自定义:选择开源监控项目进行二次开发维护,如:HeartBeat 项目,使用HttpClient对指定的服务器(application-instance) URL 按频率(10秒,20秒...) 发起请求并记录响应的信息(连接耗时,是否连接成功,是否有异常,响应数据包大小), 若检测到不正常(响应码不是200,抛出异常...)时则发送邮件给指定的地址,当检测恢复正常时也发送提醒邮件.
将来会添加更多的实时提醒方式接口,如微信,短信;开源地址 -> http://git.oschina.net/mkk/HeartBeat
笔者应用 HeartBeat 项目中发现有些地方无法满足需求,如:对于很多接口是需要动态token 认证的,而此项目是针对单接口实例的,所以此处需要维护更新。
实际应用如下:
本文讨论了在线服务接口监控的重要性,并提出了三种监控策略:通过运维平台配置监控,如Zabbix;使用运维童鞋的log实时监控;以及自定义的开源项目HeartBeat进行二次开发,特别强调了在实际应用中遇到的动态token认证问题。
1059

被折叠的 条评论
为什么被折叠?



