HOWTO: Graphing BreezeNet B300 (InfiLINK2x2) & BreezeMAX

If you figure out how to do something interesting/cool in Cacti and want to share it with the community, please post your experience here.

Moderators: Developers, Moderators

Post Reply
hacktivism
Posts: 6
Joined: Sun Aug 15, 2010 9:57 am
Location: Luanda

HOWTO: Graphing BreezeNet B300 (InfiLINK2x2) & BreezeMAX

Post by hacktivism »

The aim of this HOWTO it's to make one able of developing his/her own device's templates (specifically talking about Alvarion BreezeNet B300 (infiLINK 2x2) and BreezeMAX FDD "uBST") and save some google search time....

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
1.1. Getting to know the uploaded files and make them useful

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 ~]$ 
As We can see above, all MIB files ends with both a .my and .mib file extension, therefore they should be re-named to follow the convention (MIB_NAME).txt for clarity.

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
Meaning that the file should be renamed to "ALVARION-MIB.txt" and copied to the Net-SNMP mibs directory.

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
We must repeat the above code to all MIB files

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
Let's now copy the MIB files to the default mib directory (We need root privileges to Write to that directory)

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/
We now have all the required components to query the devices and gather
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.
Now that We have detailed information on the command options, We can do our first walk with confidence that the required information will show up

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 ~]$
Gathering Information from the BreezeMAX:

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
What we have found it's some human readable information due the "-Os" command option, now we need the numerical "-On command option" equivalent of this OIDs to let cacti know.

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
Here's the fully detailed explanation for both the first data port and wireless OIDs respectively . The same command applies to all other OIDs

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 ~]$
NOW!!!! We are going to work solely in 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:
Image
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:
Image

Recalling what We have decided to graph and/or monitor, We will end-up with a data templates like the following:
Image

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.
Attachments
cacti_graph_template_breezemax_data_portau-odu_traffic.xml
(30.81 KiB) Downloaded 563 times
cacti_graph_template_breezemax_data_portau-odu_txrx_errors.xml
(29.62 KiB) Downloaded 528 times
bmax-data-templates-final.png
bmax-data-templates-final.png (45.41 KiB) Viewed 6326 times
data-template-2.png
data-template-2.png (52.6 KiB) Viewed 6332 times
data-templates-1.png
data-templates-1.png (32.26 KiB) Viewed 6338 times
HarryKalahan
Posts: 1
Joined: Wed May 20, 2015 2:29 am

Re: HOWTO: Graphing BreezeNet B300 (InfiLINK2x2) & BreezeMAX

Post by HarryKalahan »

Hello hacktivism,

We are looking for Alvarion MIBS you've wrote, but I can't find them.

Could I have them, please? We need them to monitor a WIMAX network.

I only could get ALVARION-DOT11-WLAN-MIB.mib, but it doesn't translate the OIDs and you can't get values either (no such error).

The Alvarion vendor tell us our product is end of support. Our exact version is: Alvarion BreezeNET B300, WANFlex 1.02.10

Any help would be appreciated. Thanks in advanced.

Best regards!
Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests