Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Flatly)
  • No Skin
Collapse
Brand Logo

NetXMS Forum

  1. Home
  2. Support
  3. NXSL node down status

NXSL node down status

Scheduled Pinned Locked Moved Support
3 Posts 2 Posters 14.3k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • B
    B
    Borgso
    wrote on last edited by
    #1

    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;
    }
    
    1 Reply Last reply
    0
    • V
      V
      Victor Kirhenshtein
      wrote on last edited by
      #2

      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

      1 Reply Last reply
      0
      • B
        B
        Borgso
        wrote on last edited by
        #3

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

        1 Reply Last reply
        0

        Hello! It looks like you're interested in this conversation, but you don't have an account yet.

        Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

        With your input, this post could be even better 💗

        Register Login
        Reply
        • Reply as topic
        Log in to reply
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes


        • Login

        • Don't have an account? Register

        • Login or register to search.
        Powered by NodeBB Contributors
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • Users
        • Groups