Hello.

I can't still get it working.
I have talk to netapp and the don't have separate OID´s for the temperature.

When I running the mrtg whit you config I get this error

[EMAIL PROTECTED]:/etc/mrtg/test# env LANG=C /usr/bin/mrtg 
/etc/mrtg/test/netapp.cfg
2008-07-25 12:16:31: ERROR: Target[netapptempone][_IN_] 
'encTempSensorsCurrentTemp.1& encTempSensorsCurrentTemp. $target->[0]{$mode} ' 
(eval): Bareword "encTempSensorsCurrentTemp" not allowed while "strict subs" in 
use at (eval 17) line 1.
Bareword "encTempSensorsCurrentTemp" not allowed while "strict subs" in use at 
(eval 17) line 1.

2008-07-25 12:16:31: ERROR: Target[netapptempone][_OUT_] 
'encTempSensorsCurrentTemp.1& encTempSensorsCurrentTemp. $target->[0]{$mode} ' 
(eval): Bareword "encTempSensorsCurrentTemp" not allowed while "strict subs" in 
use at (eval 18) line 1.
Bareword "encTempSensorsCurrentTemp" not allowed while "strict subs" in use at 
(eval 18) line 1.

Me MyConversions.pl file look like this

sub getitem($$) {
        my(@l) = split " ",$_[0];
        my($t) = $l[$_[1]*2];
        return $1 if($t =~ /(\d+)/);
        return "UNKNOWN";
}
sub netappTempone   { return getitem($_[0],0); }
sub netappTemptwo   { return getitem($_[0],1); }
sub netappTempthree { return getitem($_[0],2); }
sub netappTempfour  { return getitem($_[0],3); }

and the mrtg netapp.cfg look like this

[EMAIL PROTECTED]:/etc/mrtg/test# more netapp.cfg
######################################################################
# Multi Router Traffic Grapher -- Sample Configuration File
######################################################################
# This file is for use with mrtg-2.5.4c

# Global configuration
RunAsDaemon: no
EnableIPv6: no
WorkDir: /var/www/mrtg/test
#Options[_]: bits,growright
WriteExpires: Yes

LoadMIBS: /etc/mrtg/mibs/netapp.mib
ConversionCode: /etc/mrtg/MyConversions.pl

#Title[^]: Traffic Analysis for


######################################################################


Target[netappTempOne]:encTempSensorsCurrentTemp.1& 
encTempSensorsCurrentTemp.1:[EMAIL PROTECTED]|netappTempone
SetEnv[netappTempOne]: MRTG_INT_DESCR="1"
MaxBytes[netappTempOne]: 100
ShortLegend[netappTempOne]: degC
LegendI[netappTempOne]: 1:
Legend1[netappTempOne]: first sensor temperature
Legend3[netappTempOne]: peak first sensor temp
Title[netappTempOne]: Temp - Netapp 1 FS01
PageTop[netappTempOne]: <h1>Temp-Netapp 1 FS01</h1>
Options[netappTempOne]: noo
routers.cgi*Options[netappTempOne]: unscaled fixunit nomax nopercent
routers.cgi*Graph[netappTempOne]: netappTemp
routers.cgi*ShortDesc[netappTempOne]: Sensor 1
routers.cgi*InMenu[netappTempOne]: no


[EMAIL PROTECTED]:/etc/mrtg/test#

when I run mrtg whit debug=tarp,snpo,log I get this information

[EMAIL PROTECTED]:/etc/mrtg/test# env LANG=C /usr/bin/mrtg 
/etc/mrtg/test/netapp.cfg --debug=tarp,snpo,log
--tarp: Starting netapptempone -> encTempSensorsCurrentTemp.1& 
encTempSensorsCurrentTemp.1:[EMAIL PROTECTED]|netappTempone
--tarp: &targparser external done: 'encTempSensorsCurrentTemp.1& 
encTempSensorsCurrentTemp.1:[EMAIL PROTECTED]|netappTempone'
--tarp: &targparser complex done: 'encTempSensorsCurrentTemp.1& 
encTempSensorsCurrentTemp.1:[EMAIL PROTECTED]|netappTempone'
--tarp: New simple target [0] '1:[EMAIL PROTECTED]|netappTempone':
  Comu:  public, Host: 10.3.20.10
  Opt:   , IPv4: 1
  Conv:  netappTempone
  OID:   ifInOctets, ifOutOctets
  IfSel: If, If
  Key:   1, 1
--tarp: &targparser simple done: 'encTempSensorsCurrentTemp.1& 
encTempSensorsCurrentTemp. $target->[0]{$mode} '
--tarp: &targparser returning: unique = 0
--snpo: run snmpget from ifInOctets&ifOutOctets:[EMAIL PROTECTED]
--snpo: simple If: .1
--snpo: simple If: .1
--snpo: SNMPGet from [EMAIL PROTECTED] -- 
ifInOctets.1,ifOutOctets.1,sysUptime,sysName
--snpo: SNMPfound -- '134645627', '8038855', '9 days, 23:47:06', 
'fs01.BIOINVENT.NET'
2008-07-25 12:19:46: ERROR: Target[netapptempone][_IN_] 
'encTempSensorsCurrentTemp.1& encTempSensorsCurrentTemp. $target->[0]{$mode} ' 
(eval): Bareword "encTempSensorsCurrentTemp" not allowed while "strict subs" in 
use at (eval 17) line 1.
Bareword "encTempSensorsCurrentTemp" not allowed while "strict subs" in use at 
(eval 17) line 1.

2008-07-25 12:19:46: ERROR: Target[netapptempone][_OUT_] 
'encTempSensorsCurrentTemp.1& encTempSensorsCurrentTemp. $target->[0]{$mode} ' 
(eval): Bareword "encTempSensorsCurrentTemp" not allowed while "strict subs" in 
use at (eval 18) line 1.
Bareword "encTempSensorsCurrentTemp" not allowed while "strict subs" in use at 
(eval 18) line 1.

--log: Called /usr/bin/rateup /var/www/mrtg/test/ netapptempone 1216981186 -Z u 
-1 -1 100 c #00cc00 #0000ff #006600 #ff00ff -o k 1000 i 
/var/www/mrtg/test/netapptempone-day.png -100 -100 400 100 1 1 0 300 0 4 1 
%Y-%m-%d %H:%M 0
[EMAIL PROTECTED]:/etc/mrtg/test#


______________________________________________________________________________________________
 
Kind Regards
Lennie Wennerlund


-----Ursprungligt meddelande-----
Från: Steve Shipway [mailto:[EMAIL PROTECTED] 
Skickat: den 25 juli 2008 00:44
Till: Lennie Wennerlund; '[email protected]'
Ämne: RE: Temerature reading on netapp 2020


> 1.3.6.1.4.1.789.1.21.1.2.1.25.1
> SNMPv2-SMI::enterprises.789.1.21.1.2.1.25.1 = STRING: "33C (91F), 31C
> (87F), 30C (86F), 34C (93F)"

Doesn't the device produce these values as separate OIDs?  It seems a bit 
strange that they are only available as a string.  Four separate SNMP OIDs 
would be much easier to manage.

>Target[netappTemp]:encTempSensorsCurrentTemp.1:[EMAIL PROTECTED]|netappTemp

MRTG will ALWAYS takes EXACTLY TWO values.  Also, both values are passed to the 
postprocessing script with no additional parameters.  So, you should instead 
have:

Target[netappTempOne]:encTempSensorsCurrentTemp.1& 
encTempSensorsCurrentTemp.1:[EMAIL PROTECTED]|netappTempone

Which will extract the string (twice) and pass it to the postprocess function 
(twice).  So, you need multiple postprocess functions to extract different 
positions in the string.

> The Problem is the MyConversion.pl file. I don't know what I write inside
> it.

sub getitemn($$) {
        my(@l) = split " ",$_[0];
        my($t) = $l[$_[1]*2];
        return $1 if($t =~ /(\d+)/);
        return "UNKNOWN";
}
sub netappTempone   { return getitem($_[0],0); }
sub netappTemptwo   { return getitem($_[0],1); }
sub netappTempthree { return getitem($_[0],2); }
sub netappTempfour  { return getitem($_[0],3); }

Now, this means you can only have one of the 4 temperatures per MRTG graph, so 
you use the 'noo' option and create 4 targets (one per item).  If you user 
Routers2, you can create a userdefined graph to put all 4 lines on one image:

Target[netappTempOne]:encTempSensorsCurrentTemp.1& 
encTempSensorsCurrentTemp.1:[EMAIL PROTECTED]|netappTempone
SetEnv[netappTempOne]: MRTG_INT_DESCR="1"
MaxBytes[netappTempOne]: 100
ShortLegend[netappTempOne]: degC
LegendI[netappTempOne]: 1:
Legend1[netappTempOne]: first sensor temperature
Legend3[netappTempOne]: peak first sensor temp
Title[netappTempOne]: Temp - Netapp 1 FS01
PageTop[netappTempOne]: <h1>Temp-Netapp 1 FS01</h1>
Options[netappTempOne]: noo
routers.cgi*Options[netappTempOne]: unscaled fixunit nomax nopercent
routers.cgi*Graph[netappTempOne]: netappTemp
routers.cgi*ShortDesc[netappTempOne]: Sensor 1
routers.cgi*InMenu[netappTempOne]: no

Target[netappTempTwo]:encTempSensorsCurrentTemp.1& 
encTempSensorsCurrentTemp.1:[EMAIL PROTECTED]|netappTemptwo
SetEnv[netappTempTwo]: MRTG_INT_DESCR="2"
MaxBytes[netappTempTwo]: 100
ShortLegend[netappTempTwo]: degC
LegendI[netappTempTwo]: 2:
Legend1[netappTempTwo]: second sensor temperature
Legend3[netappTempTwo]: peak second sensor temp
Title[netappTempTwo]: Temp - Netapp 1 FS01
PageTop[netappTempTwo]: <h1>Temp-Netapp 1 FS01</h1>
Options[netappTempTwo]: noo
routers.cgi*Options[netappTempTwo]: unscaled fixunit nomax nopercent
routers.cgi*Graph[netappTempTwo]: netappTemp
routers.cgi*ShortDesc[netappTempTwo]: Sensor 2
routers.cgi*InMenu[netappTempTwo]: no

then repeat for the other 2 sensors.  See how  the Target line specifies a 
different postprocess function each time - the new function extracts a 
different number from the list.  The routers2 extended options define a summary 
graph, and hide the individual graphs from the menu.

This explanation got a bit out of hand, I've been writing MRTG documentation 
examples this week...

Steve

_______________________________________________
mrtg mailing list
[email protected]
https://lists.oetiker.ch/cgi-bin/listinfo/mrtg

Reply via email to