Cartographer FAQ

Jump to: navigation, search
Download Software


Cartographer Project FAQ

This FAQ for the Cartographer project is broken into several sections. If you do not find the answer to your question here, please let us know by emailing info2 -at-


What is Cartographer?

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.

Relationships are modeled using a dependency graph borrowed from the Graph Theory branch of mathematics. In our model, systems and applications are represented as vertices and dependencies are represented as edges. More specifically, we use directed graphs to indicate dependencies between clients and servers or between peers. Once dependencies are discovered, Cartographer agents automatically organize systems and applications into peer-to-peer overlays. Then, peers exchange management information amongst themselves to detect and correct service problems with the goal of doing so without the active participation of management software.

What license agreement is Cartographer released under?

Two licenses cover different components of Cartographer. The first, the GNU GPLv2, covers pieces that have been open sourced. The second, this license agreement covers those portions not released under open source.

What are the pieces parts?

The figures below depict the software architectural relationship between the various components. Green denotes an open-source component, covered by the GPLv2, while blue denotes those that are traditional or closed-source covered by our own license agreement.

Where can I download the source?

See this web page to download source and binaries.

What is the current version?

The current release is 1.4. This release incorporates Cartographer GUI version 0.36, Cartographer agent version 0.79, MIB-2 plugin version 0.96, and Cartographer plugin version 0.50.

Why are version numbers less than one?

Version 1.x will signify a stable API and protocol. Since the Cartographer project is still undergoing rapid R&D, we felt it best to gather community feedback prior to codifying a version 1.0.


What is XMP?

XMP is an acronym for the not-very-creatively named XML Management Protocol. It is the management protocol used by the Cartographer project.

Where can I get it?

You can download XMP implementations here.

Do you have an implementation of XMP in my favorite programming language?

The answer depends on what your favorite programming language is. Implementations exist for C and Java with Python and Perl in the works.

Does XMP interoperate with SNMP?

Not directly. XMP borrows heavily from the Internet Management Framework SMI but the XMP protocol is TCP based and uses XML for data description and data transfer. SNMP uses UDP and ASN.1/BER for data description and transfer.

Is XMP secure?

We think so and hope so. XMP uses SSL for privacy and authentication.

Why didn't you just use SNMP?

Several reasons. First, SNMPv1 is not secure providing neither privacy nor authentication. Second, SNMPv3, while secure, is not so simple anymore. Third, since XMP was designed for a different purpose (e.g. distributed system dependency propagation and exchange of larger amounts of management information), the engineering and design choices driving the SNMP use of UDP were no longer relevant.

Do any other commercial or open source management packages support XMP?

Yes. OpenNMS supports XMP. OpenNMS is the world's first enterprise grade network management platform developed under the open source model.

What about product X?

We are evaluating other open source management software projects including Zenoss. We have written an adapter for MRTG which is included in the distribution. We have not planned integrations for any other projects at this time.

Where can I find the XML Schema Files for XMP?



How do I install Cartographer?

Cartographer consists of two major components -- intelligent agents, and a graphical user interface. Instructions for installing the agent can be found here. Instructions for installing the graphical user interface can be found here.

Do you have a windows installer for Cartographer agents?

Yes! Have no fear. You too can mindlessly click Next Next Next. See this page for an overview.

Does the agent installer include binaries for all platforms?

Yes. Cartographer agents are self-upgrading and thus each installing contains binaries and libraries for all supported platforms. Self-installation functionality is under development.

How do I Uninstall Cartographer?

If you installed the Cartographer agent using the Windows installer, simply run the un-installer. If you installed via an RPM or Solaris Package, uninstall using those facilities (e.g. rpm -e or pkgrm).

Do you have Solaris packages and Linux RPMs?

Solaris packages and Linux RPMs are available in release 1.3.

Configuring Cartographer

What port do Cartographer agents listen on?

Cartographer agents listen on TCP/5270. This port is registered with IANA.

How do I open a hole in my firewall for Cartographer?

For Linux iptables, the following rule allows XMP into and out of a system.

# allow TCP connections into port 5270
$IPTABLES -A INPUT -p tcp --dport 5270 --syn -m state --state NEW -j ACCEPT

# allow TCP connections out to port 5270
$IPTABLES -A OUTPUT -p tcp --dport 5270 --syn -m state --state NEW -j ACCEPT

For Windows, you can add a rule for TCP port 5270 or create a firewall rule for the application xmpd-win32.exe.

How do I start and stop the Cartographer agent?

On UNIX, run the /etc/init.d script to start and stop the Cartographer agent.

Usage: cartographer {start|stop|restart}

On Windows, simply use the Services control panel applet to start and stop the Cartographer agent.


How do I configure Cartographer agents?

Cartographer agents are configured via the xmpd.xml file located in the agent's installation directory. That directory is normally /opt/cartographer on UNIX and c:\program files\cartographer on Windows.

Which agents are allowed to talk to a Cartographer agent, what users are allowed to exchange management information, and what protocol operations are allowed are configured via the authenUser statement.


The XML primitive tells a Cartographer agent that aUser (case sensitive) is allowed to exchange management information contained in the MIBs cartographer, mib2, and core and that all management operations are allowed (e.g. Get, Set, Select, Insert, Update, Delete, Trap).

Additional configuration statements are allowed in this config file. See the example config file, contained in the agent distribution, for more information. Those statements include:

  • xmpd_trace turns on packet tracing
  • xmpd_verbose turns on verbose output
  • xmpd_daemon tells the agent (on UNIX) to run as a daemon
  • defaultmanager tells the agent where to send Traps to by default. Hostnames or IP addresses are supported.
  • autoupgrade (true, false) tells the agent to automatically exchange and install software updates

I hate reading manuals and documentation. Do you have a cheat-sheet and example configurations I can "borrow"?

Yes. See Example Cartographer Agent Configuration for example configurations.


An agent does not respond to queries.

  1. Check that the Cartographer agent is running.
  2. Check that a local firewall is not blocking TCP/5270 connections.
  3. Try connecting to the Cartographer agent using the xmpquery tool.
  4. Verify the authenUser parameter you are using is in the agent's xmpd.xml file.
  5. Run the agent in trace/verbose mode and inspect its output.

How do I upgrade my agents?

The process for upgrading deployed agents is fairly straightforward due to Cartographer's support for self-upgrading. The process for upgrading is roughly:

  1. Pick a system with fairly a high degree. In graph theory, a vertex with a high degree has a lot of edges incident to it. In our dependency model, a system with a high degree has a lot of dependencies to or from the system.
  2. Stop the agent on this system
  3. Install the upgrade
  4. Re-start the agent
  5. This upgraded system will then start exchanging module information with its peers and the updates will disseminate out to the other systems.

Bugs? How do I submit a bug report?

We are not yet using any formal bug tracking system (e.g. Bugzilla). However, we are evaluating different options assuming we find any bugs. In the interim, please email bugs, nits, and questions to the developers' mailing list or info2 -at-

How do I submit a feature request?

Until we deploy an external-facing bug and feature tracking system, the best way to submit feature requests is to email them to the developer list or info2 -at-


Can I contribute code to the Cartographer project?

Yes, sort of. We would love comments, feedback, improvement requests, bug reports, etc. However, we are not yet set up for code contributions due to license agreements and the need to work on a contributor's agreement. We hope to eventually work through those details.

Personal tools