Auto apply Rules bases on SNMP Value

Started by francoism, November 21, 2016, 12:44:38 PM

Previous topic - Next topic

francoism

Hi Guys,

First off, great program. I have been using it for about 2 weeks. I want this to be my Dude server replacement. It has so many uses and I am very excited in what it can do.

Anyways, I need some help with applying a Template.

Here is my code

Quotesnmp = CreateSNMPTransport($node);
oid = SNMPGetValue(snmp,".1.2.840.10036.3.1.2.1.3.10");   // Device name
if (oid == "PowerBeam AC 500")
    return true;

The idea is to apply the filter if the SNMP returns "PowerBeam AC 500". It does when I snmpwalk it. So there must be something wrong with how I am trying to use the script.

Please help.

tomaskir

Here is a script with error handling and a bit better recognition (using regex ~= rather then just total comparison ==)

oid = ".1.2.840.10036.3.1.2.1.3.10.0";

tube = CreateSNMPTransport($node);
if (tube == null)
  return false;

value = SNMPGetValue(tube, oid);
if (value == null)
  return false;

return value ~= "PowerBeam AC 500";

francoism

I have added this rule but does not seem to work. Is there a way to debug these rules to see output?

tomaskir

Sure, just add some

trace(0, "some message");

Into the code, and then look at netxmsd log file.

zsing82

This worked for me:
return $node->sysDescription like "HP*Switch*";

You can replace sysDescription with other node attributes:
https://wiki.netxms.org/wiki/NXSL:Node

It's an indirect SNMP call, but I thought it might help.