Skip to content

drpnd/virtsnmp

 
 

Repository files navigation

Supported hypervisor softwares:
- Hypervisor softwares supported by libvirt
  (Tested on Xen 4.0.1 / Debian 6.0.5)


Requirements for subagent:
- libvirt
- net-snmp
- libxml2
- openssl (crypto)


How to use this (with a simple example):
1. Edit your snmpd.conf
rocommunity  opsawgrocom
agentaddress udp:9999
# to listen on udp:9999

2. Run snmpd with the agentX support
# snmpd --master=agentx --agentXSocket=tcp:127.0.0.1:1705
(Here listening on tcp:127.0.0.1:1705)

3. Run virtsnmpd (this agent)
# ./virtsnmpd -x tcp:127.0.0.1:1705



VMM-MIB structure at a glance
+ vmm-mib  (.1.3.6.1.2.1.TBD)  -- MODULE-IDENTITY; TBD=23456 for the development
  + vmObjects  (1)
    + vmHypervisor       (1)
    | + vmHvSoftware         (1)  -- DisplayString (SIZE (0..255))
    | + vmHvVersion          (2)  -- DisplayString (SIZE (0..255))
    | + vmHvObjectID         (3)  -- OBJECT IDENTIFIER
    | + vmHvUpTime           (4)  -- TimeTicks
    + vmNumber	         (2)  -- Integer32
    + vmTableLastChange  (3)  -- TimeTicks
    + vmTable            (4)
    | + vmEntry  (1)
    |   INDEX  { vmIndex }
    |   + vmIndex          (1)  -- VirtualMachineIndex
    |   + vmName           (2)  -- DisplayString
    |   + vmUUID           (3)  -- VirtualMachineUUID
    |   + vmOSType         (4)  -- DisplayString
    |   + vmAdminState     (5)  -- VirtualMachineAdminState
    |   + vmOperState      (6)  -- VirtualMachineOperState
    |   + vmAutoStart      (7)  -- VirtualMachineAutoStart
    |   + vmPersistent     (8)  -- VirtualMachinePersistent
    |   + vmCurCpuNumber   (9)  -- Integer32
    |   + vmMinCpuNumber   (10) -- Integer32
    |   + vmMaxCpuNumber   (11) -- Integer32
    |   + vmMemUnit        (12) -- Integer32
    |   + vmCurMem         (13) -- Integer32
    |   + vmMinMem         (14) -- Integer32
    |   + vmMaxMem         (15) -- Integer32
    |   + vmUpTime         (16) -- TimeTicks
    |   + vmCpuTime        (17) -- Counter64
    + vmCpuTable         (5)
    | + vmCpuEntry  (1)
    |   INDEX { vmIndex, vmCpuIndex }
    |   + vmCpuIndex       (1)  -- VirtualMachineCpuIndex
    |   + vmCpuCoreTime    (2)  -- Counter64
    + vmCpuAffinityTable (6)
    | + vmCpuAffinityEntry  (1)
    |   INDEX { vmIndex, vmCpuIndex, vmCpuPhysIndex }
    |   + vmCpuPhysIndex   (1)  -- Integer32
    |   + vmCpuAffinity    (2)  -- Integer32
    + vmStorageTable     (7)
    | + vmStorageEntry  (1)
    |   INDEX { vmStorageVmIndex, vmStorageIndex }
    |   + vmStorageVmIndex           (1)  -- VirtualMachineIndexOrZero
    |   + vmStorageIndex             (2)  -- VirtualMachineStorageIndex
    |   + vmStorageParent            (3)  -- Integer32
    |   + vmStorageSourceType        (4)  -- VirtualMachineStorageSourceType
    |   + vmStorageSourceTypeString  (5)  -- SnmpAdminString
    |   + vmStorageResourceID        (6)  -- SnmpAdminString
    |   + vmStorageAccess            (7)  -- VirtualMachineStorageAccess
    |   + vmStorageMediaType         (8)  -- VirtualMachineStorageMediaType
    |   + vmStorageMediaTypeString   (9)  -- SnmpAdminString
    |   + vmStorageSizeUnit          (10)  -- Integer32
    |   + vmStorageDefinedSize       (11)  -- Integer32
    |   + vmStorageAllocatedSize     (12)  -- Integer32
    |   + vmStorageReadIOs           (13)  -- Counter64
    |   + vmStorageWriteIOs          (14)  -- Counter64
    + vmNetworkTable     (8)
    | + vmNetworkEntry  (1)
    |   INDEX { vmIndex, vmNetworkIndex }
    |   + vmNetworkIndex         (1)  -- VirtualMachineNetworkIndex
    |   + vmNetworkIfIndex       (2)  -- InterfaceIndexOrZero
    |   + vmNetworkParent        (3)  -- InterfaceIndexOrZero
    |   + vmNetworkModel         (4)  -- SnmpAdminString
    |   + vmNetworkPhysAddress   (5)  -- PhysAddress
    + vmConformance