The XML Management Protocol, or XMP, is the name of a new management protocol and associated framework under development as part of the Cartographer project. Cartographer implements a novel approach to managing distributed systems by automatically discovering and tracking the relationships between its component systems and applications. Cartographer does so via specially designed agents -- residing on clients, servers and (potentially) network devices -- that detect, identify, and track the inter and intra-system dependencies or relationships. Dependencies include network level services like DNS, DHCP, and SMTP as well as higher-level application abstractions like filesystems, databases, directory services, telephony, and middleware.
XMP is a connection-oriented management protocol built on top of TCP. It has been assigned a reserved TCP port and has been issued TCP/UDP port 5270. The protocol encompasses the exchange of XML-encoded PDUs and is encapsulated in SSL for privacy and authentication. The protocol uses an enhanced offshoot of the Internet Management Framework SMI. XMP has been implemented on Solaris (sparc, x86), Linux, and win32. Its implementations are written in C and Java in both 32-bit and 64-bit environments.
XMP Support in OpenNMS
We have developed an XMP Collector for OpenNMS. This collector allows OpenNMS to communicate with Cartographer agents to collect performance, status, and dependency data. XMP support is tentatively scheduled to be bundled in version 1.6.1. 1.6 was announced 29 October 2008.
Graphs, Reports, etc.
One can visualize data collected, via XMP, through the usual methods within OpenNMS -- via traditional node-level reports and via KSC reports. Below are examples of each. Example entries for both snmp-graph.properties and ksc-performance-reports.xml are included in the OpenNMS distribution.
In the example/snmp-graph.properties file are entries for graphing various MIB objects available via XMP from Cartographer agents. Included in the standard Node-level Performance Data are swap utilization and the number of process/threads over time.
Some example KSC reports for system and application performance are referenced below. The graphs were generated from live systems running Cartographer agents; the data was obtained via ONMS and XMP. Entries for these reports are placed in the file ksc-performance-reports.xml.