From: Jeremy L. <jla...@re...> - 2015-07-10 07:58:37
|
I think you might be able to solve this using SUBSTR and UNPACK transforms. Try this in transforms: hrSystemDateYearPacked: SUBSTR : {hrSystemDate} 0 2 hrSystemDateYear: UNPACK : {hrSystemDateYearPacked} n Then use {hrSystemDateYear} in your message file. J On 10 July 2015 at 17:20, Claessens Jurgen <Jur...@ce...> wrote: > Hi Jeremy, > > Thanks for the explanation. I was suspecting it had to do with the > encoding/decoding. > I will try to see if I can find this in BER.pm, or might be better to > report this to the developer of BER? > > In the meantime I have written an extra "test" which will calculate the > time difference in seconds from an epoch timestamp with the current system > time. > This is not 100% accurate as what I want. But at least I can do alerting > on it now. > > Add the lines to dm_templates.pm > > $func_type eq 'datedif' and do { > $temp =~ s/\s*\{\s*\S+?\s*\}|\s*,\s*//g; > do_log("DATEDIF transform uses only a single oid at " . > "$trans_file, line $l_num", 0) > and next LINE if $temp ne ''; > last CASE; > }; > > > Add the lines below to dm_tests.pm > > # Returns the difference between the local time and the provided epoch > timestamp ############################### > sub trans_datedif { > my ($device, $oids, $oid, $thr) = @_; > my $oid_h = \%{$oids->{$oid}}; > > # Extract our transform options > my $dep_oid = $1 if $oid_h->{'trans_data'} =~ /\{(.+)\}/; > my $dep_oid_h = \%{$oids->{$dep_oid}}; > # Validate our dependencies > validate_deps($device, $oids, $oid, [$dep_oid], '^\d+(\.\d+)?$') > or return; > > # Get local time > my $local_timestamp = time(); > > # See if we are a repeating variable type datum > # (such as that generated by snmpwalking a table) > if($oid_h->{'repeat'}) { > for my $leaf (keys %{$dep_oid_h->{'val'}}) { > > # Skip if there was a dependency error for this leaf > next if $oid_h->{'error'}{$leaf}; > > my $remote_timestamp = $dep_oid_h->{'val'}{$leaf}; > my $offset = $local_timestamp - $remote_timestamp; > > $oid_h->{'val'}{$leaf} = int($offset); > $oid_h->{'time'}{$leaf} = time; > > # Apply thresholds > apply_thresh_rep($oids, $thr, $oid); > > } > } > > # Otherwise we are a single entry datum > else { > my $remote_timestamp = $dep_oid_h->{'val'}; > my $offset = $local_timestamp - $remote_timestamp; > > $oid_h->{'val'} = $offset; > $oid_h->{'time'} = time; > > # Apply thresholds > apply_thresh_rep($oids, $thr, $oid); > } > > } > > > > Met vriendelijke groeten/Meilleures salutations/Best regards > > Jurgen Claessens > -----Original Message----- > From: Jeremy Laidman [mailto:jla...@re...] > Sent: vrijdag 10 juli 2015 8:49 > To: dev...@li... > Subject: Re: [Devmon] OID not translating > > Hmm, this is curious. I can confirm your results. I should be able to > simply display the system date on any test page by adding the OID name > (defined in oids) into the message file. When I do this, I get garbage, as > you've described. It's not actually garbage, but it's an encoding/decoding > mismatch. > > A quick test shows that most strings are simply ASCII-encoded. For > example, using snmpget with "-d" (debug) for sysName shows a packet with > the hostname in an ASCII-encoded format. > > But when doing the same thing for the system date, instead I get a form of > encoding that appears to be specifically structured for human-readable > dates and times. Example: > > Received 57 bytes from UDP: [127.0.0.1]:161->[0.0.0.0] > 0000: 30 37 02 01 01 04 08 6C 78 70 75 62 6C 69 63 A2 > 07.....XXXXXXXX▒ > 0016: 28 02 04 0E 12 87 A8 02 01 00 02 01 00 30 1A 30 > (.....▒......0.0 > 0032: 18 06 09 2B 06 01 02 01 19 01 02 00 04 0B 07 DF > ...+...........▒ > 0048: 07 0A 0F 38 3A 00 2B 0A 00 ...8:.+.. > > HOST-RESOURCES-MIB::hrSystemDate.0 = STRING: 2015-7-10,15:56:58.0,+10:0 > > The last 12 bytes (starting 07 DF) represent the string > "2015-7-10,15:56:58.0,+10:0". The "0B" that precedes this string is the > string length. So we have: > > 07DF 07 0A -> 2015-7-10 > 0F 38 3A 00 -> 15:56:58.0 > 2B -> ?? > 0A 00 -> +10:00 > > This doesn't seem to be a string at all, despite snmpget listing it as > one. Looking closer, the "04" just before the "0B" length indicator is > probably the tag indicator, where "04" means "octet string". However the > MIB files on my system list hrSystemDate as a DateAndTime type. > > It looks like BER.pm will match against type 4 (octet_string_tag) and > simply decode it as an ASCII string. > > I think the bottom line is that you're getting an encoded value, tagged as > an octet-string, but then treated as if it's human readable when it's not, > and your only course of action would be to handle this special case with > some code, somewhere. > > One option might be to enhance BER.pm to treat this OID as a special case > when decoding, although I don't think the decoding functions in BER.pm can > see the OID. Another option might be to have dm_snmp.pm treat this OID > as a special case, and either have its own decoding routine for this OID, > or re-code the result in human-readable format. > > Note that this is not the only case like this. Things like ifPhysAddress > are also octet-strings that are not ASCII, and they'll also give you > "garbage" when used in this way. > > Cheers > Jeremy > > > On 10 July 2015 at 15:29, Jeremy Laidman <jla...@re...> wrote: > > > Can you show the relevant line in your oids and message files? > > > > > > On 10 July 2015 at 13:59, Claessens Jurgen > > <Jur...@ce...> > > wrote: > > > >> Hi, > >> > >> I'm afraid that doesn't work, I already tried that at first. But > >> seeing the result received thru devmon is nothing readable, I cannot > >> perform any sort of transform. > >> As said, when I query the device manually, I do get a normal > >> response, but there is something in the devmon translation, which is > >> messing things up. > >> I just have no clue on how to debug this so I can pinpoint the culprit. > >> > >> Met vriendelijke groeten/Meilleures salutations/Best regards > >> > >> Jurgen Claessens > >> -----Original Message----- > >> From: MF...@hr... [mailto:MF...@hr...] > >> Sent: donderdag 9 juli 2015 16:52 > >> Cc: Devmon - Email List > >> Subject: Re: [Devmon] OID not translating > >> > >> I would recommend using the 'REGSUB' transform to strip out the info > >> you need, then use DATE and/or ELAPSED to determine time. > >> > >> > >> > >> From: > >> Ken Connell <kco...@ry...> > >> To: > >> Devmon - Email List <dev...@li...>, > >> Date: > >> 07/09/2015 07:43 AM > >> Subject: > >> Re: [Devmon] OID not translating > >> > >> > >> > >> Sorry....over my head....hopefully someone else can chime in. > >> On Jul 9, 2015 8:46 AM, "Claessens Jurgen" > >> <Jur...@ce...> > >> wrote: > >> > >> > Hi Ken, > >> > > >> > Currently I'm not even at that point as I get garbage back when run > >> > from devmon. > >> > I only have it in my OID file and message file. > >> > As far as I can tell devmon uses encode/decode from BER.pm to make > >> > the communication secure?? > >> > When I do some debugging on the end parameters I can see all other > >> > OID's are decoded, but that 1 OID remains encoded. > >> > So something is amiss there. I just don't know what. I don't know > >> > enough of the language or logic behind it. > >> > > >> > Met vriendelijke groeten/Meilleures salutations/Best regards > >> > > >> > Jurgen Claessens > >> > -----Original Message----- > >> > From: Ken Connell [mailto:kco...@ry...] > >> > Sent: donderdag 9 juli 2015 14:34 > >> > To: Devmon - Email List > >> > Subject: Re: [Devmon] OID not translating > >> > > >> > When you say "translate the string", you mean you have it set in > >> > the transforms file ? > >> > > >> > As far as I know you can "transform" INTGERS only....I don't think > >> > you > >> can > >> > do it for a STRING. > >> > On Jul 9, 2015 7:13 AM, "Claessens Jurgen" > >> > <Jur...@ce... > >> > > >> > wrote: > >> > > >> > > Hello all, > >> > > > >> > > I seem to have a problem with 1 OID that is not getting > >> > > translated correctly. > >> > > When I run the snmp query manual I do get normal text snmpwalk > >> > > -v2c -c public 172.29.22.26 .1.3.6.1.2.1.25.1.2.0 > >> > > HOST-RESOURCES-MIB::hrSystemDate.0 = STRING: > >> > > 2015-7-9,11:31:3.0,+2:0 However, when I try to display this > >> > > directly in the message I get nothing but garbage. > >> > > I think it's not getting decoded back ok. > >> > > Has anyone seen this with this OID? The OID is available on all > >> systems. > >> > > > >> > > I wanted to use this oid to translate it back to epoch time by > >> > > creating an extra function and such it would be possible to > >> > > calculate timedifferences on the system. > >> > > > >> > > Met vriendelijke groeten/Meilleures salutations/Best regards > >> > > > >> > > Jurgen Claessens > >> > > > >> > > > >> > > > >> > > This e-mail and all files transmitted as attachment(s) thereto > >> > > are confidential and solely intended for the individual to whom > >> > > or the organization to which they are addressed. If you received > >> > > this e-mail by mistake, please notify Cegeka's Service Desk at > >> > > ceg...@ce... or call +32 (0)11 240 363. We thank you > >> > > in advance. Cegeka hereby confirms that this message has been > >> > > swept by Sophos for the presence of viruses. > >> > > > >> > > ----------------------------------------------------------------- > >> > > ----- > >> > > -------- Don't Limit Your Business. Reach for the Cloud. > >> > > GigeNET's Cloud Solutions provide you with the tools and support > >> > > that you need to offload your IT needs and focus on growing your > business. > >> > > Configured For All Businesses. Start Your Cloud Today. > >> > > https://www.gigenetcloud.com/ > >> > > _______________________________________________ > >> > > Devmon-support mailing list > >> > > Dev...@li... > >> > > https://lists.sourceforge.net/lists/listinfo/devmon-support > >> > > > >> > > >> > > >> > >> --------------------------------------------------------------------- > >> --------- > >> > Don't Limit Your Business. Reach for the Cloud. > >> > GigeNET's Cloud Solutions provide you with the tools and support > >> > that > >> you > >> > need to offload your IT needs and focus on growing your business. > >> > Configured For All Businesses. Start Your Cloud Today. > >> > https://www.gigenetcloud.com/ > >> > _______________________________________________ > >> > Devmon-support mailing list > >> > Dev...@li... > >> > https://lists.sourceforge.net/lists/listinfo/devmon-support > >> > > >> > This e-mail and all files transmitted as attachment(s) thereto are > >> > confidential and solely intended for the individual to whom or the > >> > organization to which they are addressed. If you received this > >> > e-mail by mistake, please notify Cegeka's Service Desk at > >> ceg...@ce... > >> > or call +32 (0)11 240 363. We thank you in advance. Cegeka hereby > >> > confirms that this message has been swept by Sophos for the > >> > presence of viruses. > >> > > >> > > >> > > >> > >> --------------------------------------------------------------------- > >> --------- > >> > Don't Limit Your Business. Reach for the Cloud. > >> > GigeNET's Cloud Solutions provide you with the tools and support > >> > that you need to offload your IT needs and focus on growing your > business. > >> > Configured For All Businesses. Start Your Cloud Today. > >> > https://www.gigenetcloud.com/ > >> > _______________________________________________ > >> > Devmon-support mailing list > >> > Dev...@li... > >> > https://lists.sourceforge.net/lists/listinfo/devmon-support > >> > > >> > >> --------------------------------------------------------------------- > >> --------- Don't Limit Your Business. Reach for the Cloud. > >> GigeNET's Cloud Solutions provide you with the tools and support that > >> you need to offload your IT needs and focus on growing your business. > >> Configured For All Businesses. Start Your Cloud Today. > >> https://www.gigenetcloud.com/ > >> _______________________________________________ > >> Devmon-support mailing list > >> Dev...@li... > >> https://lists.sourceforge.net/lists/listinfo/devmon-support > >> > >> > >> --------------------------------------------------------------------- > >> --------- Don't Limit Your Business. Reach for the Cloud. > >> GigeNET's Cloud Solutions provide you with the tools and support that > >> you need to offload your IT needs and focus on growing your business. > >> Configured For All Businesses. Start Your Cloud Today. > >> https://www.gigenetcloud.com/ > >> _______________________________________________ > >> Devmon-support mailing list > >> Dev...@li... > >> https://lists.sourceforge.net/lists/listinfo/devmon-support > >> > >> This e-mail and all files transmitted as attachment(s) thereto are > >> confidential and solely intended for the individual to whom or the > >> organization to which they are addressed. If you received this e-mail > >> by mistake, please notify Cegeka's Service Desk at > >> ceg...@ce... or call +32 (0)11 240 363. We thank you in > >> advance. Cegeka hereby confirms that this message has been swept by > >> Sophos for the presence of viruses. > >> > >> > >> --------------------------------------------------------------------- > >> --------- Don't Limit Your Business. Reach for the Cloud. > >> GigeNET's Cloud Solutions provide you with the tools and support that > >> you need to offload your IT needs and focus on growing your business. > >> Configured For All Businesses. Start Your Cloud Today. > >> https://www.gigenetcloud.com/ > >> _______________________________________________ > >> Devmon-support mailing list > >> Dev...@li... > >> https://lists.sourceforge.net/lists/listinfo/devmon-support > >> > > > > > > ------------------------------------------------------------------------------ > Don't Limit Your Business. Reach for the Cloud. > GigeNET's Cloud Solutions provide you with the tools and support that you > need to offload your IT needs and focus on growing your business. > Configured For All Businesses. Start Your Cloud Today. > https://www.gigenetcloud.com/ > _______________________________________________ > Devmon-support mailing list > Dev...@li... > https://lists.sourceforge.net/lists/listinfo/devmon-support > > This e-mail and all files transmitted as attachment(s) thereto are > confidential and solely intended for the individual to whom or the > organization to which they are addressed. If you received this e-mail by > mistake, please notify Cegeka's Service Desk at ceg...@ce... > or call +32 (0)11 240 363. We thank you in advance. Cegeka hereby > confirms that this message has been swept by Sophos for the presence of > viruses. > > ------------------------------------------------------------------------------ > Don't Limit Your Business. Reach for the Cloud. > GigeNET's Cloud Solutions provide you with the tools and support that > you need to offload your IT needs and focus on growing your business. > Configured For All Businesses. Start Your Cloud Today. > https://www.gigenetcloud.com/ > _______________________________________________ > Devmon-support mailing list > Dev...@li... > https://lists.sourceforge.net/lists/listinfo/devmon-support > |