简介
监控报警平台以Grafana为基础,主要功能是将收集存储的数据按照不同维度、不同应用、不同用户进行配置化的展示;为了保证数据安全,每个团队只能看到自己的应用数据。同时对不同维度的数据,可以进行报警配置,根据最常用的报警方式,提供了钉钉报警、邮件报警、webhook报警三种方式。
平台地址根据访问用户的不同,如下:
集团内部用户:open-monitor.XXX.com(内部用户可ata搜索监控报警平台)
集团外部用户:open-monitor.1688.com
功能
好的功能,除了完成用户的基本需求外,另外很重要的一点就是用户操作的便捷性、用户体验的良好性。所以监控报警平台根据用户来源不同,分为了外部用户ISV和内部用户(集团员工)。在提供基本的数据展示、报警配置等功能的基础上,针对不同用户还提供了便于操作的默认大盘,数据隔离等等特性。
基础功能
数据展示
不管何种数据,只要是用户登录后,配置了自己所在组织的数据源,那么数据都可以进行展示。如下图:
报警提示
针对展示的业务数据或者系统数据,当某些值超过阈值时,需要对相关人员进行报警提示。如下图:
权限管理
提供了组织管理,团队管理,用户管理等基础功能,思路如下:
外部用户
针对外部用户ISV,为了最大程度的减少他们的操作,提供更便捷的系统,监控报警平台根据他们所拥有的appkey信息,自动生成了监控报警大盘,不需要任何配置,只需要对报警阈值进行适当调整即可。同时为了数据安全,ISV用户默认没有修改权限,由我们的开发或者运营相关人员进行操作。如下图展示了用户登录后系统默认创建的两个展示大盘。
内部用户
针对内部用户,给与了适当放权。每个组织的第一个登录平台的人,是该组织的管理员,后续登录的人员默认作为浏览者。如果需要升级权限,第一个登录的人进行角色的更改即可,以此保证了管理的有序性。如下图:
每个组织可能有多个应用,每个应用都是不同类型。比如有业务的应用(会员中心,商品中心、交易中心等),系统的应用(DB管理中心,压力测试中心等),如果都房子一起就有些混乱。我们还提供了创建文件夹的功能,因此可以根据不同类型的业务放入不同的文件夹,管理清晰方便。如下图:
实际情况中,一个人可能属于多个组织,那么该组织的管理员邀请一下该人,便可以进入该组织。如果有多个组织,可以*切换到不同的组织,在不同的组织中,只能看到当前所在组织的相关大盘等数据。如下图:
架构
系统支持内部用户和外部用户访问,根据域名进行了区分。所有请求进入后,根据不同域名,分发到不同的代理层,经过代理层处理,用户进行登录操作,登录完成后进入Server端处理请求。如下图:
Buc-proxy
是为开源软件控制台提供的反向代理服务. 用于统一登录和权限控制。对其进行了修改,适合当前场景需求。整体流程如下图:
ISV-proxy
该代理是针对外部用户ISV的,使用zuul进行了前置filter处理,同时集成TBSession管理登录,自定义Filter获取Server端需要信息。如下图:
展示
组织管理员可以创建自己的大盘,进行不同数据的展示。
Grafana提供了各种展示数据的插件,极大地满足了展示的需求。展示的数据既有来自sls的数据,也有来自hitsdb的数据。
如下图:
报警
目前系统展示插件中支持报警的只有Graph,可以针对不同的指标设置不同的报警规则和通知方式。根据常用报警方式,完全支持了钉钉报警,邮件报警,webhook报警,短信报警因为签名问题暂时不对外开放。如下图:
钉钉报警
根据钉钉机器人可对钉钉群发送消息这一特性,对报警内容进行了重写,展示了报警状态(报警/恢复)、报警的具体链接、报警的原因。
邮件报警
如果需要将报警信息发送邮件,可以直接在创建报警的地方选择type为email即可。填写接收报警信息的邮箱地址。邮件报警内容包括:报警提示、报警原因、报警页面链接、报警列表链接
webhook报警
如果希望自己处理报警信息,那么可以使用webhook,会把报警信息都发送给指定的server,然后自行处理。
未来工作
1、目前如果一个人有多个展示大盘,登录后并没有直接显示,而是显示的Home页,为了让用户更直接的看到大盘信息,后边会选择一个默认打监控大盘或者用户最关注的大盘,登录后直接定位显示。
2、目前如果在展示图表中使用了变量,那么报警会无法使用,为了更全面的支持报警,做到报警无死角,同时又让用户配置更方便更灵活,需要对此进行优化
3、目前短信由于涉及费用问题,并且短信内容长度有限制,暂未对外开放。后期如果合适,会开放短信报警
总结
系统提供了权限管理,人员管理,数据展示与报警等各种功能,基本满足了需求。但是同时也存在问题,比如在报警、数据源支持hbase类型等,仍然需要去不断的完善,有问题随时可联系。