The Cacti Manual
Prev | Chapter 20. Command Line Scripts | Next

# Add Items to a Tree

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-2018 - 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]

## List Hosts

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

## List Trees

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

## List Nodes

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

## List RRAs

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)

## List Graphs for given Hosts

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

## Add a new Tree

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.

## Add a new Header Node to a Tree

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)

## Add a new Host Node to a Tree

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)

## Add a new Graph Node to a Tree

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).

Prev | Home | Next
Add a New Graph | Up | Add Graph Permissions