Upgrade to Pro — share decks privately, control downloads, hide ads and more …

VMware and OpenNMS in Real World

Ronny Trommer
February 15, 2016

VMware and OpenNMS in Real World

Talk about OpenNMS in VMware environments given at OUCE 2014 at University in Southampton.

Talk: http://cfp.opennms.eu/en/ouce2014/public/events/19

Ronny Trommer

February 15, 2016
Tweet

More Decks by Ronny Trommer

Other Decks in Technology

Transcript

  1. What is it doing for you? • Synchronize vCenter inventory

    in OpenNMS • Control workflow with filter • Longterm performance data collection • Service assurance for VMs and ESX health status • Visualize VMware topology Introduction
  2. A little bit more detailed … • Authentication is handled

    by the vCenter • Detection of the management interface for
 Host-System • VMware related information, e.g. VMware topology, is
 stored in asset fields Introduction
  3. Introduction vCenter Virtual Machine OpenNMS VMware-ManagedEntity [VmwareCollector]! KPI’s for VM

    from vCenter ! VMware-ManagedEntity [VmwareMonitor]! Test: PowerState
  4. Introduction Node: Virtual Machine IP-Interface VMware-VirtualMachine VMware-ManagedEntity Pollerd Collectd VMware-ManagedEntity

    [VmwareMonitor]! Test: PowerState VMware-ManagedEntity [VmwareCollector]! KPI’s for VM from vCenter
  5. Introduction vCenter Host System OpenNMS Virtual Machine vCenter - Management

    Network vCenter - OpenNMS needs access directly to ESX Host
  6. Introduction vCenter Host System OpenNMS Virtual Machine getAuthenticationTicket() Using AuthenticationTicket

    Pollerd: VMwareCimMonitor! Collectd: VmwareCimCollector Pollerd: VMwareMonitor! Collectd: VmwareCollector
  7. Introduction Node: Virtual Machine IP-Interface VMware-VirtualMachine VMware-ManagedEntity Pollerd Collectd Node:

    Host System IP-Interface VMware-HostSystem VMwareCim-HostSystem VMware-ManagedEntity
  8. Introduction Node: Virtual Machine IP-Interface VMware-VirtualMachine VMware-ManagedEntity Pollerd Collectd Node:

    Host System IP-Interface VMware-HostSystem VMwareCim-HostSystem VMware-ManagedEntity Pollerd Collectd
  9. Introduction Node: Virtual Machine IP-Interface VMware-VirtualMachine VMware-ManagedEntity Pollerd Collectd Node:

    Host System IP-Interface VMware-HostSystem VMwareCim-HostSystem VMware-ManagedEntity Pollerd Collectd VMware-HostSystem [VmwareCollector]! KPI’s from vCenter ! VMwareCim-HostSystem
 [VmwareCimCollector]! KPI’s from ESX VMwareCim-HostSystem
 [VmwareCimMonitor]! Test: ESX Health State ! VMware-ManagedEntity [VmwareMonitor]! Test: PowerState
  10. Real World™ • Detecting services on Host-Systems with multiple
 unreachable

    interfaces • Authentication with local vCenter user vs. ADS integration
  11. Workflow for a Host-System
 during the import Real World™ requisition

    = null;! for (hostSystem : allHostSystems) {! ! for (ipadd : allExceptLoopback) {! !! detectService(“VMwareCim-HostSystem”);! !}! ! generateTopologyAssetField();! ! addAssetFields(“CPU”,”RAM”);! ! addCategory(“VMware5”);! ! addNodeToRequisition();! ! return requisitiion;! }
  12. Workflow for a Host-System
 during the import Real World™ requisition

    = null;! for (hostSystem : allHostSystems) {! ! for (ipadd : allExceptLoopback) {! !! detectService(“VMwareCim-HostSystem”);! !}! ! generateTopologyAssetField();! ! addAssetFields(“CPU”,”RAM”);! ! addCategory(“VMware5”);! ! addNodeToRequisition();! ! return requisitiion;! }
  13. vCenter Host System OpenNMS Virtual Machine Real World™ vCenter Microsoft

    Active Directory Services getAuthenticationTicket() Authenticate against LDAP
  14. vCenter Host System OpenNMS Virtual Machine Real World™ vCenter Microsoft

    Active Directory Services getAuthenticationTicket() Authenticate against LDAP LDAP vs. local user
  15. • Data collection is configured by default to get *ALL*

    collectable KPI’s • Measurements from sensors needs additional calculation
 Metric called: Base Unit 2 which-> value / 10^2) Real World™
  16. Version combinations! ! • ViJava Library • vCenter 3/4/5.0/5.1/5.5 •

    Underlying OS for vCenter • Authentication methods • ESX Host operating system versions • API calls which require additional communication for authentication • Side effects from non-perfect functional ADS setups Why is it hard?
  17. What do we have under control?! ! • Implementation of

    the 3rd party libraries ViJava and Sblime • Algorithms for the import • Algorithms for performance data collection • Workflows to model the synchronization behavior Why is it hard?
  18. • Calculate sensor readings during data collection
 https://github.com/OpenNMS/opennms.git
 branch: feature-vmware-metrics

    • Move import to “Inventory Integration Service”
 https://github.com/OpenNMS/opennms-provisioning-integration-server.git
 branch: feature-vmware-source • Improve diagnostic tools like vmwareConDiag
 https://github.com/opennms-forge/vmwareConDiag.git • Improve graphing
 https://github.com/OpenNMS/opennms/tree/vmware-graph-improvement/opennms-base-assembly/src/main/ filtered/etc/snmp-graph.properties.d • Create detector for Host-System service • Bamboo has to build Yum/Debian packages
 http://www.opennms.org/wiki/OpenNMS_and_Vagrant_with_VirtualBox
 release -> “branches/topology-HUD-display” Roadmap
  19. https://github.com/OpenNMS/opennms-provisioning-integration-server.git
 branch: feature-vmware-source VMware Connection Diagnostics Roadmap • It has

    to build from source • Java JDK + Maven required
 mvn clean install! • java -jar …jar-with-dependencies.jar! • config.properties
  20. • Using just standardized XML model for import • More

    flexibility manipulating the requisition before import with Groovy scripts • Free provisiond from 3rd party dependencies • Simplify code for JUnit test environment around Provisioned • Allow faster iteration for fixing import issues Move from integrated URL requisition in Provisiond to to “Inventory Integration Service” Roadmap
  21. Roadmap OpenNMS Provisiond Pollerd Notifd Eventd Alarmd VMware VMware vCenter

    - External dependencies in OpenNMS! - Changes require a full release cycle of the whole OpenNMS project! - Hard to write JUnit tests, mocking vCenter with versions is quite impossible
  22. Roadmap OpenNMS Provisiond Pollerd Notifd Eventd Alarmd VMware VMware vCenter

    Start loosing control cause of depending on 3rd party libs
  23. Roadmap OpenNMS Integration Layer OpenNMS Provisiond VMware Pollerd Notifd Eventd

    Alarmd VMware vCenter Moving technology specific implementation to smaller independent code base
  24. Roadmap OpenNMS Integration Layer OpenNMS Provisiond VMware Pollerd Notifd Eventd

    Alarmd VMware vCenter - Standardized API! - Provides public integration interface via ReST and XML data model! - Hardening and Unit-Testing is easier - ReST API calls! - XML requisition data model
  25. Roadmap OpenNMS Integration Layer OpenNMS Provisiond VMware Pollerd Notifd Eventd

    Alarmd VMware vCenter - Standardized API! - Provides public integration interface via ReST and XML data model! - Hardening and Unit-Testing is easier - Changes don’t affect core project —> faster iteration! - Less complex code surrounded easier to test! - Fast development cycle - ReST API calls! - XML requisition data model Poor mans adaption of ETL
 Extract, Transform, Load