Bug 694096

Summary: [RFE] Provide full snmp functionality for libvirtd
Product: Red Hat Enterprise Linux 5 Reporter: Gary Smith <gasmith>
Component: libvirtAssignee: Michal Privoznik <mprivozn>
Status: CLOSED WONTFIX QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 5.6CC: adevolder, berrange, dallan, eblake, gasmith, jsafrane, rdassen
Target Milestone: rcKeywords: FutureFeature
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: 642556 Environment:
Last Closed: 2011-07-19 11:15:03 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 642556, 733348    
Bug Blocks: 554476    

Description Gary Smith 2011-04-06 12:58:46 UTC
[customer-identifying information removed]

   2. What is the nature and description of the request?
 Provide full snmp functionality for libvirtd

   3. Why does the customer need this? (List the business requirements here)
 We run a telco here at [...] We monitor our vast network using snmp and all
performance information is in one place. This allows us to create views of
entire platforms end to end, as well as archive historical data and even
provide billing. Having all information in one place also allows for
isolating faults using highly accurately correlated events end to end
through a platform or platforms.

We can also generate alarm based on data from a single polled oid, or from a
number of conditions in different locations on different devices.

SNMP is the standard for monitoring and is extremely well understood as well as
computationally efficient. Most vendors provide outstanding SNMP agents with
well conceived MIBS. Allowing us an excellent view of performance and of
events.

We would like to monitor our kvm hosts thoroughly and bring their statistics
together with those from network and storage to provide single page overviews
of our platforms. Additionally we want to be able to correlate performance.

We also want our kvm hosts to send snmp traps on events so they can tell us
through our monitoring system when hypervisor events occur. 

   4. How would the customer like to achieve this? (List the functional
requirements here)
A. We require libvirtd to be enhanced such that metrics for the status and
performance of the hypervisor (KVM) are available via snmp. Most likely this
would be created as an extension of the net-snmp daemon.

Net-snmp allows three methods to add new data. Those are running an external
command, embedded perl, or proxying to another agent. Our preference is either
an external command or embedded perl.

This would include listing the vms on the host, their status, the status of the
host (ie details not otherwise available via snmp standard mibs) as well as
hypervisor settings and so forth.

B. We require that libvirtd be configurable to send snmp traps on events. This
should be flexible enough to send traps to a number of targets simultaneously,
and to send traps to clear alarms.

C. Extending libvirtd so that it can be controlled via snmp would also be
desirable. For example, stopping and starting vm's with an snmp set - migrating
vms with an snmp set.

D. OUI RedHat mibs should be supplied and published for the above. 

   5. For each functional requirement listed in question 4, specify how Red Hat
and the customer can test to confirm the requirement is successfully
implemented.

   6. Is there already an existing RFE upstream or in Red Hat bugzilla?
 No

   7. How quickly does this need resolved? (desired target release)
 Major

   8. Does this request meet the RHEL Inclusion criteria (please review)
 Yes

   9. List the affected packages
 libvirtd, snmp

Comment 2 Gary Smith 2011-04-06 13:03:39 UTC
Monitoring features
===================
1. Status of a specific guest(running, suspended, stopped etc).
2. Status of all guests (should be able to function as a 'list all guests' command)
3. Resource utilization of a specific guest (memory, CPU, per network device, per block device, per character device)
4. The same in a table for all guests
5. Configuration of a specific guest


Traps
=====
1. hypervisor started
2. hypervisor stopped
3. guest started
4. guest stopped
5. guest suspended
6. guest resource allocation changed
7. other gust status change?


Management
===========
1. Start guest
2. Stop guest
3. Suspend guest
4. Create snapshot of guest
5. Modify amount of available RAM
6. Modify number of VCPUs
7. Modify IO limits per available device

Comment 7 RHEL Program Management 2011-07-19 11:15:03 UTC
Development Management has reviewed and declined this request.  You may appeal
this decision by reopening this request.