Using net-snmp to monitor a dynamic cloud-based back-end

Maarten Wijnants <[email protected]>
Newsgroups gmane.network.net-snmp.user
Message-ID <[email protected]>
Dear all,

We are interested in exploiting SNMP in general, and net-snmp in 
particular, to monitor a dynamic cloud computing back-end that is 
implemented by means of CloudStack [1]. The back-end consists of a 
cluster of physical machines on which Virtual Machine (VM) instances are 
spawned and destroyed on an as-needed basis. Each VM in turn is capable 
of hosting multiple server applications, which are also dynamic in 
nature in the sense that the number of server applications can fluctuate 
over time. Combined, this yields a highly dynamic setup that is 
characterized by both VM and application churn. The VMs currently run 
Windows 7, yet might in the future be migrated to a Linux/Unix distribution.

We would like to monitor not only the spawned VMs globally, but also the 
individual server applications which they accommodate. The monitoring 
should in addition involve not only "physical" resource usage (i.e., 
CPU, memory, network bandwidth, ...), but also application-layer metrics 
(e.g., number of clients that are connected to a particular application 
server). Finally, we would like the monitoring to be automated as much 
as possible. For example, as soon as a new VM is spawned, we would like 
the NMS to automatically start collecting statistics about it; the same 
holds true for situations where a new application server is started on 
an existing VM. We are currently using Cacti [2] to aggregate the SNMP 
data and to visualize the result.

Is it possible to realize this with net-snmp (and Cacti)? We have found 
tutorials and documentation about how to extend the net-snmp agent to 
support "non-standard" metrics. We have read about writing snmpd 
extensions (e.g., [3]), and we have successfully experimented with the 
"extends" directive to introduce new OID values (e.g., [4]). We 
succeeded in using the latter approach to attach a "client_count" OID to 
a local file on a VM's disk that is continuously updated with the 
current client count of a server application that is running on that VM. 
Unfortunately, we are struggling to generalize this approach so that it 
works for dynamic numbers of application servers (and VMs).

 From the information that we have collected so far, we feel like our 
best bet is to define a custom MIB tree, with a branch for each of the 
(physical or application-layer) metrics that we would like to monitor 
from the application servers. For instance, the "client_count" branch of 
the MIB tree could hold one instance/row for each currently active 
application server to specify the current client count of this 
particular server. Another branch could hold the CPU usage of each 
application server. The NMS could then do a SNMP walk of these subtrees 
to obtain, for example, the client count values of all currently running 
application servers on a particular VM. Is this approach viable? If so, 
how could it best be realized? If not, does any of you have any 
suggestions about how our problem could be addressed?

Many thanks in advance!
Best regards,
Maarten Wijnants

[1] http://cloudstack.apache.org/
[2] http://www.cacti.net/
[3] http://www.net-snmp.org/wiki/index.php/TUT:Writing_a_MIB_Module
[4] 
http://docs.fedoraproject.org/en-US/Fedora/16/html/System_Administrators_Guide/sect-System_Monitoring_Tools-Net-SNMP-Extending.html

------------------------------------------------------------------------------
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk

_______________________________________________
Net-snmp-users mailing list
[email protected]
Please see the following page to unsubscribe or change other options:
https://lists.sourceforge.net/lists/listinfo/net-snmp-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.