怕文不对题,提醒一句,先按照个人思路阐述一下。
首先你得关注整体架构吧,前端的展现只要后台提供了数据接口问题就不大了,如果你搞不定前端就想办法了,找人帮忙指导啥的。
分两部分看你的问题,一个是基本监控(性能信息:io, CPU, 内存),一个是扩展或者定制监控,消息数量,队列长度,cache命中率,然后才是数据输出(到前端)。
楼上提到的开源的监控软件据我了解都能满足基本监控的需求。定制部分就要看这些开源软件的架构及你个人、团队对这个软件的掌握程度了。比如我了解到Nagios,是支持扩展的,把NRPE看作一阵通信机制的话,在agent端和client端都可以根据nagios提供的文档进行扩展。<del>Nagios的4.x明确支持分布式了,还支持热备.</del>删除线部分不保证什么正确,哈。
然而,不得不说哪种软件适合自己还得从自身、团队的技术背景出发考虑。如Nagios是C语言写的,他本身也带了PHP前端,PHP和后台采用的是CGI通信方式,个人觉得定制Nagios难度不小,当然不能排除C语言大神的存在,我反正是放弃了的。另外,还需要考虑一点是否需要支持行业标准协议SNMP,如果需要支持的话,那有些开源软件你或许就不会选择了,如Nagios就是自己定义的协议,虽然可以通过扩展支持SNMP协议,但这种不直接让人觉得不够爽快。
说了这么多,虽然有难度,但是能把监控做好的已经能做成一门大生意了,建议去偷师“监控宝”。
虽然题主的问题是“求开源简单的监控系统 web 展现框架”,关心的是web框架,我上面都在谈监控。。。
我凭印象提一下开源监控软件的的前端的情况,它们的前端大都很朴素的,并没有上升得到“框架”的层次。
例如绘制流量图,使用标准协议SNMP的MRTG+RRDTool,现在zabbix, nagios, cactic都使用它。监控软件关注的实时性,而且尽量不对agent机器造成性能影响。如果是自己采集收集然后在前端输出的话,或许你需要一个数据库,opennms也使用到了postgresql。
http://njulinq.blog.51cto.com/1257169/277754那么假设前面的问题都解决了,要绘制表格、曲线图、柱状图、饼状图等这些图例,可选用当然有大名鼎鼎的highcharts了,python作为运维中比较流行的语言,也有不少可以选择的,参考链接
http://django-china.cn/topic/75/最后再说点之前的实践好了,怕又泄露公司机密啥的,其实也没啥秘密可言的。提两个关键的地方,
1. 采集数据采用的是异步方式
2. 适时地对大数据进行统计汇总
3. 漂亮的绘图框架怕是影响性能的
4. 。。。