|
From: <Hol...@f-...> - 2004-05-06 07:54:08
|
Hello,
we had a similar problem with brocade switches.=20
Our solution looks like that.
Defaults file:
Target --default--
...
aaaa =3D "{
require '/opt/cricket/lib/KtExtBrocade.pm';
}"
connUnitPortStatIndex =3D '.1.3.6.1.3.94.4.5.1.2'
connUnitPortStatCountError =3D '.1.3.6.1.3.94.4.5.1.3'
connUnitPortStatCountTxObjects =3D '.1.3.6.1.3.94.4.5.1.4'
connUnitPortStatCountRxObjects =3D '.1.3.6.1.3.94.4.5.1.5'
connUnitPortStatCountTxElements =3D '.1.3.6.1.3.94.4.5.1.6'
connUnitPortStatCountRxElements =3D '.1.3.6.1.3.94.4.5.1.7'
connUnitPortStatCountFBSYFrames =3D '.1.3.6.1.3.94.4.5.1.10'
connUnitPortStatCountPBSYFrames =3D '.1.3.6.1.3.94.4.5.1.11'
connUnitPortStatCountLinkFailures =3D '.1.3.6.1.3.94.4.5.1.39'
connUnitPortStatCountInvalidCRC =3D '.1.3.6.1.3.94.4.5.1.40'
connUnitPortStatCountLossofSignal =3D '.1.3.6.1.3.94.4.5.1.43'
...
dataSource connUnitPortStatCountTxObjects
ds-source =3D "func:KtExtBrocade::GetPortStatCount(qw#%snmp%
%rrd-datafile%=20
%connUnitPortStatIndex% =
%connUnitPortStatCountTxObjects%
%inst%#)"
########################################################################=
####
####################
#
# perl modules
#
package KtExtBrocade;
use lib "/opt/cricket/lib";
use KtExtUtils qw(MapInstance);
sub GetPortStatCount {
use Math::BigInt;
my($Snmp, $RrdFile, $MapOid, $DataOid, $InstName) =3D @_;
my $Inst =3D MapInstance($Snmp, $InstName, $MapOid, $RrdFile);
if ($Inst) {
# Die Daten holen
my $OID =3D $DataOid . '.' . $Inst;
($Count) =3D snmpUtils::get($Snmp,$OID);
if (length($Count) =3D=3D 8) {
my $Result =3D Math::BigInt->new('0');
foreach my $Byte ( unpack("C*",$Count)) {
$Result *=3D 256 ;
$Result +=3D $Byte;
}
return $Result;
}
}
return('U');
}
package KtExtUtils;
use Exporter;
@ISA =3D qw(Exporter);
@EXPORT_OK =3D qw(MapInstance);
sub MapInstance {
my($Snmp) =3D $_[0];
my($InstName) =3D $_[1];
my($BaseOid) =3D $_[2];
my($MetaFile) =3D $_[3];
my ($ROW,$INDEX,$FileExt,@NAME);
local *META;
my $MetaIndex =3D '';
if (defined $MetaFile) {
$FileExt =3D "$InstName.meta";
$FileExt =3D~ s#/#_#g;
$MetaFile =3D~ s/\.rrd$/-$FileExt/;
if (-s $MetaFile) {
open(META, "< $MetaFile") || die "Can't open $MetaFile for =
reading
$!\n";
$MetaIndex =3D <META>;
close(META);
$MetaIndex =3D~ s/last-inst//;
@NAME =3D snmpUtils::get($Snmp, "$BaseOid.$MetaIndex");
if ($NAME[0] eq $InstName) {
return $MetaIndex;
}
}
}
foreach $ROW (snmpUtils::walk($Snmp, $BaseOid)) {
($INDEX, $NAME) =3D split(/:/, $ROW, 2);
if ($NAME eq $InstName) {
$INDEX =3D~ s/$BaseOid//;
if (defined $MetaFile) {
open(METAOUT, "> $MetaFile") || die "Can't open $MetaFile
forwriting $!\n";
print METAOUT "last-inst$INDEX\n";
close(METAOUT);
}
return $INDEX;
}
}
return '';
}
########################################################################=
####
#####################
Regards,
Holger Zimmermann
Freudenberg Hosting KG
Basic Applications & Databases
H=F6hnerweg 2 - 4
69469 Weinheim, Germany
Fon +49 (0) 6201 80-8023
Fax +49 (0) 6201 88-8023
mailto:hol...@f-...
http://www.f-it.de
-----Urspr=FCngliche Nachricht-----
Von: Marc Jimenez [mailto:mji...@ne...]
Gesendet: Mittwoch, 5. Mai 2004 10:10
An: cri...@li...
Betreff: [cricket-users] Dealing with SNMP Datasource in Hex
Hi Folks,
Not sure if there is any reasonable way to cope with this, but my
Foundry switches return their byte counters (from the enterprise MIB) =
in
hex. Is there any way to get Cricket to correctly interpret the string
returned, translate, and store it as the appropriate 64-bit integer?
Thanks in advance for any help,
Marc
P.S. I'm trying to avoid the overhead of writing a seperate Perl script =
to
handle this datasource...
Marc Jimenez
Manager, Network Engineering and Security
Tufts University
-------------------------------------------------------
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle =
10g.=20
Take an Oracle 10g class now, and we'll give you the exam FREE.=20
http://ads.osdn.com/?ad_id=3D3149&alloc_id=3D8166&op=3Dclick
_______________________________________________
cricket-users mailing list
cri...@li...
https://lists.sourceforge.net/lists/listinfo/cricket-users
|