java远程监控多个服务器的CPU,内存,磁盘

时间:2021-04-01 06:27:45
远程服务器有UNIX操作系统和linux操作系统。
有一点要注意,为了不影响系统维护难度,不能在被监控端写java程序去输出或者采集CPU,内存,磁盘的相关信息。
之前在网上找了很多文章,其中有作者说明使用snmp的方式来处理,但是用snmp方式需要知道各设备的oid,oid不知道从哪查到。
哪位大侠有什么好办法的,无论用snmp或者别的什么方式都行,高分求解!

19 个解决方案

#1


也有说用ssh或者shell的。请大侠指点一下,最好能有相关代码,谢谢了

#2


学习一下

#3


既然要监控,肯定需要对方同意你才能监控啥,所以需要在被监控端安装服务,一边监控端随时采集数据。

#4


谢谢楼上的朋友。不过上面有个前提了,就是要尽量减少维护的工作量(被监控端的服务器可能有几十个),所以不准备在被监控端安装服务。呵呵。

#5


在线等了,请大侠指点^_^

#6


snmp监控设备时获取设备oid工具
http://download.csdn.net/source/1209409

#7


引用 4 楼 wind198299 的回复:
谢谢楼上的朋友。不过上面有个前提了,就是要尽量减少维护的工作量(被监控端的服务器可能有几十个),所以不准备在被监控端安装服务。呵呵。

用SNMP协议是要在你监控的服务器上部署子代理的,如果你不准备在被监控端安装服务,那么就用不了SNMP协议了~~

之前监控多个服务器全是用一个小工具分发到各个服务器上的,不过没有几十个那么多

#8


Remote login, read system info from /proc directory.

#9


学习一下。

#10


引用 7 楼 imasmallbird 的回复:
引用 4 楼 wind198299 的回复:
谢谢楼上的朋友。不过上面有个前提了,就是要尽量减少维护的工作量(被监控端的服务器可能有几十个),所以不准备在被监控端安装服务。呵呵。

用SNMP协议是要在你监控的服务器上部署子代理的,如果你不准备在被监控端安装服务,那么就用不了SNMP协议了~~

之前监控多个服务器全是用一个小工具分发到各个服务器上的,不过没有几十个那么多

-------------------------------
有无不用部署子代理到服务器上的方案?

请高手指教哈。

#11


现成的就用cacti,自己写就snmp4j+jrobin
我的blog里有一些介绍

#12


Runtime.getRuntime().exec来执行SSH命令
ssh user:pwd@hostnanme (此处紧跟查看的命令)
然后返回的字段,通过分析形成报告。因为你要查看的东西,能用linux完全实现的,我觉得应该是可以实现的,也相对比较简单。

我不知道我的这个说法对服务器负担问题。
楼上提到的SNMP的方案我倒是不熟悉,有时间可以研究下

#13


引用 4 楼 wind198299 的回复:
谢谢楼上的朋友。不过上面有个前提了,就是要尽量减少维护的工作量(被监控端的服务器可能有几十个),所以不准备在被监控端安装服务。呵呵。

既然是远程监控,必然涉及进程间通讯,否则监控服务哪来的被监控端的信息,因此一定得在被监控端安装监控服务。当然可以是UNIX操作系统自带的。我在用LoadRunner进行压力测试时,通常会起相应服务,以便LoadRunner采集服务器的系统信息。如果不想自己开发的话,可以使用操作系统自带的监控服务。

#14


Nagios是一个监视系统运行状态和网络信息的监视系统。Nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等

Nagios可运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等。

Nagios的主要功能特点:
- 监视网络服务 (SMTP, POP3, HTTP, NNTP, PING等)
- 监视主机资源 (进程, 磁盘等)
- 简单的插件设计可以轻松扩展Nagios的监视功能
- 服务等监视的并发处理

Zenoss Core的强大能力来自于深入的列表与配置管理数据库,以发现和管理公司IT环境的各类资产(包括服务器、网络、和其他结构设备)。Zenoss可以创建 关键资产清单和对应的组件级别(接口、服务、进程,已安装的软件等)。建立好模型后,就可以监控与报告IT架构中各种资源的状态和性能容限了。 Zenoss同时提供与CMDB关联的事件和错误管理系统,以协助提高各类事件和提醒的管理效率。以此提高IT管理人员的效率。

java远程监控多个服务器的CPU,内存,磁盘

#15


Nagios+groundWork可以,不需要在主机上安装什么。
但是不是用java作的。而是一套开源、稳定的工具集。

#16


引用 12 楼 nihuajie05 的回复:
Runtime.getRuntime().exec来执行SSH命令
ssh user:pwd@hostnanme (此处紧跟查看的命令)
然后返回的字段,通过分析形成报告。因为你要查看的东西,能用linux完全实现的,我觉得应该是可以实现的,也相对比较简单。

我不知道我的这个说法对服务器负担问题。
楼上提到的SNMP的方案我倒是不熟悉,有时间可以研究下


-----------------
这个方法有考虑过,不过由于被监控的服务器的操作系统有hp unix redhat linux等,带有不确定性,所以仅靠ssh去获得的数据,并不是很好的方案。(注:这个功能需要做成通用化,以适用多种操作系统)

#17


linux下编程还不熟悉 但是我喜欢 不喜欢win下的编程 看到程序变量的写法就晕了

#18


大哥,我也遇到这个问题不知道怎么解决呀?

过来人指点迷津吧!

#19


来顶下,学习。。。

#1


也有说用ssh或者shell的。请大侠指点一下,最好能有相关代码,谢谢了

#2


学习一下

#3


既然要监控,肯定需要对方同意你才能监控啥,所以需要在被监控端安装服务,一边监控端随时采集数据。

#4


谢谢楼上的朋友。不过上面有个前提了,就是要尽量减少维护的工作量(被监控端的服务器可能有几十个),所以不准备在被监控端安装服务。呵呵。

#5


在线等了,请大侠指点^_^

#6


snmp监控设备时获取设备oid工具
http://download.csdn.net/source/1209409

#7


引用 4 楼 wind198299 的回复:
谢谢楼上的朋友。不过上面有个前提了,就是要尽量减少维护的工作量(被监控端的服务器可能有几十个),所以不准备在被监控端安装服务。呵呵。

用SNMP协议是要在你监控的服务器上部署子代理的,如果你不准备在被监控端安装服务,那么就用不了SNMP协议了~~

之前监控多个服务器全是用一个小工具分发到各个服务器上的,不过没有几十个那么多

#8


Remote login, read system info from /proc directory.

#9


学习一下。

#10


引用 7 楼 imasmallbird 的回复:
引用 4 楼 wind198299 的回复:
谢谢楼上的朋友。不过上面有个前提了,就是要尽量减少维护的工作量(被监控端的服务器可能有几十个),所以不准备在被监控端安装服务。呵呵。

用SNMP协议是要在你监控的服务器上部署子代理的,如果你不准备在被监控端安装服务,那么就用不了SNMP协议了~~

之前监控多个服务器全是用一个小工具分发到各个服务器上的,不过没有几十个那么多

-------------------------------
有无不用部署子代理到服务器上的方案?

请高手指教哈。

#11


现成的就用cacti,自己写就snmp4j+jrobin
我的blog里有一些介绍

#12


Runtime.getRuntime().exec来执行SSH命令
ssh user:pwd@hostnanme (此处紧跟查看的命令)
然后返回的字段,通过分析形成报告。因为你要查看的东西,能用linux完全实现的,我觉得应该是可以实现的,也相对比较简单。

我不知道我的这个说法对服务器负担问题。
楼上提到的SNMP的方案我倒是不熟悉,有时间可以研究下

#13


引用 4 楼 wind198299 的回复:
谢谢楼上的朋友。不过上面有个前提了,就是要尽量减少维护的工作量(被监控端的服务器可能有几十个),所以不准备在被监控端安装服务。呵呵。

既然是远程监控,必然涉及进程间通讯,否则监控服务哪来的被监控端的信息,因此一定得在被监控端安装监控服务。当然可以是UNIX操作系统自带的。我在用LoadRunner进行压力测试时,通常会起相应服务,以便LoadRunner采集服务器的系统信息。如果不想自己开发的话,可以使用操作系统自带的监控服务。

#14


Nagios是一个监视系统运行状态和网络信息的监视系统。Nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等

Nagios可运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等。

Nagios的主要功能特点:
- 监视网络服务 (SMTP, POP3, HTTP, NNTP, PING等)
- 监视主机资源 (进程, 磁盘等)
- 简单的插件设计可以轻松扩展Nagios的监视功能
- 服务等监视的并发处理

Zenoss Core的强大能力来自于深入的列表与配置管理数据库,以发现和管理公司IT环境的各类资产(包括服务器、网络、和其他结构设备)。Zenoss可以创建 关键资产清单和对应的组件级别(接口、服务、进程,已安装的软件等)。建立好模型后,就可以监控与报告IT架构中各种资源的状态和性能容限了。 Zenoss同时提供与CMDB关联的事件和错误管理系统,以协助提高各类事件和提醒的管理效率。以此提高IT管理人员的效率。

java远程监控多个服务器的CPU,内存,磁盘

#15


Nagios+groundWork可以,不需要在主机上安装什么。
但是不是用java作的。而是一套开源、稳定的工具集。

#16


引用 12 楼 nihuajie05 的回复:
Runtime.getRuntime().exec来执行SSH命令
ssh user:pwd@hostnanme (此处紧跟查看的命令)
然后返回的字段,通过分析形成报告。因为你要查看的东西,能用linux完全实现的,我觉得应该是可以实现的,也相对比较简单。

我不知道我的这个说法对服务器负担问题。
楼上提到的SNMP的方案我倒是不熟悉,有时间可以研究下


-----------------
这个方法有考虑过,不过由于被监控的服务器的操作系统有hp unix redhat linux等,带有不确定性,所以仅靠ssh去获得的数据,并不是很好的方案。(注:这个功能需要做成通用化,以适用多种操作系统)

#17


linux下编程还不熟悉 但是我喜欢 不喜欢win下的编程 看到程序变量的写法就晕了

#18


大哥,我也遇到这个问题不知道怎么解决呀?

过来人指点迷津吧!

#19


来顶下,学习。。。

#20