graphing string problem

Post support questions that directly relate to Linux/Unix operating systems.

Moderators: Developers, Moderators

jcotton
Posts: 27
Joined: Mon Jun 27, 2005 3:58 pm
Contact:

graphing string problem

Post by jcotton »

I need to parse a string value returned by an SNMP query to be graphed. The query/result is:

OID: 1.3.6.1.4.1.290.3.4.2.1.3.1.1.13 (only one index)

1: radioTemperature.1 (octet string) 50 C/122 F
***** SNMP PROMPT FOR OID-RESPONSE END *****

I need to parse the F value (122) and plot it. I have been doing some reading and it appears the only way to do this is via an external script. Is this correct?

Using 8.0.6e.
User avatar
TheWitness
Developer
Posts: 17007
Joined: Tue May 14, 2002 5:08 pm
Location: MI, USA
Contact:

Post by TheWitness »

Are you going to be polling several of these devices?

TheWitness
True understanding begins only when we realize how little we truly understand...

Life is an adventure, let yours begin with Cacti!

Author of dozens of Cacti plugins and customization's. Advocate of LAMP, MariaDB, IBM Spectrum LSF and the world of batch. Creator of IBM Spectrum RTM, author of quite a bit of unpublished work and most of Cacti's bugs.
_________________
Official Cacti Documentation
GitHub Repository with Supported Plugins
Percona Device Packages (no support)
Interesting Device Packages


For those wondering, I'm still here, but lost in the shadows. Yearning for less bugs. Who want's a Cacti 1.3/2.0? Streams anyone?
jcotton
Posts: 27
Joined: Mon Jun 27, 2005 3:58 pm
Contact:

Post by jcotton »

TheWitness wrote:Are you going to be polling several of these devices?

TheWitness
Yes. I have written a perl script to query the device. Now I am having a problem with the value being returned. Firstly, I am not sure what the output of the script needs to be in order for cacti to process it. I have created the data input item as you can see, and I am passing the <hostname>. You can probably tell I am not much of a programmer :-) I used the $ARGV[0] from other scripts I have seen on this board. Any help would is much appreciated.

Output from log:

06/29/2005 09:55:55 PM - CMDPHP: Poller[0] Host[30] DS[193] CMD: /var/www/html/cacti/scripts/query_harris_temp.pl dls0301-rd3z2.fibertower.net, output: U

---------------------------------------------------------------------

Perl script:

#Perl Script - Query Harris Radio for Temp and parse output

#!/usr/bin/perl

$community = "public";
#$radio = $ARGV[0];
$radio = "10.20.23.2";
$mib = ".1.3.6.1.4.1.290.3.4.2.1.3.1.1.13";

$temp = `/usr/bin/snmpget -v 1 -c public $radio $mib`;
($temp2) = ($temp =~ m/"[0-9]+ C\/([0-9]+) F"/);


print $temp2 . "\n";

--------------------------------------------------
jcotton
Posts: 27
Joined: Mon Jun 27, 2005 3:58 pm
Contact:

Post by jcotton »

I also ommitted to include a sample output from the script. This script returns the SNMP value for the temperature of a microwave radio. As is, this script would return an integer (the result of the print statement) like "112". I have also tried returning a string like "Temp = 112", with the same result.
jcotton
Posts: 27
Joined: Mon Jun 27, 2005 3:58 pm
Contact:

Post by jcotton »

duh. And the comments on the $radio statements are reversed.
User avatar
TheWitness
Developer
Posts: 17007
Joined: Tue May 14, 2002 5:08 pm
Location: MI, USA
Contact:

Post by TheWitness »

The return data is quite simple. It can either be a simple integer such as "20", or if you are creating an RRD file with multiple pieces of information, it takes the form:

Variable1:Value1 Variable2:Value2 ...

The output will be a group of Variable:Value pairs separated by a space. That method again allows for multiple values to be placed into a single RRD file.

TheWitness
True understanding begins only when we realize how little we truly understand...

Life is an adventure, let yours begin with Cacti!

Author of dozens of Cacti plugins and customization's. Advocate of LAMP, MariaDB, IBM Spectrum LSF and the world of batch. Creator of IBM Spectrum RTM, author of quite a bit of unpublished work and most of Cacti's bugs.
_________________
Official Cacti Documentation
GitHub Repository with Supported Plugins
Percona Device Packages (no support)
Interesting Device Packages


For those wondering, I'm still here, but lost in the shadows. Yearning for less bugs. Who want's a Cacti 1.3/2.0? Streams anyone?
jcotton
Posts: 27
Joined: Mon Jun 27, 2005 3:58 pm
Contact:

Post by jcotton »

I still can't get this figured out.

1. Is my use of ARGV[0] correct? This is the variable into which the <hostname> is read.

2. How is the output of the script passed back to Cacti? I have seen other people's scripts on this board, and they are using print functions to print values. Is this mere to for testing/debugging?
jcotton
Posts: 27
Joined: Mon Jun 27, 2005 3:58 pm
Contact:

Post by jcotton »

Hello?

Still getting the same error, and I have tried just about everything....

07/01/2005 11:25:35 AM - CMDPHP: Poller[0] Host[31] DS[201] CMD: /var/www/html/cacti/scripts/query_harris_temp.pl dls0309-rd3z1.fibertower.net, output: U

Sample script output (using above script):

harris_temp:89

Again...the hostname is input, and is defined as a Data Input in Cacti. harris_temp is defined as the Data Output in Cacti.

Can somebody give me a clue here?
jcotton
Posts: 27
Joined: Mon Jun 27, 2005 3:58 pm
Contact:

Post by jcotton »

bump.

I am tearing my hair out trying to figure this out.

Here is the log file extract:

07/05/2005 11:15:30 AM - CMDPHP: Poller[0] Host[31] DS[201] CMD: /var/www/html/cacti/scripts/query_harris_temp.pl dls0309-rd3z1.fibertower.net, output: U
07/05/2005 11:15:30 AM - CMDPHP: Poller[0] Host[31] DS[201] WARNING: Result from CMD not valid. Partial Result:

Here is the script:

#Perl Script - Query Harris Radio for Temp and parse output

#!/usr/bin/perl

$community = "public";
$mib = ".1.3.6.1.4.1.290.3.4.2.1.3.1.1.13";

$temp = `/usr/bin/snmpget -v 1 -c public $ARGV[0] $mib`;
($temp2) = ($temp =~ m/"[0-9]+ C\/([0-9]+) F"/);

print "harris_temp:" . $temp2 . "\n";


Here is sample output:

[jcotton@redhat scripts]$ perl query_harris_temp.pl dls0309-rd3z1.fibertower.net
harris_temp:86

Can anyone give me some help?
User avatar
TheWitness
Developer
Posts: 17007
Joined: Tue May 14, 2002 5:08 pm
Location: MI, USA
Contact:

Post by TheWitness »

post screen prints of your data input method and data template. Also, when you are only returning 1 value, you don't need the "Variable1" component.
True understanding begins only when we realize how little we truly understand...

Life is an adventure, let yours begin with Cacti!

Author of dozens of Cacti plugins and customization's. Advocate of LAMP, MariaDB, IBM Spectrum LSF and the world of batch. Creator of IBM Spectrum RTM, author of quite a bit of unpublished work and most of Cacti's bugs.
_________________
Official Cacti Documentation
GitHub Repository with Supported Plugins
Percona Device Packages (no support)
Interesting Device Packages


For those wondering, I'm still here, but lost in the shadows. Yearning for less bugs. Who want's a Cacti 1.3/2.0? Streams anyone?
jcotton
Posts: 27
Joined: Mon Jun 27, 2005 3:58 pm
Contact:

Post by jcotton »

TheWitness wrote:post screen prints of your data input method and data template. Also, when you are only returning 1 value, you don't need the "Variable1" component.
I have corrected the script....sample output:

[jcotton@redhat scripts]$ perl query_harris_temp.pl dls0309-rd3z1.fibertower.net
99

Screen shots attached.

Thanks heaps.
Justin
[/img]
Attachments
Data Input Item
Data Input Item
cacti1.JPG (63.9 KiB) Viewed 4928 times
Data Template
Data Template
cacti2.JPG (108.73 KiB) Viewed 4928 times
_JPL_
Cacti User
Posts: 67
Joined: Mon Nov 29, 2004 11:34 am

Post by _JPL_ »

I am having a similar problem. I have a temperature sensor that was working (grpahing) before upgrade to 86f and now it doesn't. It just spits out one value like yours above so I removed the 'output field' value in the data input method for it as per what I think one of the responses above says, but it still doesn't graph. Works from the command line and that's about it.
User avatar
TheWitness
Developer
Posts: 17007
Joined: Tue May 14, 2002 5:08 pm
Location: MI, USA
Contact:

Post by TheWitness »

There are some very important patches on the web site for 0.8.6f. Goto http://www.cacti.net/downloads/patches/ ... re-patched

TheWitness
True understanding begins only when we realize how little we truly understand...

Life is an adventure, let yours begin with Cacti!

Author of dozens of Cacti plugins and customization's. Advocate of LAMP, MariaDB, IBM Spectrum LSF and the world of batch. Creator of IBM Spectrum RTM, author of quite a bit of unpublished work and most of Cacti's bugs.
_________________
Official Cacti Documentation
GitHub Repository with Supported Plugins
Percona Device Packages (no support)
Interesting Device Packages


For those wondering, I'm still here, but lost in the shadows. Yearning for less bugs. Who want's a Cacti 1.3/2.0? Streams anyone?
_JPL_
Cacti User
Posts: 67
Joined: Mon Nov 29, 2004 11:34 am

Post by _JPL_ »

Unfortunately, they don't do anything noticable to me. IE, I still have this problem.

I just found the problem. cactiuser couldn't find utils.pm. I placed it somewhere it could and now it works.

Hmm, well cactiuser is able to run the script and it gets output, however it still doesn't graph. Is it necessary to have an ouptput field defined in the data input if there is only one output? For example, only a single number to graph is output.
_JPL_
Cacti User
Posts: 67
Joined: Mon Nov 29, 2004 11:34 am

Post by _JPL_ »

Hello? Anyone have any idea about this?

This is the line in my debug log:
08/08/2005 02:10:29 PM - CMDPHP: Poller[0] Host[72] DS[1389] CMD: perl /var/www/html/cacti/scripts/check_temp.pl 10.13.210.210, output: 23.1

As you can see, a value is output however it is never graphed. I don't need to label the output right? Like "output: temp:23.1" and also in the data input method I do not have an output field defined. I'm pretty sure I've tried every combination of output field/no ouput field and label/no label.
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest