News:

We really need your input in this questionnaire

Main Menu

NXSL node down status

Started by Borgso, November 05, 2014, 10:00:02 AM

Previous topic - Next topic

Borgso

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;
}

Victor Kirhenshtein

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.

Best regards,
Victor

Borgso

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  ::)..