在提及网络监控,网络流量,网络上机器的状况和WEB服务器状况监控,(如服务器CPU占有率,发热情况,内存使用情况)我相信大家都有自己很好的方案,比如通过SOCKET+SHELL/JNI,jsnmp,JMS,前台用flex或ajax等实现刷新数据展示.
然而,我不知道大家有没做过或者考虑过,在[b]自己设计开发[/b]的一套[b]BS结构[/b]的多线程网络传输,数据处理,收发系统中(或者其他形式的),从架构上讲如何优雅的实现对这套系统的web监控,监控的数据包括这些:运行了多少天,启动时间,每小时的收取送出数据统计,进程信息:多少个进程及状态,失败的报警等.ok!前端的实现无非是ajax或者applet,或者flex等,这里不做详细的讨论,其实核心的思想是:[b]这样一套BS结构系统抽取这些数据和统计的过程,或者说一套已有的BS系统如何无侵入地植入对他的[color=red]实时[/color]监控[/b]。
这是大家日后都会面临的一个问题,我提点我的想法:
1.用log4j在程序要监控的地方记录数据到数据库,这个有很多问题。并且实时性不好!并且把记录事件分散到代码各个地方,系统本身代码和监控的代码混在一起,非常难以维护和理解!
2.另外起一个线程监控,但是因为要监控的数据都在系统执行的一些代码的地方,不好获取这些数据。不知大家体会到了没有?
3.获取到后放到数据库已设好的一些字段里面去,但是一旦监控的数据改变,增多或者减少,数据库也要随之改变,前台也是,或者系统改变了,监控的代码将随之全部要改!代价很高!
4.或者说在系统的每个类里面植入要被监控暴露的接口(成员变量和代码等)?

欢迎大家加入讨论,集思广益!提供良好优雅的方案