Now, that we've created some nice graphs, they should be put the graph trees. This is done using add_tree.php. As you will notice soon, it is possible to even add header items, hosts and graphs to a tree as well as adding a new tree itself. But let us first see the help output. Calling the script with the parameter --help yields
shell>php -q add_tree.php --help Add Tree Script 1.0, Copyright 2004-2013 - The Cacti Group A simple command line utility to add objects to a tree in Cacti usage: add_tree.php --type=[tree|node] [type-options] [--quiet] Tree options: --name=[Tree Name] --sort-method=[manual|alpha|natural|numeric] Node options: --node-type=[header|host|graph] --tree-id=[ID] [--parent-node=[ID] [Node Type Options]] Header node options: --name=[Name] Host node options: --host-id=[ID] [--host-group-style=[1|2]] (host group styles: 1 = Graph Template, 2 = Data Query Index) Graph node options: --graph-id=[ID] [--rra-id=[ID]] List Options: --list-hosts --list-trees --list-nodes --tree-id=[ID] --list-rras --list-graphs --host-id=[ID]
The first try is dedicated to the list option --list-hosts. It goes like
shell>php -q add_tree.php --list-hosts Known Hosts: (id, hostname, template, description) 1 127.0.0.1 8 Localhost 2 gandalf 3 gandalf ... 11 router.mydomain.com 3 Device Add Test
Now, let us --list-trees. It goes like
shell>php -q add_tree.php --list-trees Known Trees: id sort method name 1 Manual Ordering (No Sorting) Default Tree
Listing all existend node of a given tree is done by
shell>php -q add_tree.php --list-nodes --tree-id=1 Known Tree Nodes: type id text Host 7 127.0.0.1 Graph Template Host 9 gandalf Graph Template Host 12 gandalf Graph Template
For special tree add options, you will require the id of the RRA definition to completly specify the add request. That's why the corresponding --list-rras option is implemented. It goes this way
shell>php -q add_tree.php --list-rras Known RRAs: id steps rows timespan name 1 1 600 86400 Daily (5 Minute Average) 2 6 700 604800 Weekly (30 Minute Average) 3 24 775 2678400 Monthly (2 Hour Average) 4 288 797 33053184 Yearly (1 Day Average)
To be able to add a Graph, the id of that very graph is required. Thus, a --list-graphs --host-id=[id] option was implemented
shell>php -q add_tree.php --list-graphs --host-id=1 Known Host Graphs: (id, name, template) 1 Localhost - Memory Usage Linux - Memory Usage 2 Localhost - Load Average Unix - Load Average 3 Localhost - Logged in Users Unix - Logged in Users 4 Localhost - Processes Unix - Processes 5 Localhost - Traffic - eth0 Interface - Traffic (bits/sec, 95th Percentile) 33 Localhost - Used Space - Memory Buffers Host MIB - Available Disk Space 34 Localhost - Used Space - Real Memory Host MIB - Available Disk Space 35 Localhost - Used Space - Swap Space Host MIB - Available Disk Space 36 Localhost - Used Space - / Host MIB - Available Disk Space 37 Localhost - Used Space - /sys Host MIB - Available Disk Space 38 Localhost - Used Space - /boot Host MIB - Available Disk Space
Cacti comes with a single tree, named Default Tree. Console entry Graph Trees is used to add more trees. With add_tree.php, you may now do so from command line as well:
shell>php -q add_tree.php --type=tree --name="Test Tree Add" --sort-method=manual Tree Created - tree-id: (6)
Verify this from console, Graph Trees to find
Default Tree Test Tree Add
as expected.
Now, that a new tree has been created, you may want to add a new header to that very tree. Use
shell>php -q add_tree.php --type=node --node-type=header --tree-id=6 --name="Header Test" Added Node node-id: (21)
You will want to save the id returned if willing to add further nodes to exactly this new Header Node
Please pay attention, that it is currently not possible to add another header with the same options even if this is possible from console
But it is possible to add a subheader to an already defined header. Even in this case, the name has to be unique
shell>php -q add_tree.php --type=node --node-type=header --tree-id=6 --parent-node=21 --name="SubHeader Test" Added Node node-id: (22)
We will distinguish several options adding a host to a tree. First, let's add a Host directly to a tree. For this example, we use the tree id returned from adding our own Test Tree Add known with id=6
shell>php -q add_tree.php --type=node --node-type=host --tree-id=6 --host-id=1 Added Node node-id: (23)
As no --parent-node was given, this host is directly added to the tree itself. If you wish to add a host to a (sub)header, please specify as follows
shell>php -q add_tree.php --type=node --node-type=host --tree-id=6 --parent-node=21 --host-id=1 Added Node node-id: (24)
Both example come without a --host-group-style option. For those cases, Graph Template host group style is default. Here's an example for providing a host group option of Data Query Index instead
shell>php -q add_tree.php --type=node --node-type=host --tree-id=6 --parent-node=22 --host-id=1 --host-group-style=2 Added Node node-id: (25)
Like above, instead of hosts it is possible to add a single graph to a tree or a (sub)header of any tree. Of course, you again will require the id of the tree and optionally of the header. This results in
shell>php -q add_tree.php --type=node --node-type=graph --tree-id=6 --graph-id=5 Added Node node-id: (26)
Like above, this graph now was added directly to the tree itself. To add a graph to a header, proceed as follows
shell>php -q add_tree.php --type=node --node-type=graph --tree-id=6 --parent-node=21 --graph-id=5 Added Node node-id: (27)
In both cases, no explicit --rra-id was given. This will default to the Daily (5 Minute Average). Specify any other --rra-id as given
shell>php -q add_tree.php --type=node --node-type=graph --tree-id=6 --parent-node=21 --graph-id=1 --rra-id=4 Added Node node-id: (28)
to provide the --rra-id for a rra of Yearly (1 Day Average).