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.

Testing SNMP on multiple Nodes

Hi,

I have to change polling engine for around 200 nodes, and for each node i have to manually test SNMP and then change the polling engine.

Is there a way via which i could test that SNMP is enabled for all those nodes and that polling engine is able to receive the same in a go.

Doing is manually for each and every device on-by-one is a time-consuming task and i am in a need to have a better approach for it.

Regards,

Ujjwal

  • In Orion you can go to Settings > Manage Nodes.

    From here you can select the nodes that need to be modified and go to edit Properties, from there you can change the Polling Engine

    pastedImage_0.png

    Once that's done you can run the query on the link below to find what servers are not responding to SNMP and fix those with issues.

    Identify monitored nodes in Orion that are no longer responding to SNMP credentials - SolarWinds Worldwide, LLC. Help an…

    -Regards

  • You could also run a discovery against the nodes with all your possible snmp credentials.  The working communities show up in the discovered nodes tables in the database and you can take a report of that and know which credentials work against which nodes. 

    Might have to set up the same discovery from each polling engine if you don't have any clue which pollers can reach which nodes.

    If you get really fancy with it you could actually just script up the whole process of changing all the communities and switching the polling engines based on the discoveries, but it's somewhat complicated to do if you aren't familiar with using the API.  This is the posh script I use to sync up ICMP nodes with the engines that their discoveries used so I could import them, it would need some tweaks to do the engineid and the snmp community but it could get you about 85% of the way there.

    <#------------- CONNECT TO SWIS -------------#>

    # load the snappin if it's not already loaded (step 1)

    if (!(Get-PSSnapin | Where-Object { $_.Name -eq "SwisSnapin" })) {

        Add-PSSnapin "SwisSnapin"

    }

    #define target host and credentials

    $hostname = 'localhost'

    #$user = "admin"

    #$password = "password"

    # create a connection to the SolarWinds API

    #$swis = connect-swis -host $hostname -username $user -password $password -ignoresslerrors

    $swis = Connect-Swis -Hostname $hostname -Trusted

    <#------------- ACTUAL SCRIPT -------------#>

    $query = @"

    SELECT distinct

    n.uri, n.caption, dn.IPAddress, dp.Name, e.ServerName as [DiscoveryEngine], e.engineid, n.engine.ServerName as [CurrentPollingEngine]

    , dn.SnmpVersion, dn.SubType, c.Name as [DisoveryCredential], dn.Hostname, dn.DNS, dn.Vendor, dn.MachineType, dn.SysName

    FROM Orion.DiscoveryProfiles dp

    join Orion.DiscoveredNodes dn on dn.ProfileID=dp.ProfileID

    join Orion.Nodes n on n.IP=dn.IPAddress

    join Orion.Engines e on e.EngineID=dp.EngineID

    join orion.Credential c on c.ID=dn.CredentialID

    where n.ObjectSubType='icmp' and dn.vendor is not null

    "@

    $Nodes = Get-SwisData $swis $query

    # iterate through this list and update each group

    foreach($Node in $Nodes) 

        { 

        # write out which group we're working with

        "Changing $($Node.Caption) from $Node.CurrentPollingEngine to $Node.DiscoveryEngine ..."

       

        Set-SwisObject -SwisConnection $swis -Uri $Node.uri -properties @{EngineID = $Node.engineid} 

        }