实时监控系统设计

  随着系统业务复杂度的提升,系统复杂度提升,需要对整个系统的功能、性能、可用性,以及服务、

web、webservice、网页等等多个角度进行监控。

      1、监控设计为两个部分一部分为监控客户端部分,应用调用jar包或其他形式实现对单机节点的监控、

通过上报汇总的形式实现对大规模集群实现,非实时监控一般晚于1到5分钟的状况可以监控到。业务监控

采用每个服务器配置监控客户端,客户端负责写日志,并且定时将日志汇总日志中心,日志中心进行展示

,日志展示会存在一定延时。

       监控客户端可以实现为jar包,供需监控系统调用,实时写日志到文件系统比如每分钟生成一个日志

文件,监控jar包每个几十秒启动一次,扫描非当前系统正在写的日志文件(重写log4j类来实现)避免

同时读写一个文件产生异常情况,按行读取异步通过消息队列或发送实时收集接口到日志中心,删除处理

完成日志。

      监控为实现数据不丢失用于实时计算和离线计算,可以通过nginx代理形式,实现上边写文件形式来

保证一份数据是稳定的非常全的数据。

     2、某个用户调用路径监控可根据调用参数增加debug=true,关键方法均将返回值增加到返回值得

hashmap中,这个问题需要避免被外界恶意调用,恶意调用会将整个路径暴露,可以对debug调用ip或

其他可验证身份的东西做相应限制。

     3、实时监控系统,大众点评开源cat系统。

     4、数据传输如特别在意时效性,可将传输协议用udp,同事阿力提出的想法,很赞。

 

       未完待续...

posted @ 2016-07-22 09:19  杉枫  阅读(353)  评论(0编辑  收藏  举报