我试图找到一个解决办法,让我监视服务器的资源消耗。 优选地,我想获得的度量是网络的利用率IO,和如果可能的话CPU使用率/平均负载和磁盘IO。
唯一的其他要求,我已经是这个信息是通过获得的Java,因此它可以被操纵,并在Linux(Fedora的)至少工作。
我听说过一些监控工具,但我只是不知道的要对此最好的办法。 我可能会想被收集约每30秒的信息。
谢谢
更新:只是再次重申,我指的是整个系统的监控不是Java具体的监测。 我只是想用Java来访问这些指标
我试图找到一个解决办法,让我监视服务器的资源消耗。 优选地,我想获得的度量是网络的利用率IO,和如果可能的话CPU使用率/平均负载和磁盘IO。
唯一的其他要求,我已经是这个信息是通过获得的Java,因此它可以被操纵,并在Linux(Fedora的)至少工作。
我听说过一些监控工具,但我只是不知道的要对此最好的办法。 我可能会想被收集约每30秒的信息。
谢谢
更新:只是再次重申,我指的是整个系统的监控不是Java具体的监测。 我只是想用Java来访问这些指标
您可以选择委托监测到类似的专用工具仙人掌 , Centreon ,或Zenoss的 ,但是这可能是一个单一的应用程序有点矫枉过正。
对于一个简单的解决方案,JMX可能确实是一个更好的解决方案。 作为出发点,我建议您阅读以下文章: 监视使用JMX 1.2和JConsole的本地和远程应用 。 然后,看看使用JConsole监视应用程序 ,一个非常详细的文章,显示如何使用JConsole的访问由Java平台,包括提供几个核心的监控和管理功能:
- 检测低内存
- 启用或禁用GC和类加载详细跟踪
- 检测死锁
- 控制的任何记录器的日志级别中的应用
- 访问操作系统资源,Sun的平台扩展
- 管理应用程序的管Bean(MBean)
但是,据我所知,JMX不会给你访问网络IO,所以你可能需要这些工具的组合。 幸运的是,许多工具(如仙人掌, SmokePing )使用RDD格式,你可以很容易地使用Java API,如操纵JRobin或rdd4j 。
只是想在混合扔地区总部(http://rhq-project.org/):-)
你可以考虑使用神经节监视工具。 它使用XML作为它的数据表示,所以我想这将是相当简单的从Java访问数据,并且有它被设计为高度可扩展的附加优势,以在大量的记录服务器的度量的潜力机器。
我长大爱collectd ,模块化ç守护重点监测(而不是绘图)与众多的插件 :
这里似乎是用于获取数据到您的Java代码的几个选项:
你最好的选择可能会看在/ proc的所有系统资源使用率的/ proc / cpuinfo中和的/ proc /净/是一个良好的开端。
有什么不对的Runtime.exec(“一些命令”)?
我不知道这是否会有助于您的查询。 恕我直言,仙人掌及Centreon似乎太复杂的时间投入到了和你一样简单的要求。 还有更简单的工具,有服务器监控,如New Relic的和海狮 。 海狮是我目前最喜欢的。 它给覆盖了大部分的基本要求(可能包括你也一样)简单的默认命令。 这也是非常简单的设置,是免费的。 你可以尝试这些了。