我试图找到一个解决方案,允许我监视服务器的资源消耗.最好,我想要获得的指标是网络利用率IO,以及可能的cpu使用/负载平均值和磁盘IO.
我唯一的其他要求是这些信息可以通过Java获得,因此可以进行操作,至少可以在Linux(Fedora)上工作.
我听说过几个监控工具,但我不知道最好的方法.我可能想要每30秒收集一次信息.
谢谢
更新:只是为了重新迭代,我指的是系统范围的监视,不是Java具体的监控.我只想使用Java来访问这些指标
解决方法
您可以选择将监控委托给专用工具,如
Cacti,Centreon或
Zenoss,但对于单个应用程序来说,这可能有点过度.
对于一个简单的解决方案,JMX可能确实是一个更好的解决方案.作为起点,我建议阅读以下文章:Monitoring Local and Remote Applications Using JMX 1.2 and JConsole.然后,看一下Using JConsole to Monitor Applications,一篇非常详细的文章,显示如何使用JConsole访问多个核心监控和
Java平台提供的管理功能包括:
- Detect low memory
- Enable or disable GC and class loading verbose tracing
- Detect deadlocks
- Control the log level of any loggers in an application
- Access OS resources—Sun’s platform extension
- Manage an application’s Managed Beans (MBeans)
但是,AFAIK,JMX不会让您访问网络IO,因此您可能需要这些工具的组合.幸运的是,许多工具(例如Cacti,SmokePing)使用RDD格式,您可以使用Java API(如JRobin或rdd4j)轻松操作.