Assumptions for the Server running cacti:
FreeBSD 7.2
lighttp 1.4.22 (ssl)
mysql 5.1.33
php 5.2.9 with Suhosin-Patch 0.9.7
cacti 0.8.7g
For some reason Alvarion includes BreezeNet B300 MIBs in the accompaning CD, which saves us some google time.
1. Uploading the files to the server
Code: Select all
me@localhost:~$scp /MIBs/Alvarion/B300/ALVARION-* me@<cacti_server_ip_address>:/home/me
me@localhost:~$scp /MIBs/Alvarion/BMAX/RAINBOW-* me@<cacti_server_ip_address>:/home/me
Code: Select all
[me@cacti ~]$ ls -lta | grep "ALVARION\|RAINBOW"
-rwxr-xr-x 1 me me 641 Aug 13 16:19 ALVARION-MIB.my
-rwxr-xr-x 1 me me 17424 Aug 13 16:19 ALVARION-MINT-MIB.my
-rwxr-xr-x 1 me me 4267 Aug 13 16:19 ALVARION-QM-MIB.my
-rwxr-xr-x 1 me me 24531 Aug 13 16:19 ALVARION-RADIO-MIB.my
-rwxr-xr-x 1 me me 6081 Aug 13 16:19 ALVARION-SYSLOG-MIB.my
-rwxr-xr-x 1 me me 3355 Aug 13 16:19 ALVARION-SYSTEM-MIB.my
-rwxr-xr-x 1 me me 65712 Aug 12 22:46 RAINBOW-SERVICES-MIB.mib
-rwxr-xr-x 1 me me 24999 Aug 12 22:46 RAINBOW-MICROBST-MIB.mib
-rwxr-xr-x 1 me me 188455 Aug 12 22:46 RAINBOW-MIB.mib
-rwxr-xr-x 1 me me 59323 Aug 12 22:45 RAINBOW-PERFORMANCE-MIB.mib
[me@cacti ~]$
We can find the MIBs proper name on the first uncommented line of the MIB file e.g:
Code: Select all
[me@cacti ~]$ more ALVARION-MIB.my | grep BEGIN
ALVARION-MIB DEFINITIONS ::= BEGIN
Luckily We have all files named correctly and all We have to do It's to change the file extension to .txt (in this case).
Code: Select all
[me@cacti ~]$ mv ALVARION-MIB.my ALVARION-MIB.txt
By following this convention, it assures greater clarity when utilizing the various MIBs and a consistency with all other installed MIBs.
Question: Where's the mibs directory?!!!
Code: Select all
[me@cacti ~]$ net-snmp-config --default-mibdirs
/home/me/.snmp/mibs:/usr/local/share/snmp/mibs
Code: Select all
[root@cacti /home/me]# cp ALVARION-* /usr/local/share/snmp/mibs/
[root@cacti /home/me]# cp RAINBOW-* /usr/local/share/snmp/mibs/
information to graph.
QUESTION: What to graph in both the B300 backhaul link radio devices and Micro Basestations FDD???!!
#BreezeMAX
Interface Statistics (Data Port & AU-ODU):
- Data Port Total Bytes Received
- Data Port Total Bytes Transmitted
- Data Port Data Bytes Discarded Rx/Tx
- Wireless Bytes Received
- Wireless Bytes Trasmitted
- Wireless Data Bytes Discarded Rx/Tx
That's all (basic) We need for now, some more statistics can be added as required
#B300
Interface Statistics:
- Rx Packets (eth0, rf5.0)
- Rx Errors (eth0, rf5.0)
- Tx Packets (eth0, rf5.0)
- Tx Errors (eth0, rf5.0)
Wireless Links Statistics on Interface rf5.0:
- Transmit Power (dBm) Rx/Tx
- Control Level (dB) Rx/Tx
- Current Level (dB) Rx/Tx
- Bitrate Rx/Tx
- Retries (%) Rx/Tx
- Errors (%) Rx/Tx
- Load (kbps) Rx/Tx
- Load (pps) Rx/Tx
Using the CLI we are going to preform some walks and gets to probe the device and hone in on the data we want.
I summarize here some command options necessary for us to get to the point. For a complete list see snmpcmd (1) man page.
Code: Select all
[me@cacti ~]$ man snmpcmd
/MIB object name
-Os Display the MIB object name (plus any instance or other
subidentifiers):
sysUpTime.0 = Timeticks: (14096763) 1 day, 15:09:27.63
/OID numerically
-On Displays the OID numerically:
.1.3.6.1.2.1.1.3.0 = Timeticks: (14096763) 1 day, 15:09:27.63
/list of MIB modules
-m MIBLIST
Specifies a colon separated list of MIB modules (not files) to load
for this application. This overrides (or augments) the environment
variable MIBS, the snmp.conf directiv mibs, and the list of MIBs hardcoded into the Net-SNMP library.
/version
-v 1 | 2c | 3
Specifies the protocol version to use: 1 (RFCs 1155-1157), 2c (RFCs
1901-1908), or 3 (RFCs 2571-2574). The default is typically version
3. Overrides the defVersion token in the snmp.conf file.
/community sring
-c community
Set the community string for SNMPv1/v2c transactions. Overrides the defCommunity token in the snmp.conf file.
Rmks: The MIB modules to load for this application (OID provided at the end of the snmwalk command "alvarion") It's gathered from the "MODULE-IDENTITY" section in the MIB file.
Code: Select all
[me@cacti ~]$ more /usr/local/share/snmp/mibs/ALVARION-MIB.txt | grep MODULE-IDENTITY
MODULE-IDENTITY
alvarion MODULE-IDENTITY
[me@cacti ~]$
Code: Select all
[me@cacti ~]$ touch walking-10253127-4.log
[me@cacti ~]$ snmpwalk -m ALL -Os -c public -v 1 10.253.1.27 alvarion > walking-10253127-3.log
[me@cacti ~]$ less walking-10253127-4.log
:: OUTPUT SUPRESSED
rbMBSTDataPortTotalBytesRx.1 = Counter32: 7341687
rbMBSTDataPortDataBytesRx.1 = Counter32: 1192686
rbMBSTDataPortDataBytesDiscardedOnRx.1 = Counter32: 1192686
rbMBSTDataPortTotalBytesTx.1 = Counter32: 4731449
rbMBSTDataPortDataBytesTx.1 = Counter32: 24
rbMBSTDataPortDataBytesDiscardedOnTx.1 = Counter32: 0
:: OUTPUT SUPRESSED
rbAUWirelessDataBytesRx.1 = Counter32: 0
rbAUWirelessDataBytesDiscardedOnRx.1 = Counter32: 0
rbAUWirelessDataBytesTx.1 = Counter32: 0
rbAUWirelessDataBytesDiscardedOnTx.1 = Counter32: 327
rbAUWirelessARQEnabledBytesTx.1 = Counter32: 0
rbAUWirelessRTxBytes.1 = Counter32: 0
Code: Select all
[me@cacti ~]$ touch walking-10253127-5.log
[me@cacti ~]$ snmpwalk -m ALL -On -c public -v 1 10.253.1.27 alvarion > walking-10253127-5.log
.1.3.6.1.4.1.12394.1.2.4.7.2.1.1.3.1 = Counter32: 9531198
.1.3.6.1.4.1.12394.1.2.4.7.2.1.1.4.1 = Counter32: 1218854
.1.3.6.1.4.1.12394.1.2.4.7.2.1.1.5.1 = Counter32: 1218854
.1.3.6.1.4.1.12394.1.2.4.7.2.1.1.6.1 = Counter32: 6962655
.1.3.6.1.4.1.12394.1.2.4.7.2.1.1.7.1 = Counter32: 24
.1.3.6.1.4.1.12394.1.2.4.7.2.1.1.8.1 = Counter32: 0
:: OUTPUT SUPRESSED
.1.3.6.1.4.1.12394.1.2.4.7.31.1.1.2.1 = Counter32: 0
.1.3.6.1.4.1.12394.1.2.4.7.31.1.1.3.1 = Counter32: 0
.1.3.6.1.4.1.12394.1.2.4.7.31.1.1.4.1 = Counter32: 0
.1.3.6.1.4.1.12394.1.2.4.7.31.1.1.5.1 = Counter32: 327
.1.3.6.1.4.1.12394.1.2.4.7.31.1.1.6.1 = Counter32: 0
.1.3.6.1.4.1.12394.1.2.4.7.31.1.1.7.1 = Counter32: 0
Code: Select all
[me@cacti ~]$ snmptranslate -m ALL -Td .1.3.6.1.4.1.12394.1.2.4.7.2.1.1.3.1
RAINBOW-PERFORMANCE-MIB::rbMBSTDataPortTotalBytesRx.1
rbMBSTDataPortTotalBytesRx OBJECT-TYPE
-- FROM RAINBOW-PERFORMANCE-MIB
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "The total number of bytes received from the Data port, including Management frames.
Frames with errors are not included."
::= { iso(1) org(3) dod(6) internet(1) private(4) enterprises(1) alvarion(12394) products(1) rainbow(2) rbPerformance(4) rbPMIfCounters(7) rbMBSTDataPortCounters(2) rbMBSTDataPortCountersTable(1) rbMBSTDataPortCountersEntry(1) rbMBSTDataPortTotalBytesRx(3) 1 }
[me@cacti ~]$ snmptranslate -m ALL -Td .1.3.6.1.4.1.12394.1.2.4.7.31.1.1.2.1
RAINBOW-PERFORMANCE-MIB::rbAUWirelessDataBytesRx.1
rbAUWirelessDataBytesRx OBJECT-TYPE
-- FROM RAINBOW-PERFORMANCE-MIB
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION "The total number of data bytes received on the Wireless port,
excluding MAC management frames and errors."
::= { iso(1) org(3) dod(6) internet(1) private(4) enterprises(1) alvarion(12394) products(1) rainbow(2) rbPerformance(4) rbPMIfCounters(7) rbAUWirelessCounters(31) rbAUWirelessCountersTable(1) rbAUWirelessCountersEntry(1) rbAUWirelessDataBytesRx(2) 1 }
[me@cacti ~]$
Let's start by creating some data templates for both BreezeMAX and BreezeNet B300.
On the console tab We click on the "Data Templates" under the "Templates" heading and in the page that come up, We click in the "Add" link on the top right corner and fill-up in the fields (the field sections are self explanatory).
In the field Name, you can type whatever you want, but It's always a good idea to type something that makes sense to you and to the other people adding devices and/or managing the network (something easy to understand).
e.g:
The "Data Input Method" default value is "None", and We are required to change it to the option "Get SNMP Data" and for the remaining field options from the "Data Source" section, It's fine to leave them with the default values.
Below the "Data Source" section on the "Data Source Item", We fill in the "Internal Data Source Name" also with something that makes sense e.g for the BreezeMAX AU Wireless Discarded Bytes on Rx, We can name it like: bmax_au_discard_rx, in the fields Minimum and Maximum Value We fill it in with appropriate values and We change the default value of "GAUGE" in the "Data Source Type" field section to "COUNTER". It's OK to leave the "Heartbeat" field section with default value and We hit the "Create" button.
Soon after We hit the "Create" button We are provided with another section "Custom Data [data input: Get SNMP Data]" with some more fields to fill in the blanks as being the "OID" field the more important (for now We can leave all other fields as default "blank")
We are going to fill in the "OID" field with the information We collected by running snmpwalk.
e.g:
Recalling what We have decided to graph and/or monitor, We will end-up with a data templates like the following:
After all this exercise, We have to create the Graph Templates and add the "Data Templates" to it.
To get there We click on the "Graph Templates" under the "Templates" heading and a list of the already available graph templates will be shown.
Click on the "Add" link in the top right corner and a page with some
sections with with fields that you require to fill in the blanks will come up. In the field "Name" under the "Template" section, fill it up with a name easy to read and/or understand that makes sense to everyone managing the network.
It's always good to design your Graph templates structure and/or organization prior to create them. I ended-up with two graph templates for the BreezeMAX micro basestations like the following:
[Graph Template #1]
BreezeMAX Data Port/AU-ODU Traffic
[Associated Graphs]
1 - Data Port Total Bytes Received
2 - Data Port Total Bytes Transmitted
3 - Wireless Bytes Received
4 - Wireless Bytes Trasmitted
[Graph Template #2]
BreezeMAX Data Port/AU-ODU Tx/Rx Errors
[Associated Graphs]
1 - Data Port Data Bytes Discarded Rx/Tx
2 - Wireless Data Bytes Discarded Rx/Tx
As soon as We finish creating our "Graph Templates" We create a "Host Templates" and associate a "Graph Templates" to it. That's a very straight forward task and details are not really required here.
Finally We are going to add all our device and apply the necessary templates to each device.