Cisco SAN MDS9020 Switch Port statistics
Moderators: Developers, Moderators
- kwabbernoot
- Cacti User
- Posts: 99
- Joined: Mon Oct 13, 2003 4:11 am
- Location: Zottegem, Belgium
Cisco SAN MDS9020 Switch Port statistics
Hi,
I developped a Data Query that allows you to graph statistics on the Fiber Channel ports of a Cisco MDS9020 SAN Switch. The query interrogates the Fiber Alliance (http://www.fiberalliance.org) SNMP MIB v4.0
Remark: The result of the SNMP queries are sometimes in HEX format, therefor the script has a convert function attached. I noticed however that the HEX result can differ between systems. If your graphs remain empty please very the output of the script by executing it manually.
Currently the scripts detects HEX output has the following formats: "HEX-aa:bb:cc:dd:ee:ff:gg:hh:ii" or "aa:bb:cc:dd:ee:ff:gg:hh:ii"
The Data Query was created and tested in Cacti 0.8.6h.
It was exported from Cacti 0.8.6h, imported and currently used in my production Cacti 0.8.6h environment.
To use:
- Take a backup of your current Cacti DB (allows you to return if the import detroys your Cacti environment)
- Import the Data Query Export xml into your Cacti application
- Unzip/untar the attached .tar.gz file
- Place the xml file into "<path_cacti>/resource/script_queries"
- Place the script into "<path_cacti>/scripts"
Regards,
Kwabbernoot
I developped a Data Query that allows you to graph statistics on the Fiber Channel ports of a Cisco MDS9020 SAN Switch. The query interrogates the Fiber Alliance (http://www.fiberalliance.org) SNMP MIB v4.0
Remark: The result of the SNMP queries are sometimes in HEX format, therefor the script has a convert function attached. I noticed however that the HEX result can differ between systems. If your graphs remain empty please very the output of the script by executing it manually.
Currently the scripts detects HEX output has the following formats: "HEX-aa:bb:cc:dd:ee:ff:gg:hh:ii" or "aa:bb:cc:dd:ee:ff:gg:hh:ii"
The Data Query was created and tested in Cacti 0.8.6h.
It was exported from Cacti 0.8.6h, imported and currently used in my production Cacti 0.8.6h environment.
To use:
- Take a backup of your current Cacti DB (allows you to return if the import detroys your Cacti environment)
- Import the Data Query Export xml into your Cacti application
- Unzip/untar the attached .tar.gz file
- Place the xml file into "<path_cacti>/resource/script_queries"
- Place the script into "<path_cacti>/scripts"
Regards,
Kwabbernoot
- Attachments
-
- cacti_data_query_san_switch_port_statistics.xml
- Data Query Export/Import information
- (100.1 KiB) Downloaded 4455 times
-
- san_port_info.tar.gz
- Contains both the script and script_query xml information file
- (1.95 KiB) Downloaded 3603 times
-
- Example graphs
- Overview.jpg (116.68 KiB) Viewed 50174 times
-
- Posts: 1
- Joined: Tue Dec 12, 2006 5:21 pm
trouble with template
I am using the same version (0.8.6h) of cacti, and I have been attempting to use this template to monitor ports on a Cisco MDS9020. when i attatch the template to the device it will not give me the option of selecting any ports as on other switches with SNMP-interfaces.
How do you properly set up the template to allow the ports to actually be monitored?
How do you properly set up the template to allow the ports to actually be monitored?
- kwabbernoot
- Cacti User
- Posts: 99
- Joined: Mon Oct 13, 2003 4:11 am
- Location: Zottegem, Belgium
Implement script
Sorry for the late reply, but it has been some time since I checked the Cacti forum. If you have a specific question you can always send a private message. The system sends me a mail and I always verify them.
The implementation of the script is explained in the original post.
I could remark however to test the script from command line and if possible interrogate the SAN switch manually using snmpget or another snmp query/walk software.
Like I mention on the script
The snmp oids differ per switch and this does not facilitate debugging, check if the oids on your device do not differ earlier in the oid value.
If you manually modified the script/xml file to support your needs double check the syntax. When developing the script I had strange results/anomalies that were due to a typo error within the xml file. The result was that my script worked fine in command line, but failed to work within Cacti.
The implementation of the script is explained in the original post.
I could remark however to test the script from command line and if possible interrogate the SAN switch manually using snmpget or another snmp query/walk software.
Like I mention on the script
Code: Select all
// Its a pain in the ass, but the fiber Channel SNMP OIDS have a small difference on each device.
// Only an SNMP walk can find the correct oid and the correct value
If you manually modified the script/xml file to support your needs double check the syntax. When developing the script I had strange results/anomalies that were due to a typo error within the xml file. The result was that my script worked fine in command line, but failed to work within Cacti.
Regards,
Kwabbernoot
OS : [b]Slackware 10.2.0[/b]
Cacti : [b]0.8.6j[/b]
Cactid : [b]0.8.6j[/b]
Apache : [b]1.3.34[/b]
PHP : [b]5.1.4[/b]
MySQL : [b]4.1.21[/b]
RRDTool : [b]1.2.12[/b]
Net-SNMP : [b]5.3.0[/b]
Kwabbernoot
OS : [b]Slackware 10.2.0[/b]
Cacti : [b]0.8.6j[/b]
Cactid : [b]0.8.6j[/b]
Apache : [b]1.3.34[/b]
PHP : [b]5.1.4[/b]
MySQL : [b]4.1.21[/b]
RRDTool : [b]1.2.12[/b]
Net-SNMP : [b]5.3.0[/b]
Error in script
Has anybody seen this before?
Thanks,
John
I got this after I added my IBM SAN24M1 (McData Sphereon 4500) device. Then I added the data query to the device (san_port.xml). Following the 'create graphs' link I saw all of my FCSwitch ports and their descriptions. I selected about 10/12 ports to graph and saw the above error after I pressed the 'create graphs' button.Notice: Undefined index: sgg_13 in /var/www/cacti/graphs_new.php on line 71
Warning: Cannot modify header information - headers already sent by (output started at /var/www/cacti/graphs_new.php:71) in /var/www/cacti/graphs_new.php on line 322
Thanks,
John
Sorry, I haven't seen anything like that, but I just wanted to say that I was able to get this working after a bit of a struggle. The heart of the problem that I had was that the php script seems not to work if the snmp version isn't set to 1. We monitor almost all our equipment with v2c, but when the script was run manually, I'd get undefined offset errors, however when I ran it with with version 1 at the command line, everything worked. I changed this under the device within cacti and re-added the script to the device. Lo and behold it populated the correct number of ports. I was also getting 'U' as an output for a while until I realized that I had left a few lines of output from the code up so that I could troubleshoot, once I took them out, the cacti log showed that the script was getting numbered results. AFter that, it was just a matter of deleting the rrd files for the device and letting the poller recreate them. The graphs populated and everything is working great now.
I guess the main point of my ramblings is that you have to use SNMP v 1, at least that's what I learned.
I guess the main point of my ramblings is that you have to use SNMP v 1, at least that's what I learned.
Problem with importing XML template
When i try to import the XML template i get always the same error:
Error: XML: Hash version does not exist.
What i can do?
Error: XML: Hash version does not exist.
What i can do?
Script does not work on clean install of cacti-0.8.7b
I tried building this on the latest cacti release as of today. snmpwalk works fine from the command line, but not from cmd.php.
Downgraded to cacti-0.8.6j and all worked okay. Not sure what is causing it.
Any tips on troubleshooting this?
Thanks in advance.
Downgraded to cacti-0.8.6j and all worked okay. Not sure what is causing it.
Any tips on troubleshooting this?
Thanks in advance.
- carlosruiz
- Posts: 2
- Joined: Tue Jun 17, 2008 11:48 pm
this is what i get when i try running the first script from the command line. any ideas??
[UTWMAD0P0698] C:\>E:\php\php.exe -q E:\cacti\scripts\query_mds9020_san_portinfo.php 10.68.1.14 public 1 query index
PHP Notice: Undefined variable: config in E:\cacti\lib\snmp.php on line 33
PHP Warning: Missing argument 7 for cacti_snmp_walk(), called in E:\cacti\scripts\query_mds9020_san_portinfo.php on lin
e 47 and defined in E:\cacti\lib\snmp.php on line 225
PHP Warning: Missing argument 8 for cacti_snmp_walk(), called in E:\cacti\scripts\query_mds9020_san_portinfo.php on lin
e 47 and defined in E:\cacti\lib\snmp.php on line 225
PHP Warning: Missing argument 9 for cacti_snmp_walk(), called in E:\cacti\scripts\query_mds9020_san_portinfo.php on lin
e 47 and defined in E:\cacti\lib\snmp.php on line 225
PHP Warning: Missing argument 10 for cacti_snmp_walk(), called in E:\cacti\scripts\query_mds9020_san_portinfo.php on li
ne 47 and defined in E:\cacti\lib\snmp.php on line 225
PHP Notice: Use of undefined constant SNMP_POLLER - assumed 'SNMP_POLLER' in E:\cacti\lib\snmp.php on line 225
PHP Fatal error: Call to undefined function read_config_option() in E:\cacti\lib\snmp.php on line 234
[UTWMAD0P0698] C:\>E:\php\php.exe -q E:\cacti\scripts\query_mds9020_san_portinfo.php 10.68.1.14 public 1 query index
PHP Notice: Undefined variable: config in E:\cacti\lib\snmp.php on line 33
PHP Warning: Missing argument 7 for cacti_snmp_walk(), called in E:\cacti\scripts\query_mds9020_san_portinfo.php on lin
e 47 and defined in E:\cacti\lib\snmp.php on line 225
PHP Warning: Missing argument 8 for cacti_snmp_walk(), called in E:\cacti\scripts\query_mds9020_san_portinfo.php on lin
e 47 and defined in E:\cacti\lib\snmp.php on line 225
PHP Warning: Missing argument 9 for cacti_snmp_walk(), called in E:\cacti\scripts\query_mds9020_san_portinfo.php on lin
e 47 and defined in E:\cacti\lib\snmp.php on line 225
PHP Warning: Missing argument 10 for cacti_snmp_walk(), called in E:\cacti\scripts\query_mds9020_san_portinfo.php on li
ne 47 and defined in E:\cacti\lib\snmp.php on line 225
PHP Notice: Use of undefined constant SNMP_POLLER - assumed 'SNMP_POLLER' in E:\cacti\lib\snmp.php on line 225
PHP Fatal error: Call to undefined function read_config_option() in E:\cacti\lib\snmp.php on line 234
Have a problem too on a MCDATA4500 fiber switch:
[root@cacti log]# /usr/bin/php -q /opt/cacti/scripts/query_mds9020_san_portinfo.php <IPofSwitch> <rightcomunity> index
PHP Notice: Undefined variable: config in /opt/cacti/lib/snmp.php on line 33
PHP Warning: Missing argument 7 for cacti_snmp_walk(), called in /opt/cacti/scripts/query_mds9020_san_portinfo.php on line 38 and defined in /opt/cacti/lib/snmp.php on line 225
PHP Warning: Missing argument 8 for cacti_snmp_walk(), called in /opt/cacti/scripts/query_mds9020_san_portinfo.php on line 38 and defined in /opt/cacti/lib/snmp.php on line 225
PHP Warning: Missing argument 9 for cacti_snmp_walk(), called in /opt/cacti/scripts/query_mds9020_san_portinfo.php on line 38 and defined in /opt/cacti/lib/snmp.php on line 225
PHP Warning: Missing argument 10 for cacti_snmp_walk(), called in /opt/cacti/scripts/query_mds9020_san_portinfo.php on line 38 and defined in /opt/cacti/lib/snmp.php on line 225
PHP Notice: Use of undefined constant SNMP_POLLER - assumed 'SNMP_POLLER' in /opt/cacti/lib/snmp.php on line 225
PHP Fatal error: Call to undefined function read_config_option() in /opt/cacti/lib/snmp.php on line 233
[root@cacti log]# /usr/bin/php -q /opt/cacti/scripts/query_mds9020_san_portinfo.php <IPofSwitch> <rightcomunity> index
PHP Notice: Undefined variable: config in /opt/cacti/lib/snmp.php on line 33
PHP Warning: Missing argument 7 for cacti_snmp_walk(), called in /opt/cacti/scripts/query_mds9020_san_portinfo.php on line 38 and defined in /opt/cacti/lib/snmp.php on line 225
PHP Warning: Missing argument 8 for cacti_snmp_walk(), called in /opt/cacti/scripts/query_mds9020_san_portinfo.php on line 38 and defined in /opt/cacti/lib/snmp.php on line 225
PHP Warning: Missing argument 9 for cacti_snmp_walk(), called in /opt/cacti/scripts/query_mds9020_san_portinfo.php on line 38 and defined in /opt/cacti/lib/snmp.php on line 225
PHP Warning: Missing argument 10 for cacti_snmp_walk(), called in /opt/cacti/scripts/query_mds9020_san_portinfo.php on line 38 and defined in /opt/cacti/lib/snmp.php on line 225
PHP Notice: Use of undefined constant SNMP_POLLER - assumed 'SNMP_POLLER' in /opt/cacti/lib/snmp.php on line 225
PHP Fatal error: Call to undefined function read_config_option() in /opt/cacti/lib/snmp.php on line 233
Possible fix
I also got these errors on 8.7b until I made some changes to query_mds9020_san_portinfo.php
Namely, include functions.php and global.php. I also added blank parameters the snmp walk function call to eliminate those warnings.
Namely, include functions.php and global.php. I also added blank parameters the snmp walk function call to eliminate those warnings.
- Attachments
-
- query_mds9020_san_portinfo.php.gz
- (1.25 KiB) Downloaded 1290 times
Sorry for delay in answer, but still doesn't work
In details:
Cacti Version 0.8.7d - PA 2.4
Switch details:
[root@cacti ~ ]# snmpwalk -Of -c tux -v 1 -t 2 switch-IP system
.iso.org.dod.internet.mgmt.mib-2.system.sysDescr.0 = STRING: EMC DS-24M2 Model 001 Fibre Channel Switch, firmware 09.00.00 76
.iso.org.dod.internet.mgmt.mib-2.system.sysObjectID.0 = OID: .iso.org.dod.internet.private.enterprises.289.2.1.1.2
.iso.org.dod.internet.mgmt.mib-2.system.sysUpTime.sysUpTimeInstance = Timeticks: (3985857604) 461 days, 7:49:36.04
.iso.org.dod.internet.mgmt.mib-2.system.sysContact.0 = STRING: ME
.iso.org.dod.internet.mgmt.mib-2.system.sysName.0 = STRING: switch_b
.iso.org.dod.internet.mgmt.mib-2.system.sysLocation.0 = STRING: Datacenter
.iso.org.dod.internet.mgmt.mib-2.system.sysServices.0 = INTEGER: 2
Executing manually:
[root@cacti ~]# /usr/bin/php -q /opt/cacti/scripts/query_mds9020_san_portinfo.php <switch-IP> <comunity> 1 index
PHP Notice: Undefined variable: config in /opt/cacti/lib/snmp.php on line 33
PHP Warning: Missing argument 7 for cacti_snmp_walk(), called in /opt/cacti/scripts/query_mds9020_san_portinfo.php on line 38 and defined in /opt/cacti/lib/snmp.php on line 225
PHP Warning: Missing argument 8 for cacti_snmp_walk(), called in /opt/cacti/scripts/query_mds9020_san_portinfo.php on line 38 and defined in /opt/cacti/lib/snmp.php on line 225
PHP Warning: Missing argument 9 for cacti_snmp_walk(), called in /opt/cacti/scripts/query_mds9020_san_portinfo.php on line 38 and defined in /opt/cacti/lib/snmp.php on line 225
PHP Warning: Missing argument 10 for cacti_snmp_walk(), called in /opt/cacti/scripts/query_mds9020_san_portinfo.php on line 38 and defined in /opt/cacti/lib/snmp.php on line 225
PHP Notice: Use of undefined constant SNMP_POLLER - assumed 'SNMP_POLLER' in /opt/cacti/lib/snmp.php on line 225
PHP Fatal error: Call to undefined function read_config_option() in /opt/cacti/lib/snmp.php on line 235
Any ideas?
Thank's a lot!!!
Simon
In details:
Cacti Version 0.8.7d - PA 2.4
Switch details:
[root@cacti ~ ]# snmpwalk -Of -c tux -v 1 -t 2 switch-IP system
.iso.org.dod.internet.mgmt.mib-2.system.sysDescr.0 = STRING: EMC DS-24M2 Model 001 Fibre Channel Switch, firmware 09.00.00 76
.iso.org.dod.internet.mgmt.mib-2.system.sysObjectID.0 = OID: .iso.org.dod.internet.private.enterprises.289.2.1.1.2
.iso.org.dod.internet.mgmt.mib-2.system.sysUpTime.sysUpTimeInstance = Timeticks: (3985857604) 461 days, 7:49:36.04
.iso.org.dod.internet.mgmt.mib-2.system.sysContact.0 = STRING: ME
.iso.org.dod.internet.mgmt.mib-2.system.sysName.0 = STRING: switch_b
.iso.org.dod.internet.mgmt.mib-2.system.sysLocation.0 = STRING: Datacenter
.iso.org.dod.internet.mgmt.mib-2.system.sysServices.0 = INTEGER: 2
Executing manually:
[root@cacti ~]# /usr/bin/php -q /opt/cacti/scripts/query_mds9020_san_portinfo.php <switch-IP> <comunity> 1 index
PHP Notice: Undefined variable: config in /opt/cacti/lib/snmp.php on line 33
PHP Warning: Missing argument 7 for cacti_snmp_walk(), called in /opt/cacti/scripts/query_mds9020_san_portinfo.php on line 38 and defined in /opt/cacti/lib/snmp.php on line 225
PHP Warning: Missing argument 8 for cacti_snmp_walk(), called in /opt/cacti/scripts/query_mds9020_san_portinfo.php on line 38 and defined in /opt/cacti/lib/snmp.php on line 225
PHP Warning: Missing argument 9 for cacti_snmp_walk(), called in /opt/cacti/scripts/query_mds9020_san_portinfo.php on line 38 and defined in /opt/cacti/lib/snmp.php on line 225
PHP Warning: Missing argument 10 for cacti_snmp_walk(), called in /opt/cacti/scripts/query_mds9020_san_portinfo.php on line 38 and defined in /opt/cacti/lib/snmp.php on line 225
PHP Notice: Use of undefined constant SNMP_POLLER - assumed 'SNMP_POLLER' in /opt/cacti/lib/snmp.php on line 225
PHP Fatal error: Call to undefined function read_config_option() in /opt/cacti/lib/snmp.php on line 235
Any ideas?
Thank's a lot!!!
Simon
Re: Error in script
Hi John,
You wrote:
Did you find a way to fix this? I am having the same problem with an SNMP xml template I've built (sgg_13). The verbose query preview shows everything looking just perfect, but I get the error.
Thanks,
Scott
You wrote:
johncall wrote:Has anybody seen this before?
I got this after I added my IBM SAN24M1 (McData Sphereon 4500) device. Then I added the data query to the device (san_port.xml). Following the 'create graphs' link I saw all of my FCSwitch ports and their descriptions. I selected about 10/12 ports to graph and saw the above error after I pressed the 'create graphs' button.Notice: Undefined index: sgg_13 in /var/www/cacti/graphs_new.php on line 71
Warning: Cannot modify header information - headers already sent by (output started at /var/www/cacti/graphs_new.php:71) in /var/www/cacti/graphs_new.php on line 322
Thanks,
John
Did you find a way to fix this? I am having the same problem with an SNMP xml template I've built (sgg_13). The verbose query preview shows everything looking just perfect, but I get the error.
Thanks,
Scott
Who is online
Users browsing this forum: No registered users and 6 guests