云的网络监控库或对象

云的网络监控库或对象

首先要明确一点,我正在寻找可用作云的一部分的网络监控套件/库,以便它在云中运行,并使用 KVM/VMWare 监控云 - EC2、Rackspace 和 CloudStack,并通过 API 进行管理。它必须是此云的一部分,例如通过 API 完全集成,可扩展且无许可问题,并且必须可扩展,因此该库符合这些标准。

我正在寻找支持服务器/交换机监控的库,以便能够实际检查设备是否正常工作。然而,这需要某种自动检测和设备支持。

基本上我需要自动检测新设备,开始监控它,比如 CPU 和 PING。那么我如何远程自动检测机器呢?这是我需要库来做的事情。

Rackspace 有类似的东西 - “云监控 API”。但是有没有开源的东西可以以同样的方式用于许多云?

Nagios 和其他系统没有这样的 API,而大型昂贵的系统太大而无法在公共云中处理,因此必须有其他带有 API 的网络监控引擎,它可以自动添加新服务器并支持用户隔离,例如,除了我的服务器之外,我看不到其他服务器。

问题是目前没有任何合理的软件,因为它似乎实际上允许编写如下脚本:

检测并添加新主机

host = getHostInfo("localhost");
monObj = addHost(host);
monObj.startCPU(20); // monitor CPU every 20 seconds

获取监测结果

cpuArray = monObj.fetchArray("2012-07-01", "2012-07-05");
cpuLoadThisMonth = monObj.getLoadAvg("2012-07-01", "2012-07-05");
cpuLoadNow = monObj.getLoadAvg();

云端监控节点

问题是,我不需要功能齐全的监控套件,但我需要在自己的后端呈现数据,以我需要的方式计算 SLA,因此如果没有库或类似的东西,我只需像在图表上那样执行此操作,因为这种解决方案非常适合与每个私有云集成,以便您可以查看自己的 SLA 报告。这种方式很完美,因为引擎非常小,所以通过这种方式,在微型实例上我可以毫无问题地运行所有进程,但是我更愿意下载一些维护和支持的东西,这样当我获得 Windows 8 或新 Cisco 时,这不会成为处理这个问题的主要问题。

旧的监控软件,例如 Nagios、Solar Winds、Opmanager、Zenoss,都无法以这种方式完成工作,因为它们在云端无法运行,因为它们要么不支持 API,要么不可扩展,要么不可扩展,例如,OpManager 不支持 API,而 Solar Winds 作为引擎太贵了,因为我需要为新对象付费。

因此,我正在寻找一个简单的监控解决方案或库,可以在云中运行,并监控云,我可以使用它来将监控与现有的私有云管理系统(包括负载均衡器)集成。

答案1

来自评论...

C API 将是最小的

如果你需要的只是一个用于 SNMP 监控的 C-API,那么事实上的选择是NET-SNMP。 请参见这个问题例如用法。

我安装了 20 个监控系统,但没有一个具有任何可以从 Windows 机器获取 CPU 使用率的库。

如果这 20 个监控系统中有任何一个支持 SNMP 获取和读取,那么使用 C-API 确实很难。在 Windows 机器上监控 CPU 所需的只是hrProcessorTable来自主机资源 MIB. 确保你有在 Windows 服务器上启用 SNMP并允许它通过 Windows 防火墙。

为了您自己的理智,请使用现有的 20 个支持 SNMP 的监控系统之一hrProcessorLoad对您的 Windows2008 服务器进行轮询。 本博客有一个很好的例子

答案2

我差点就将此作为评论发布出来,但发现已经有很多了。

目前有很多开源监控解决方案。Nagios、zenoss、Cacti、Spiceworks。

SNMP、Netflow(用于思科产品)、WMI 等都可用于监控这些设备。

您是否专门寻找云/在线解决方案,还是内部部署也可以?

该问题右边的大多数问题(在链接中)都可以为您指明正确的方向。

相关内容