First to be clear, I am looking for network monitoring suite / library to be used as a part of the cloud, so it runs in cloud, and monitors the cloud - EC2, Rackspace and CloudStack with KVM/VMWare and it's managed via API. It has to be part of this cloud, like fully integrated via API, scalable with no licence issues as well it has to be extensible, so the library would match these criteria.
I am looking for library to support server / switch monitoring, to actually be able to check with the device if it's working OK. However this requires some sort of auto-detection and device support.
Basically I need to automatically detect a new device, start monitoring it like CPU and PING. So how do I auto-detect the machine remotely, this is something I need library for.
Rackspace has something like this - "Cloud Monitoring API". But is there anything opensource which can be used same way for many clouds?
The Nagios and others doesnt have such API, and the big and expensive systems are too big to handle in public cloud, so there must be some other network monitoring engine with API, which can add a new servers automatically and support user isolation for example so I dont see other servers except mine.
The problem is that there is no any reasonable software currently as it seems to actually allow to script something like the following:
To detect and add new host
host = getHostInfo("localhost");
monObj = addHost(host);
monObj.startCPU(20); // monitor CPU every 20 seconds
To get the monitoring results
cpuArray = monObj.fetchArray("2012-07-01", "2012-07-05");
cpuLoadThisMonth = monObj.getLoadAvg("2012-07-01", "2012-07-05");
cpuLoadNow = monObj.getLoadAvg();
The thing is that, I dont need a fully blown monitoring suite, but I need to present data in my own backend, calculate the SLA the way I need, so if there is no library or anything like this, I just do this like on the graph, as such solution is very good to be integrated with every private cloud so you can see your own SLA reports. This way is perfect, because engine is very small so this way on micro instance I can run all processes no problem, however I would prefer to download something which is maintained and supported so when I got Windows 8 or new Cisco this is not going to be a major problem with handling this.
Old monitoring software like Nagios, Solar Winds, Opmanager, Zenoss, are not doing the job this way because they fail in the cloud, because their either do not support API, or are not scalable, or not extensible, for example, OpManager doesnt support API, and Solar Winds as a engine is way too expensive, because I need to pay for new objects.
So I am looking for a simple monitoring solution or library to be run in the cloud, and to monitor the cloud which I can use to integrate the monitoring with the existing private cloud management system, including the load balancer.