THIS DOCUMENT IS UNFINISHED - PLEASE DO NOT YET USE

First off we need to have a working setup with Cacti, Apache, MySQL, Net-Snmp, and RRDTool. Most of this installation and setup is covered by Cacti's install docs so I won't repeat it here. For Cacti installation check: http://www.raxnet.net/products/cacti/documentation.php and follow the Installation Guide. Cacti can be a pain to install and get working right. But it is key to have Cacti working properly before we continue. For troubleshooting Cacti the docs on the site and message board are very good resources. Also be sure you are running the latest version with the latest patches found on the forum announcements.

Requirements for this guide:
-Trango's MIB files (found at www.trangobroadband.com in the support -> downloads section)
-A MIB Browser (i use getif available here: http://www.wtcs.org/snmp4tpc/getif.htm)
-Working Cacti Installation
-Operational Trango Gear (Trango 5830 AP and FOX SU's used in this guide)
-Patience


1. Knowing the XML

Now we will start with the construction of the XML which will gather the correct SNMP information from our specific Trango devices. For information on what all the XML means and stands for see the SNMP Query XML SYntax docs at Cacti's website: http://www.raxnet.net/downloads/cacti/docs/html/snmp_query_xml.html. For this we will work off of an already created XML file for use with Karlnet's wireless products.

Open this file in your favorite editor:


<cacti home dir>/resource/snmp_queries/kbridge.xml


This will be the base of our XML creation. For the sake of this guide we will discuss the parts of the XML

<name>Get Karlnet Bridge Statistics</name>
<oid_index>.1.3.6.1.4.1.762.2.5.2.1.1</oid_index>

The name is just what we want to call this particular XML operation. In our case it will be something like "Gather Trango 5840 AP Stats" or something similar. The oid_index is the OID address of where the information is held for that device. It is usually just a starting point for the walk.

<kbWirelessStationIndex>
<name>Index</name>
<method>walk</method>
<source>value</source>
<direction>input</direction>
<oid>.1.3.6.1.4.1.762.2.5.2.1.1</oid>
</kbWirelessStationIndex>


kbWirelessStationIndex is the field name. To keep consistency this name is usually the same name which is used to identify the oid in the MIB (which we will explore later). The <name> is what we will see this as in Cacti. The <source> should be value. The <direction> should either be input or output. input is used for static values that we will base the graphs on, or in our case, find out which device or SU we will want to graph. output is used for the data we want to be graphing (rssi, traffic, etc.).



2. Finding your own OID and field names


For this step we will use our MIB browser. I will be using a program called getif. getif can be is available at http://www.wtcs.org/snmp4tpc/getif.htm. I will try to be as general as possible so this should work with any MIB browser that can browse by name and OID, walk, and get data from the walk. First we need to install our MIB browser and the trango MIB for it. Consult the docs for the MIB browser to find out how to load external MIB files. For getif we dump the .mib file in <getif install dir>\Mibs folder. Now lets start up our MIB browser and connect to the SNMP device. This usually requires the IP or hostname of the device and the public community string. On the trango devices the public community is 'public'. Once connected we can browse our device using the newly loaded MIB file. The location is:

.iso.org.dod.internet.private.enterprises.trango.tbw.m5830sap

The OID is:

.1.3.6.1.4.1.5454.1.20

So we should be able to now browse to a location that should give us a value. Browse to:

.iso.org.dod.internet.private.enterprises.trango.tbw.m5830sap.apsystem.apsystemDeviceId

Then click 'Start'. It should return the MAC address of the AP. This will make a good input value since it is a static value that wont change. We also see that the OID for this address is:

.1.3.6.1.4.1.5454.1.20.1.2

So to create the XML for this we would do the following:

<apsystemDeviceId>
<name>MAC Address</name>
<method>walk</method>
<source>value</source>
<direction>input</direction>
<oid>.1.3.6.1.4.1.5454.1.20.1.2</oid>
</apsystemDeviceId>


An example of some data we would want to graph would look like this:

<aptrafficRfInOctets>
<name>Rf Octets Throughput Receive</name>
<method>walk</method>
<source>value</source>
<direction>output</direction>
<oid>.1.3.6.1.4.1.5454.1.20.1.15.7</oid>
</aptrafficRfInOctets>


This is to grab the current RfRx Octets (bits) per second. Notice the <direction> of both XML queries. If we browse to:

.iso.org.dod.internet.private.enterprises.trango.tbw.m5830sap.apsystem.aptraffic

In our MIB browser we can see that we can graph traffic in more other ways also. Current EthTx, Current EthRX, Current RFRx, Current RFTx, Average RFtx, and also Average RFRx. In my XML I am using the RfRx and RfTX. The Average ThroughPut Log doesn't seem to work well in Cacti since Cacti calculates it's own averages based on exact data. Calculating exact results and averages from data that has been averaged will not be correct. Here is an example finished XML file for graphing AP Traffic and Temperature:

<interface>
      <name>Get Trango 5830 AP Statistics</name>
      <oid_index>.1.3.6.1.4.1.5454.1.20.1</oid_index>
      <fields>
            <apsystemDeviceId>
                  <name>MAC Address</name>
                  <method>walk</method>
                  <source>value</source>
                  <direction>input</direction>
                  <oid>.1.3.6.1.4.1.5454.1.20.1.2</oid>
            </apsystemDeviceId>
            <apsystemBaseId>
                  <name>Base ID</name>
                  <method>walk</method>
                  <source>value</source>
                  <direction>input</direction>
                  <oid>.1.3.6.1.4.1.5454.1.20.1.3</oid>
            </apsystemBaseId>
            <apsystemAPId>
                  <name>AP ID</name>
                  <method>walk</method>
                  <source>value</source>
                  <direction>input</direction>
                  <oid>.1.3.6.1.4.1.5454.1.20.1.4</oid>
            </apsystemAPId>
            <apsystemTemperature>
                  <name>AP Temperature</name>
                  <method>walk</method>
                  <source>value</source>
                  <direction>output</direction>
                  <oid>.1.3.6.1.4.1.5454.1.20.1.16</oid>
            </apsystemTemperature>
            <aptrafficEthInOctets>
                        <name>Eth Octets Throughput Receive</name>
                        <method>walk</method>
                        <source>value</source>
                        <direction>output</direction>
                        <oid>.1.3.6.1.4.1.5454.1.20.1.15.5</oid>
            </aptrafficEthInOctets>
            <aptrafficEthOutOctets>
                        <name>Eth Octets Throughput Transmit</name>
                        <method>walk</method>
                        <source>value</source>
                        <direction>output</direction>
                        <oid>.1.3.6.1.4.1.5454.1.20.1.15.6</oid>
            </aptrafficEthOutOctets>
            <aptrafficRfInOctets>
                        <name>Rf Octets Throughput Receive</name>
                        <method>walk</method>
                        <source>value</source>
                        <direction>output</direction>
                        <oid>.1.3.6.1.4.1.5454.1.20.1.15.7</oid>
            </aptrafficRfInOctets>
            <aptrafficRfOutOctets>
                        <name>Rf Octets Throughput Transmit</name>
                        <method>walk</method>
                        <source>value</source>
                        <direction>output</direction>
                        <oid>.1.3.6.1.4.1.5454.1.20.1.15.8</oid>
            </aptrafficRfOutOctets>
      </fields>
</interface>


Here is an example finished XML for graphing SU's for that AP (temperature was added for use on older 5800 series SU's, it is no longer used on newer FOX units):

<interface>
      <name>Trango 5830 AP FOX/5800 SU Statistics</name>
      <oid_index>.1.3.6.1.4.1.5454.1.20.3.6.1.1</oid_index>
      <fields>
            <suID>
                  <name>SU ID</name>
                  <method>walk</method>
                  <source>value</source>
                  <direction>input</direction>
                  <oid>.1.3.6.1.4.1.5454.1.20.3.6.1.1</oid>
            </suID>
            <suMAC>
                  <name>MAC</name>
                  <method>walk</method>
                  <source>value</source>
                  <direction>input</direction>
                  <oid>.1.3.6.1.4.1.5454.1.20.3.6.1.2</oid>
            </suMAC>
            <suCIR>
                  <name>CIR</name>
                  <method>walk</method>
                  <source>value</source>
                  <direction>input</direction>
                  <oid>.1.3.6.1.4.1.5454.1.20.3.6.1.5</oid>
            </suCIR>
                  <suMIR>
                  <name>MIR</name>
                  <method>walk</method>
                  <source>value</source>
                  <direction>input</direction>
                  <oid>.1.3.6.1.4.1.5454.1.20.3.6.1.6</oid>
            </suMIR>
            <suIPAddr>
                  <name>IP</name>
                  <method>walk</method>
                  <source>value</source>
                  <direction>input</direction>
                  <oid>.1.3.6.1.4.1.5454.1.20.3.6.1.7</oid>
            </suIPAddr>
                  <suRemarks>
                  <name>Remarks</name>
                  <method>walk</method>
                  <source>value</source>
                  <direction>input</direction>
                  <oid>.1.3.6.1.4.1.5454.1.20.3.6.1.8</oid>
            </suRemarks>
            <suHWVer>
                  <name>HW Ver</name>
                  <method>walk</method>
                  <source>value</source>
                  <direction>input</direction>
                  <oid>.1.3.6.1.4.1.5454.1.20.3.6.1.9</oid>
            </suHWVer>
            <suFWVer>
                  <name>FW Ver</name>
                  <method>walk</method>
                  <source>value</source>
                  <direction>input</direction>
                  <oid>.1.3.6.1.4.1.5454.1.20.3.6.1.10</oid>
            </suFWVer>
            <suFPGAVer>
                  <name>FPGA Ver</name>
                  <method>walk</method>
                  <source>value</source>
                  <direction>input</direction>
                  <oid>.1.3.6.1.4.1.5454.1.20.3.6.1.11</oid>
            </suFPGAVer>
            <suChecksum>
                              <name>Checksum</name>
                              <method>walk</method>
                              <source>value</source>
                              <direction>input</direction>
                              <oid>.1.3.6.1.4.1.5454.1.20.3.6.1.12</oid>
            </suChecksum>
            <suDistance>
                              <name>Distance</name>
                              <method>walk</method>
                              <source>value</source>
                              <direction>input</direction>
                              <oid>.1.3.6.1.4.1.5454.1.20.3.6.1.14</oid>
            </suDistance>
            <suRSSIFromSU>
                              <name>RSSI from SU</name>
                              <method>walk</method>
                              <source>value</source>
                              <direction>output</direction>
                              <oid>.1.3.6.1.4.1.5454.1.20.3.6.1.15</oid>
            </suRSSIFromSU>
            <suRSSIFromAP>
                              <name>RSSI from AP</name>
                              <method>walk</method>
                              <source>value</source>
                              <direction>output</direction>
                              <oid>.1.3.6.1.4.1.5454.1.20.3.6.1.16</oid>
            </suRSSIFromAP>
            <suTxPower>
                              <name>TX Power</name>
                              <method>walk</method>
                              <source>value</source>
                              <direction>output</direction>
                              <oid>.1.3.6.1.4.1.5454.1.20.3.6.1.17</oid>
            </suTxPower>
            <suRfInOctets>
                              <name>RF IN octets</name>
                              <method>walk</method>
                              <source>value</source>
                              <direction>output</direction>
                              <oid>.1.3.6.1.4.1.5454.1.20.3.6.1.22</oid>
            </suRfInOctets>
            <suRfOutOctets>
                              <name>RF OUT octets</name>
                              <method>walk</method>
                              <source>value</source>
                              <direction>output</direction>
                              <oid>.1.3.6.1.4.1.5454.1.20.3.6.1.23</oid>
            </suRfOutOctets>
            <suTemperature>
                              <name>Temp</name>
                              <method>walk</method>
                              <source>value</source>
                              <direction>output</direction>
                              <oid>.1.3.6.1.4.1.5454.1.20.3.6.1.25</oid>
            </suTemperature>
      </fields>
</interface>


We should now have 2 files. A trango5830.xml and a trango5830_su.xml. These should both go in:

            <cacti home dir>/resource/snmp_queries/

This concludes the XML creation. Now we will explore loading these XML into cacti as data queries.




3. Creating Data Queries For Trango XML


Now lets login with the administrator account to your cacti setup. In the console, you should see a “Data Queries” link on the left menu. Click on it. Now we want to fill in the appropriate data. Give it a name, a description, and the location of the trango5830.xml. Also be sure to select “Get SNMP Data (Indexed)” from the dropdown menu.

Data Queries[new]
Name
A name for this data query.
               
Description
A description for this data query.
               
XML Path
The full path to the XML file containing definitions for this data query.
               
Data Input Method
Choose what type of host, host template this is. The host template will govern what kinds of data should be gathered from this type of host.
               

<insert data_queries_pic1.gif here> Then click create. If inserted correctly it should notify you that the XML was successfully loaded. Now lets set the correct options below.

Index Type
Index Value
Output Type ID


Be sure to set: Index Type to SNMP Field Name (Dropdown) and check the box. Index Value to SNMP Field Value (From User) and check the box. Output Type ID to SNMP Output Type (Dropdown) and check the box. The rest of the values can be left alone. We will later come back and add our graph templates to this data query. Be sure to click Save.

Now we will create the templates for the trango gear.

 First lets create the necessary Graph Templates. First we will create one for the traffic. The traffic template was created from the Interface - Traffic (bits/sec) and contains minor to no changes. Creating a new template specifically for the trango gear allows us to make changes to colors and data on the graph without changing other graphs.

 Here is what the finished graph template should look like: