cancel
Showing results for 
Search instead for 
Did you mean: 
Create Post
Level 12

Agent Polling - Status and Response

Hi all,

We are running with an Agent based polling method.  We have a couple of polling engines to split the load and are running on the latest version of software.


Orion Platform 2015.1.2, NCM 7.4, IPAM 4.3, IVIM 2.1.0, PM 2.1, OFSMM 6.6.5, UDT 3.2.2, VNQM 4.2.2, DPA 10.0.0, NPM 11.5.2, QoE 2.0, SAM 6.2.2, NTA 4.1.1, Toolset 11.0.1


We have been having issues with the Status and Response mechanism for these devices and would like to move away from Agent based Status and Response and on to ICMP.  I haven't found a way to do this en masse and can only do it with individual nodes.


We have 2000 agents.


There must be a way to do this quicker than on each node individually. 








Labels (2)
11 Replies

Status & Response Time - Database Query

Under All Settings click on "Mange Pollers":

pastedImage_3.png

Then group by "Technology"

pastedImage_4.png

Next, Change the poller assignment by checking the ICMP box and clicking +Assign:

pastedImage_6.png

*Note - You do not need to "remove" any currently installed pollers.  "Assign" can also be thought of as "Reassign".

Level 16

here is how I do it...

#!/usr/bin/perl

use Getopt::Long;

use SOAP::Transport::HTTP;

use File::Spec;

use Data::Dumper;

use Memoize;

use XML::Simple;

use SW::Orion;

use SW::InformationService;

use Net::SNMP;

use strict;

my $hostname = 'xxxxxxxxxxxxx'; # fill in a hostname

my $username = 'yyyyyyyyyyyyy';

my $password = 'zzzzzzzzzzzzz';

my $endpoint = "https://$hostname:17778/SolarWinds/InformationService/OrionBasic";

my $xs = XML::Simple->new();

my $swis = SW::InformationService->new();

$swis->outputxml('true');

$swis->proxy($endpoint);

# $swis->proxy->ssl_opts(verify_hostname => 0);

$swis->proxy->http_request->authorization_basic($username, $password);

                &add_pollers('N.ResponseTime.ICMP.Native');

                &add_pollers('N.Status.ICMP.Native');

exit(0);

sub add_pollers {

my $poller=shift;

my $node;

  my $data= $xs->XMLin($swis->QueryXml(q{

SELECT NodeID

FROM  Orion.Nodes

WHERE  unmanaged=0 and ObjectSubType='SNMP'

and nodeid not in

      (select NetObjectId from orion.pollers

        where NetObjectType='N'

        and pollerType=@p)},

        {'p'=>$poller}

          ));

  my $nodes=$data->{'s:Body'}-> {'QueryXmlResponse'} -> { 'QueryXmlResult'} -> { 'queryResult'}->{'data'}->{'Nodes'} ;

  if (ref($nodes) eq 'ARRAY') {

          for my $f (@$nodes){

                $node=$f->{'NodeID'};

                printf "Add poller $poller to %s\n", $node;

                my $d1=$xs->XMLin($swis->Create("Orion.Pollers", {

                'PollerType'=>$poller,

                'NetObject'=>"N:$node",

                'NetObjectType'=>'N',

                'NetObjectID'=>$node

                }));

                if (defined($d1->{'s:Body'}->{'CreateResponse'}->{'CreateResult'})) {

                        printf( "Poller added: %s\n",$d1->{'s:Body'}->{'CreateResponse'}->{'CreateResult'});

                } else {

                        print Dumper($d1);

                };

            }

        } elsif (ref($nodes) eq 'HASH') {

                $node=$nodes->{'NodeID'};

                printf "Add poller $poller to %s\n", $node;

                my $d1=$xs->XMLin($swis->Create("Orion.Pollers", {

                'PollerType'=>$poller,

                'NetObject'=>"N:$node",

                'NetObjectType'=>'N',

                'NetObjectID'=>$node

                }));

                if (defined($d1->{'s:Body'}->{'CreateResponse'}->{'CreateResult'})) {

                        printf( "Poller added: %s\n",$d1->{'s:Body'}->{'CreateResponse'}->{'CreateResult'});

                } else {

                        print Dumper($d1);

                };

        } else {

                print "Poller $poller not missing from any nodes\n";

        }

        return;

}

Interested to see what display you have with this. 

0 Kudos

Thanks RichardLetts​ where would I be using that script? and due to my lack of knowledge within the area, does this change all Status and Response Polling on Agent Polling Nodes from Agent to ICMP?

0 Kudos
Level 12

This is the screen I am meaning.

I want to change all Agent to use the highlighted ICMP for Status and Response. If I knew its location in the DB I could do something about it...I dont want to click this 2500 times

pastedImage_0.png

0 Kudos

Have you looked at the NodesData table

0 Kudos

This is the Audit Message -

changed Technology 'Status & Response Time' Polling 'Status & Response Time ICMP' assignment on NetObject 'Node:%node name%' state to 'Enabled=True

0 Kudos

Hi Smiffy, I have a feeling this is in the Pollers table, although methinks there are risks involved by making changes there!

0 Kudos

I am sure there are risks

But to not offer this option in bulk is madness.  I would be backing up the db prior to doing any changes.

I suspect I am not joining tables correctly to get all the info that I need.

0 Kudos

Yes, but there is nothing within there that jumps out as being the correct area to edit

0 Kudos
Level 12

Does anyone have a clue with this?

I have looked through the DB and can't see properties for this anywhere...anyone know where it is?

0 Kudos