NetXMS Support Forum

English Support => General Support => Topic started by: Borgso on November 05, 2014, 10:00:02 AM

Title: NXSL node down status
Post by: Borgso on November 05, 2014, 10:00:02 AM
Im using a working "hack" to use dynamic proxy via Dummy DCI with TransformationScript to run a custom bashscript that do some checks.

In the script i check if proxynode dont have any critical status (>=4) because i couldnt find a way to check if a node is down with NXSL.
This will work as long proxynode does not have any other alarms with Critical that is not "Node Down".
But if the proxynode have a Critical alarm that is not "Node Down" it will be detected as proxynode is down...

Script is:

sub main() {
  myName = $node->name;
  // Find my proxy from myName="aaa-001-pc01"
  $node->name ~= "^([a-z0-9]+\-)";
  // Turn it into "aaa-proxynode"
  myProxy = $1."proxynode";

  // Check if myProxy exists
  nodeObj = FindNodeObject(null, myProxy);
  if(nodeObj == null) {
      return "ERR: Node ".myProxy." not found.";
  }
 
  // Check if myProxy is up
  checkPROXY = GetDCIValue(nodeObj, FindDCIByDescription(nodeObj, "Status"));
  if (checkPROXY >= 4) {
      return "OK but proxy unreachable";
  }
 
  val = -1;
  agentParam = "EXEC(proxyscript.sh ".myName.")";
  val = AgentReadParameter(nodeObj, agentParam);
  if(val == null) {
      return "ERR: Param ".agentParam." could not be retreived.";
  }

  return val;
}
Title: Re: NXSL node down status
Post by: Victor Kirhenshtein on November 05, 2014, 11:23:40 AM
Hi,

you can use runtimeFlags property of node object to get node down state. If UNREACHABLE (0x0004) flag is set, then NetXMS considers this node as down. You can check it as follows:


if (nodeObj->runtimeFlags & 0x0004) {
      return "OK but proxy unreachable";
  }


All runtime flags described here: http://wiki.netxms.org/wiki/NXSL:Node:runtimeFlags (http://wiki.netxms.org/wiki/NXSL:Node:runtimeFlags).

Best regards,
Victor
Title: Re: NXSL node down status
Post by: Borgso on November 05, 2014, 04:27:25 PM
Thanks for quick reply Victor.

I see this option comes with 1.2.12, but we are still at 1.2.9.
Yet another reason to do the upgrade  ::)..