Unified Trees plugin for Cacti
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



    Author ......... Eric Stewart
    Contact ........ botfodder@gmail.com
    Home Site ...... http://runningoffatthemouth.com
    Program ........ Unified Trees
    Version ........ 1.01
    Purpose ........ Pull Tree information from other Cacti installs


----[ Purpose

    This plugin connects to the databases of other Cacti installs for tree
graph information to unify them into one tree for display and navigation
between Cacti instances.

----[ Features

	Options include allowing unifiedtrees to disable database connections
that fail to connect.  If a database is down for some reason, continually
attempting to connect to it can cause slow response from a web browser as the
code tries to build the unified tree.  Disabled connections must be manually

----[ Installation

	If you have not already done so, install the Plugin Architecture

	Next install this Plugin using these directions

	Provide each Cacti install SELECT access to the MySQL databases for
every other install.

	For more information on this plugin

----[ Warnings

 - This version of Unified Trees is only supported on 0.8.8f.  It will likely
	may work in a mixed environment (IE, older versions of Cacti/UT); the
	plugin itself probably won't work on anything prior to 0.8.8c (c, d,
	and e *may* work with the plugin, but are unsupported).  For 0.8.8b,
	look for the 0.8 release or the branch on the GitHub repo.

 - This version *DOES NOT* require patching.  However, it does use the plugin
	architecture to replace top_graph_header.php and contains it's own
	slightly modified version of this file.  If the Cacti group later
	changes how all the page rendering files work together, it's likely
	that things will break.

 - Repository provided versions of Cacti, even if they are advertised as
 	being version 0.8.8b/f, are unsupported.  As an example, the
 	lib/html_tree.php provided by EPEL's Cacti package is significantly
 	different from the Cacti source provided version, and patching the
 	EPEL version will not fully succeed.

----[ Changelog

    --- 1.01 ---
    This involves a fix handling the "Use UT" setting a little better.
    --- 1.0 ---
    Attempting to make a version that looks like/runs on 0.8.8f.
    --- 0.8 ---
    I ran into a situation where some hosts were homed on the wrong Cacti
    host, but I also wanted to come up with a way to maintain the old data on
    the original host.  UT now checks if a host is "disabled" when building
    the tree and appends a " (D)" to the hostname.  This avoids disabled
    hosts colliding with active ones, but note:
    - This still means you can't have more than one active host or the names
      will collide and your master tree will only show one of them;
    - This also means that you can have only one disabled host as well, and
      having more than one will result in collisions.
    - Your alternative? Change the hostname of disabled hosts manually.
      Sorry, I have no other alternatives.
    - Other alternative?  Move disabled hosts to a different leaf.

    --- 0.71 ---
    I needed more frequent building of the tree.

    --- 0.7 ---
    Minor new feature triggered by a development site need: "Other" tree.
    Set the name of a tree you want to show up at the very end of the list of

    --- 0.6 ---
    While there is no new options or features, the fact that this bugfix
    resolves a major operability issue rates moving to 0.6 (as opposed to
    - A bug exists in all previous versions involving collisions of what is
      supposed to be a unique ID within the tree structure.  There's more
      information on the blog post linked above.
    - To fully resolve the issue the patch for html_tree.php has expanded a

    --- 0.5 ---
    Skipping some version values as functionality has expanded greatly.
    - You can now institute a "server/clients" setup (multiple servers
      - Server: runs a poller task that will build a tree at a specified
        interval and save the tree in a special memory based table.  When it
        needs to render that tree, it pulls the tree out of it's own table and
        displays it.
      - Client: connects to first enabled/responding/has tree table entry in
        its "tree sources" list, pulls the tree out of the memory based table
        on that server, and displays it.
      - "Always": Unified Trees operates as it did in 0.1 - pulling trees from
        all servers in its "tree sources" list (every time a tree would be
        loaded) and displays it.
    - Configured as a client with multiple enabled servers, but with "disable
      bad servers" active, a client will disable a server that does not have
      the ut_tree table (or does not respond at all) and will no longer try to
      pull the tree from that server.
    - "Fatal Failures" at any point should simply result in the local tree
      being displayed as it normally would.

    --- 0.1 ---
    Initial release.