论坛首页 Java企业应用论坛

公司要求实时监控服务器,写个Web的监控系统

浏览 35291 次
精华帖 (0) :: 良好帖 (7) :: 新手帖 (0) :: 隐藏帖 (2)
作者 正文
   发表时间:2008-08-20  
xboss 写道
有现成的开源的Ganglia,很好用,我们公司就用他

http://wiki.huihoo.com/index.php?title=Ganglia

谢谢分享,看起来不错,似乎可以支持集群和分布式,好好研究一下
0 请登录后投票
   发表时间:2008-08-21  
用什么ajax去刷新啊,报警的时候 把数据推送到前台,节省资源。
0 请登录后投票
   发表时间:2008-08-21  
kakaluyi 写道
xieke 写道
kakaluyi 写道
楼上的朋友建议很好,但是不符合我这个系统吧,如果用push(服务器驱动客户端),
像我做的cpu,内存等系统信息不好做成服务端的事件驱动吧,总不能每内存, cpu有改变就推
一次客户端,只能用轮询的方法吧

你说的轮询是指服务器端的,是监控数据的实现。
他们说的推指客户端的,指浏览器取数据的方式,不一样的。


不不,我的轮询是客户端(浏览器)发送请求轮询服务器的系统信息,当然项目要做的是一个会议系统就是一个推比如有用户进入会议,则要通知浏览器有用户进入,这样就要用到长连接,要servlet和客户端一直挂住,这就是我理解的推,由事件驱动,如果由客户端一直查询servlet是否有用户加入会议,则用到了轮询,这个实时性都非常不好,性能也损失很大,正在优化,每个用户进入会议想把从轮询过度到,服务端通知浏览器。而这个实时监控我觉得用浏览器轮询服务器会比较好,因为系统信息不好事件驱动


我开始以为系统是这么设计的,
在服务器端开一个线程不断轮询,当查询到有新数据时,保存数据等待客户端来取,或者直接推给客户端。

你的方案是ajax直接来轮询,这样做网络流量会变大,对服务器压力也大。我觉得可以改进成服务器端轮询,有数据变化的时候推给客户端的方式。
0 请登录后投票
   发表时间:2008-08-21  
回楼上:
因为网管就只有很少的几个人会对服务器进行轮询监控,我觉得服务端压力不会太大,这种情况我倒觉得用推的方式对服务器的压力倒更大,(servlet会独占一个线程)
0 请登录后投票
   发表时间:2008-08-21  
个人感想: 还不如装个SiteScope, 用它来做实时监控是非常不错的一个工具。
0 请登录后投票
   发表时间:2008-08-21  
为什么都喜欢搞这么复杂.

直接写个 linux 下的 shell 脚本,实时报告自己的状态至一个数据库;
java端应用直接操作数据库不就得了....
0 请登录后投票
   发表时间:2008-08-22  
MiMiEye 写道
为什么都喜欢搞这么复杂.

直接写个 linux 下的 shell 脚本,实时报告自己的状态至一个数据库;
java端应用直接操作数据库不就得了....

不错的主意!
0 请登录后投票
   发表时间:2008-08-22  
MiMiEye 写道
为什么都喜欢搞这么复杂.

直接写个 linux 下的 shell 脚本,实时报告自己的状态至一个数据库;
java端应用直接操作数据库不就得了....

不觉得,按你那样做,既然要实时,服务端就要不停的把状态写入数据库,但是其实他的状态就是不停的写入本地文件与其再写一次数据库不如直接读文件,而且如果像你说的那样做,一次就是读写两次操作数据库了,而且服务器你要不停的写,浏览器客户端而且要不停的读,你怎么保证时钟同步
0 请登录后投票
   发表时间:2008-08-22  
确实,有些东西不一定 一定要用java实现。
0 请登录后投票
   发表时间:2008-08-22  
用socket吧,c++写比较好:
native code本身对系统消耗低,优势。
想到的方法:
1.通过调用系统命令。管道+正则,这种写起来简单,各个系统平台的命令结果差别是有,不过不是很大。
2.通过系统提供的性能模块。api不是太好找。
3.购买工具,免费开源的也有。开源的最好了,可以改造也,验证下系统利用率,提高采样率还可以用于高采样率的性能测试环境,不过采集数据的保存和可视化就要自己搞了。ganglia就很好,至少可以做base.

不过要是想监控java中间件的,那就要是java了,通过jmx。
oracle或sqlserver监控没搞过,自己想到通过statics view查询,不过这招不知道靠谱不。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics