最近工作上需要开发一个实时监控的功能,类似于一个简单版的hyperic hq。需求大致如下:
1.需要监控多台主机的CPU、内存等信息,主机的数量应该考虑上百台。
2.监控的功能是可以扩展的,如增加一个监控Tomcat的功能
3.能查看任意两个时间点之间的历史数据
想请求各位大虾的是:
1.如何保存数据格式,才能达到以上需求?行业是否有相应标准和API?
有一个TDMS数据格式,是LabView使用的,是测量领域的事实标准,但是不清楚适合软件的测量,另外,暂时找不到java API。
2.如何获取监控数据。是Agent端推,还是Server端拉?
对于推,对于数据采样频率改变会比较麻烦,对于拉,拉的过程中会花较长的时间,尤其如果有主机失效的话,实时性比较差。
3.另外,交互的协议也是一个问题。JMX、SNMP、还是ws?
请je上做过这方面工作的大侠浮出来指教一下。