This discussion has been locked. The information referenced herein may be inaccurate due to age, software updates, or external references.
You can no longer post new replies to this discussion. If you have a similar question you can start a new discussion in this forum.

Setting Node Polling Engine with SQL call

I wanted to post an idea I have here to see if anyone has either done this or can foresee issues with the idea.

Our environment has 6 polling engines in two data centers supporting a LAN environment.  So, the polling engines are pretty much in the same location on the network.  Different physical locations but the same subnets.  This being the case there was no real benefit to sectioning our environment and dedicating a section to each polling engine.  What we have strived to do is have each polling engine monitoring all areas of our environment.  Each polling engine is monitoring some of the devices in a given building.  If I lose a polling engine or need to take one out of service, I’m still monitoring over 80% of a building…if something happens in the building odds are we’ll still see it.  As you can image, it is hard to keep track of this by hand.  It is hard to move nodes around if I lose a polling engine and put them back when I get the polling engine back in service.

My idea is to use SQL MOD function to create 10 groups of nodes based on the last numeral in the nodes NodeID.  If the NodeID is 123 it will be in group 3.  I will assign the groups to the polling engines.  For example, a polling engine will be monitoring all nodes with a NodeID ending in 3 and 5.  I will then use an SQL request to set the polling engine for the nodes.  I could do this one group at a time or for all the groups in the environment.  I image for load issues I should only change one group at a time.

Please let me know if this post should have been made in a different forum.  Thank you.

  • Under the Manage Nodes screen you can reassign them 'in mass' by simply selecting them and assigning them to an engine. Usually if I have one that is sick I move all the nodes off of it until its fixed.

    In the Manage Nodes screen set your Group By to Polling Engine then click on a polling engine, select all nodes, then More Actions, Change Polling Engines and move them all at once.

  • One thing to keep in mind is that your method doesn't really make any effort to distribute the loads across the pollers. Over the years you might add and delete objects in such a way that maybe all your core switches ended up in the same group, and since they have significantly more interfaces than a server it could skew the work loads. Thats probably an exaggerated example but the point is distributing by nodeid is a pretty indirect measure.

    You can take a look at this script I have for an example of how to automatically load balance Orion pollers, but in production I tend to add a lot more logic on top of it that is specific to my environment.

    https://github.com/Mesverrum/MyPublicWork/blob/master/ExamplePollingEngineBalancer.ps1
  • The problem I'm having isn't managing the load but managing the coverage.  I need to insure that a given building or region of our environment is not polled by just one or two polling engines.  In fact the more polling engines that have a piece of a given pie the more resilient I am to issues with the polling engines.

    So moving them in mass by say name doesn't work out well for our needs.

    This is a very cool script.  I worry a little bit about not knowing where the nodes are going.  Insure they coverage distribution.  Also there is the problem of taking polling engines in and out of service and having to shuffle the nodes.

  • Moving them like that is what we do today and in order to keep the coverage for any given area of my environment spread to several polling engines for resilience can be changing to keep up with (~3500 nodes on 6 polling engines).