Chapter 5 Monitoring Oracle VM Server with SNMP

Oracle VM Server provides support for Simple Network Management Protocol (SNMP) monitoring. Find out what SNMP applications are installed by default and learn how to get started with SNMP.

5.1 Installed SNMP Packages

The default installation of Oracle VM Server includes the NET-SNMP suite of applications. These applications allow you use the SNMP protocol to monitor Oracle VM Server.

The following SNMP packages are installed by default:

Package

Description

net-snmp

SNMP agent daemon and documentation.

net-snmp-libs

Runtime libraries and management information bases (MIBs).

net-snmp-utils

Network management utilities such as snmpget and snmpwalk.

ovs-snmp

SNMP shared object module that lets you monitor Oracle VM Server.

The Oracle VM Server management information base (MIB) defines several objects that provide information about the server and the virtual machines running on the server. The base OID for this MIB is 1.3.6.1.4.1.111.57.1. You can find more information about the objects that this MIB defines in the following file on Oracle VM Server: /usr/share/snmp/mibs/ORACLE-OVS-MIB.txt.

Note

Check the installed packages as follows:

# rpm -qa | grep snmp
net-snmp-5.5-xx.x.x.xxx_x.x.x86_64
net-snmp-libs-5.5-xx.x.x.xxx_x.x.x86_64
net-snmp-utils-5.5-xx.x.x.xxx_x.x.x86_64
ovs-snmp-x.x-x.el6.x86_64

See the NET-SNMP documentation for more information.

5.2 Adding the Oracle VM Server Object Module

To monitor Oracle VM Server configuration with the ovs-snmp shared object module, you must add the following line to /etc/snmp/snmpd.conf:

dlmod ovs /usr/lib64/ovs-snmp/ovs.so
Note

The default snmpd.conf on Oracle VM Server provides an example configuration that you should modify to suit your business needs. It is beyond the scope of this documentation to describe a complete configuration for snmpd.conf. Refer to the snmpd.conf man page for more information.

From a high level, the steps to add the ovs-snmp shared object module to snmpd.conf are as follows:

  1. Connect to the appropriate instance of Oracle VM Server.

  2. Open /etc/snmp/snmpd.conf for editing.

  3. Add the following line:

    dlmod ovs /usr/lib64/ovs-snmp/ovs.so
  4. Ensure that you have read access rights in snmpd.conf.

    Tip

    You can temporarily add rocommunity public to the start of snmpd.conf to allow read access from all computers on the network.

  5. Save and close /etc/snmp/snmpd.conf.

  6. Restart the SNMP service, if it is running.

    # service snmpd restart

5.3 Enabling the SNMP Service

The SNMP daemons are disabled by default, and should be enabled if you intend to use SNMP to monitor an Oracle VM Server. You can check your configuration to determine whether the service has been enabled as follows:

# chkconfig --list |grep snmp
snmpd           0:off   1:off   2:off   3:off   4:off   5:off   6:off
snmptrapd       0:off   1:off   2:off   3:off   4:off   5:off   6:off

To enable the SNMP service, you can start it manually by issuing the following command:

# service snmpd start

To enable the SNMP service permanently, you can issue the following command:

# chkconfig --level 2345 snmpd on
Note

The Oracle VM Server MIB does not define any SNMP traps. You should start the snmptrapd service only if you require it for other purposes.

5.4 How to Retrieve MIB Objects

When the SNMP service is running, you can use NET-SNMP applications to retrieve MIB objects directly from the command line on Oracle VM Server. You can also use other applications, such as Oracle Enterprise Manager, to retrieve MIB objects.

This section provides examples for demonstration purposes only. You should refer to the manpages for NET-SNMP applications or the appropriate documentation for your NMS to determine how you should retrieve MIB objects to suit your business needs.

Note

The examples in this section:

  • Assume that you have configured the public community for read access.

  • Use a lower security level, SNMP v2c, for access. You should configure SNMP v3 to ensure that you restrict access control to authorized users. Refer to the appropriate documentation for information on access control and security levels as well as instructions on configuring SNMP v3.

Tip

If the last line of the output contains No more variables left in this MIB View (It is past the end of the MIB tree), then you might not have read access rights in snmpd.conf. To resolve this issue, you can temporarily add rocommunity public to the start of /etc/snmp/snmpd.conf to allow read access from all computers on the network.

The following example uses the snmpwalk application to return values for all objects in the MIB tree:

# snmpwalk -v2c -c public localhost
SNMPv2-MIB::sysDescr.0 = STRING: Linux FQDN 3.8.13-68.2.2.el6uek.x86_64
 #2 SMP time_stamp x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (2654) 0:00:26.54
SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost>
 (configure /etc/snmp/snmp.local.conf)
SNMPv2-MIB::sysName.0 = STRING: FQDN
SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf)
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (18) 0:00:00.18
SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDMIBObjects.3.1.1
SNMPv2-MIB::sysORID.2 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance
SNMPv2-MIB::sysORID.3 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
SNMPv2-MIB::sysORID.4 = OID: SNMPv2-MIB::snmpMIB
SNMPv2-MIB::sysORID.5 = OID: TCP-MIB::tcpMIB
SNMPv2-MIB::sysORID.6 = OID: IP-MIB::ip
SNMPv2-MIB::sysORID.7 = OID: UDP-MIB::udpMIB
SNMPv2-MIB::sysORID.8 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup
SNMPv2-MIB::sysORDescr.1 = STRING: The MIB for Message Processing and Dispatching.
SNMPv2-MIB::sysORDescr.2 = STRING: The MIB for Message Processing and Dispatching.
SNMPv2-MIB::sysORDescr.3 = STRING: The SNMP Management Architecture MIB.
SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for SNMPv2 entities
SNMPv2-MIB::sysORDescr.5 = STRING: The MIB module for managing TCP implementations
SNMPv2-MIB::sysORDescr.6 = STRING: The MIB module for managing IP and ICMP implementations
SNMPv2-MIB::sysORDescr.7 = STRING: The MIB module for managing UDP implementations
SNMPv2-MIB::sysORDescr.8 = STRING: View-based Access Control Model for SNMP.
SNMPv2-MIB::sysORUpTime.1 = Timeticks: (17) 0:00:00.17
SNMPv2-MIB::sysORUpTime.2 = Timeticks: (17) 0:00:00.17
SNMPv2-MIB::sysORUpTime.3 = Timeticks: (17) 0:00:00.17
SNMPv2-MIB::sysORUpTime.4 = Timeticks: (17) 0:00:00.17
SNMPv2-MIB::sysORUpTime.5 = Timeticks: (18) 0:00:00.18
SNMPv2-MIB::sysORUpTime.6 = Timeticks: (18) 0:00:00.18
SNMPv2-MIB::sysORUpTime.7 = Timeticks: (18) 0:00:00.18
SNMPv2-MIB::sysORUpTime.8 = Timeticks: (18) 0:00:00.18
....

The following example uses the snmpwalk application to load ORACLE-OVS-MIB and return values for objects in the Oracle VM Server MIB tree:

# snmpwalk -v2c -c public localhost -OQ -m +ORACLE-OVS-MIB .1.3.6.1.4.1.111.57.1
ORACLE-OVS-MIB::ovsType.0 = Oracle VM Server
ORACLE-OVS-MIB::ovsVersion.0 = version
ORACLE-OVS-MIB::ovsClusterState.0 = DLM_Ready
ORACLE-OVS-MIB::ovsClusterType.0 = nfs
ORACLE-OVS-MIB::ovsClusterStorage.0 = hostname:/nfs/clusterfs/path
ORACLE-OVS-MIB::ovsManagerUUID.0 = 0004fb0000010000af78ad71a2719608
ORACLE-OVS-MIB::ovsServerpoolName.0 = my-pool
ORACLE-OVS-MIB::ovsAgentState.0 = Running
ORACLE-OVS-MIB::ovsFreeMemory.0 = 12766
ORACLE-OVS-MIB::vmIndex.0 = 0
ORACLE-OVS-MIB::vmIndex.1 = 1
ORACLE-OVS-MIB::vmIndex.2 = 2
ORACLE-OVS-MIB::vmType.0 = 0004fb00000600002eb4165c672efe28
ORACLE-OVS-MIB::vmType.1 = 0004fb0000060000959d078c46ec4268
ORACLE-OVS-MIB::vmType.2 = Domain-0

The following example uses the snmptable application to retrieve the running virtual machines on Oracle VM Server from the ORACLE-OVS-MIB::vmTable SNMP table:

Note

The ORACLE-OVS-MIB::vmTable SNMP table contains a cached value that expires after 60 seconds.

# snmptable -v 2c -c public localhost ORACLE-OVS-MIB::vmTable
SNMP table: ORACLE-OVS-MIB::vmTable

 vmIndex                           vmType
       0 0004fb00000600002eb4165c672efe28
       1 0004fb0000060000959d078c46ec4268
       2                         Domain-0