Quantcast
Channel: THWACK: All Content - Orion SDK
Viewing all 2677 articles
Browse latest View live

PerfStack API

$
0
0

Wondering if there is any documentation on the new perfstack API endpoint. /api2/perfstack/metrics


How to find NTA database server in SWQL

$
0
0

I know that in the SQL db you can find it with

SELECT * FROM [dbo].[NetFlowGlobalSettings]

where KeyName = 'NetFlowStorageAddress'

but is there a SWQL equivalent table or somewhere else that would give me the IP or hostname for the NTA db server?  I haven't been able to find it so far.

How to remove duplicated audit events

$
0
0

Hi,

 

Can you show me how to remove duplicated audit events from this query?

 

SELECT o.TimeLoggedUtc, o.AccountID, o.AuditEventMessage, n.DisplayName, o.AuditingActionType.ActionTypeDisplayName, cp.OS_Environment, cp.os_admin, cp.site_name, cp.mute_node, n.ipaddress, cp.os_type, cp.Site_Server_Room_Rak, cp.Site_Server_Room_Row, n.status, n.childstatus, n.DetailsUrl, o.networknode, n.nodeid

FROM Orion.AuditingEvents o 

left JOIN Orion.Nodes n ON o.NetworkNode=n.NodeID 

left join orion.nodescustomproperties cp ON o.networknode=cp.nodeid

WHERE cp.mute_node = 'true' and AuditEventMessage like '%Mute_Node% to %True%' and NetworkNode is not NULL and ActionTypeID = 30

order by TimeLoggedUtc DESC 

 

 

I know there's a new built-in Mute feature with SAM 6.4, however I can't transition to that method yet, so thanks in advance.

SQWL Query is valid on the SDK, but showing invalid as SW datasource

$
0
0

Hi,


When I run this query on SWQL, validated, however when I try to add this same swql query as a custom resource, it's showing an invalid query.  I believe it may have to do with LEFT OUTER JOIN Orion.NodesCustomProperties AS cp ON AlertSup.id = cp.nodeid

 

 

SELECT DISTINCT

       EntityUri, SuppressFrom, SuppressUntil, ToLocal(SuppressFrom) AS [LocalSuppressFrom], ToLocal([SuppressUntil]) AS [LocalSuppressUntil],

       CASE

          WHEN EntityUri LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%' AND EntityUri NOT LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/%'

             THEN N.Caption

          WHEN EntityUri LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Applications/ApplicationID=%'

             THEN AA.FullyQualifiedName

          ELSE 'SomethingElse'

       END AS Element,

       CASE

          WHEN EntityUri LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%' AND EntityUri NOT LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/%'

             THEN N.DetailsUrl

          WHEN EntityUri LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Applications/ApplicationID=%'

             THEN AA.DetailsUrl

          ELSE '<a href="/Orion/SummaryView.aspx">SomethingElse</a>'

       END AS DetailsUrl,

       CASE

          WHEN EntityUri LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%' AND EntityUri NOT LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/%'

             THEN N.Status

          WHEN EntityUri LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Applications/ApplicationID=%'

             THEN AA.Status

          ELSE 30

       END AS Status,

       AE.AccountID, N.ipaddress, cp.os_type, cp.os_environment, cp.os_admin, cp.site_name, cp.site_server_room_row, cp.site_server_room_rak

FROM Orion.AlertSuppression AS AlertSup

LEFT OUTER JOIN Orion.Nodes AS N ON AlertSup.EntityUri = N.Uri

LEFT OUTER JOIN Orion.APM.Application AS AA ON AlertSup.EntityUri = AA.Uri

LEFT OUTER JOIN Orion.AuditingEvents AS AE ON AE.AuditEventMessage LIKE CONCAT('%', CASE

          WHEN EntityUri LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%' AND EntityUri NOT LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/%'

             THEN N.NodeName

          WHEN EntityUri LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Applications/ApplicationID=%'

             THEN AA.Name

          ELSE 'Wrong'

       END, '%') AND [EntityUri] LIKE CONCAT('%=', AE.NetObjectID)

INNER JOIN Orion.AuditingActionTypes AS AT ON AE.ActionTypeID = AT.ActionTypeID

LEFT OUTER JOIN Orion.NodesCustomProperties AS cp ON AlertSup.id = cp.nodeid

WHERE [AT].ActionTypeDisplayName LIKE '%mute%'

 

Thank you.

Automating node additions e2e: including Hardware Health Sensors

$
0
0

Hello,

 

I've been working on automating the addition of nodes to Solarwinds, and I had assumed that would be a routine and well documented task.  However I have struggled to find consolidated documentation that walks through the process definitively in any way.  Usually when this happens I assume PEBCAK as a) I'm new to Solarwinds so I'm probably doing something wrong, b) I'm a SysEngineer and not a networking guy so much is unfamiliar, and c) sometimes I don't know the right questions to ask.  So if this question is malformed or otherwise ignorant I apologize, but I need some help.

 

I have gotten relatively far using the examples from PowerOrion and from this forum.  Currently I can get a node added, set properties both standard and custom, configure interfaces, and add pollers (enabling things like Routing, CPU&Memory, VLAN, Topology, etc. monitoring).

However I am stuck at that last tick box of enabling Hardware Health Sensors.  I have found this conversation Adding Hardware Health Details , in which tdanner posted on 7/7/15:

It is still not possible to add just the hardware health polling, but you can use the discovery API to add everything for a node, including hardware health. See this post for details: Re: Re: How do we programmatically discover the non-interface properties [in Orion] and enable them"

I can follow the sample script in that post to discover my node rather than add it, and it comes in fine.  However, I still see the same behavior as when I add the node directly in that the Hardware Health Sensors resource is not selected.  This is the part where I assume I must be doing something wrong.  tdanner says it works; I do not experience it working....

 

I did not see any specific flag in the sample XML for discovery that stood out to me as a "Turn Health Sensors ON" attribute.  Did I miss something?  Is there one to add?  Do I need to change the default discovery settings in Orion?

 

When I run Network Sonar Discovery against my discovery IP (which is IPv6 if that matters) I find the node fine, it adds, and Health Hardware Sensors is enabled by default.

Why isn't the scripted discovery also enabling HHS by default?

 

And to significantly truncate my rant: Adding nodes via script should already be simple.  I think many people would want to do this.  I had hoped it would be a well documented process.  Please consider improvements to this process for the next release.

 

Thanks for any input and feedback.

Dana

SWQL Query: Select distinct will result in an information service failed

$
0
0

Hi, can someone tell me why, if I run this query under a "Query Resource", it will fail with an error: Error: A query to the SolarWinds Information Service failed.  However, if I remove the select "DISTINCT", it will run the query?

 

Can you not use the "distinct"?  I know I can run this as a custom table, but it just looks better with the query resource view.

 

SELECT distinct

      ToLocal([SuppressFrom]) AS [LocalSuppressFrom],

       ToLocal([SuppressUntil]) AS [LocalSuppressUntil],

CASE

          WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%' AND [EntityUri] NOT LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/%'

             THEN [N].[Caption]

          WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Interfaces/InterfaceID=%'

             THEN [I].[FullName]

          WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Applications/ApplicationID=%'

             THEN [AA].[FullyQualifiedName]

          ELSE 'SomethingElse'

       END AS [Element],

       CASE

          WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%' AND [EntityUri] NOT LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/%'

             THEN [N].[Status]

          WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Interfaces/InterfaceID=%'

             THEN [I].[Status]

          WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Applications/ApplicationID=%'

             THEN [AA].[Status]

          ELSE 30

       END AS [Status],

       [AE].AccountID

FROM Orion.AlertSuppression AS [AlertSup]

LEFT OUTER JOIN Orion.Nodes AS [N]

   ON [AlertSup].[EntityUri] = [N].[Uri]

LEFT OUTER JOIN Orion.NPM.Interfaces AS [I]

   ON [AlertSup].[EntityUri] = [I].[Uri]

LEFT OUTER JOIN Orion.APM.Application AS [AA]

   ON [AlertSup].[EntityUri] = [AA].[Uri]

LEFT OUTER JOIN Orion.AuditingEvents AS [AE]

   ON [AE].AuditEventMessage LIKE CONCAT('%', CASE

          WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%' AND [EntityUri] NOT LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/%'

             THEN [N].[NodeName]

          WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Interfaces/InterfaceID=%'

             THEN [I].[InterfaceCaption]

          WHEN [EntityUri] LIKE 'swis://%/Orion/Orion.Nodes/NodeID=%/Applications/ApplicationID=%'

             THEN [AA].[Name]

          ELSE 'Wrong'

       END, '%') AND [EntityUri] LIKE CONCAT('%=', [AE].NetObjectID)

INNER JOIN Orion.AuditingActionTypes AS [AT]

   ON [AE].ActionTypeID = [AT].ActionTypeID

WHERE [AT].ActionTypeDisplayName LIKE '%mute%'

SolarWinds PerfStack API

$
0
0

Since this is undocumented at the moment, I decided to start digging around.

API Endpoint

/api2/perfstack

https://swservername/api2/perfstack

Query Paramaters
  • count
  • resolution
  • startTime
  • endTime
  • details
  • relations
PerfStack Query Paramaters
  • offset
  • length
  • orderBy
  • sort
  • displayName
  • status
  • type
  • user
  • updateLastAccessed

MetaData

Endpoint: metadata/

States

Endpoint: metadata/states

Lists All States

https://swservername/api2/perfstack/metadata/states

Lists a single state by ID

metadata/states/{statusIds}

Example: https://swservername/api2/perfstack/metadata/states/1

Types

Endpoint: metadata/types

List all Types

https://swservername/api2/perfstack/metadata/types

List specific Type

metadata/types/{entityTypeCdl}

Entities

Endpoint:  entities/

Query Parameters

  • Length
  • Offset
Get Entity Info

Endpoint: entities/{entityIdsCdl}

 

Filters

  • entityId

Query Parameters – Used to Get Metrics

  • Count
  • Resolution
  • StartDate
  • EndDate

 

Examples:

Gets entity information for a single node based on entityID

https://swservername/api2/perfstack/entities/0_Orion.Nodes_2055/

 

Get Metrics for entityID, returns first measurement for each metric

https://swservername/api2/perfstack/entities/0_Orion.Nodes_2055/?count=1

Get Available Metrics For Entity

Endpoint:  entities/{entityIdsCdl}/metrics

 

Filters

  • entityId

Query Parameters – Used to Get Metrics

  • Count
  • Resolution
  • StartDate
  • EndDate

 

Examples:

Gets all metric types for a specific entity

https://swservername/api2/perfstack/entities/0_Orion.Nodes_2055/metrics

 

Get Metrics for entityID, returns first measurement for each metric

https://swservername/api2/perfstack/entities/0_Orion.Nodes_2055/metrics/?count=1

Get Relationships for Entity

Endpoint: entities/{entityIdsCdl}/relationships

 

Example: https://swservername/api2/perfstack/entities/0_Orion.Nodes_2055/relationships

States

Endpoint: entities/states

 

List all states

https://swservername/api2/perfstack/entities/states

 

List state by ID

Endpoint:  /states/{statusIds}

Example: https://swservername/api2/perfstack/entities/states/2

Types

Endpoint:  entities/types

 

List all Types

https://swservername/api2/perfstack/entities/types

 

List by TypeID

Endpoint:  entities/types/{entityTypeCdl}

Metrics

Endpoint: metrics/

 

Filters

  • entityId
  • metricId

Query Parameters

  • Count
  • Resolution
  • StartDate
  • EndDate
Get Measurement For Entity

Endpoint: metrics/{id}

Get Groups For Entity

Endpoint: metrics/{entityId}/groups

Get Measurement For Group

Endpoint: metrics/{entityId}/groups/{groupId}

Orion SDK with PowerShell - manage/unmanage multiple nodes

$
0
0

I've been able to script unmanaging and managing nodes in powershell. However, for 400+ nodes, this ends up taking quite a while. Via script, it takes about 7 minutes to unmanage the nodes and over 10 minutes to remanage them. Doing this from the website takes about 25 seconds and no more than a minute, respectively. My guess is that the website somehow group updates the database instead of doing it one at a time. Anyone else seen this or have any idea how to do more than one node at a time? Below is sample code for how I am unmanaging a single node:

 

Invoke-SwisVerb $swis Orion.Nodes Unmanage @("N:$nodeid",$start,$end,"false")

 

Thanks for any advice you have!


Verbs and their parameters for IPAM.IPNode in addition to 'UpdateManyStatus'??

$
0
0

PREFACE:

  1. I'll be referring to the blog: How to use the IPAM API and get "Free IP Address" specifically a post by mtokarz on June 12, 2014 2:35PM in response to jgovednik
  2. I am also aware of and have voted for the feature request: Add SWIS features to IPAM
  3. I have also referred to this question post: Re: Full documentation of Orion SDK verbs? to see if any verbs exist for IPAM.IPNode, but none that I can find.

 

Following the post mentioned in #1, I am able to successfully find the next free ip address and update the status of an IP address in Solarwinds using Powershell:

 

Pre-reqs: Download the Orion SDK: solarwinds/OrionSDK · GitHub

 

Getting a Free IP Address:

# START Connect to SWIS

Add-PSSnapin SwisSnapin

$hostname = "mysolarwinds"

$username = "myuser"

$password = ConvertTo-SecureString -String "mypassword" -asplaintext -force

$creds = New-Object -TypeName System.Management.Automation.PSCredential -Argumentlist $username, $password

$swis = Connect-Swis -host $hostname -Credential $creds

# END Connect to SWIS


Function SWOIPAM-GetFreeIpAddress($subnetAddress)

{

  $ipaddress = Get-SwisData $swis 'SELECT TOP 1 I.DisplayName FROM IPAM.IPNode I WHERE Status=2 AND I.Subnet.Address=@subnetAddress AND I.DnsBackward IS NULL' @{subnetAddress = $subnetAddress}

  return $ipaddress

}


$subnetProvision = 'X.X.X.X'

SWOIPAM-GetFreeIpAddress($subnetProvision)

 

Where:

  • $subnetProvision = Desired subnet to get next available IP Address from

 

Updating the Free IP Address' status from 'Available' to 'Used':

$postParams = @{__EVENTTARGET='ctl00$BodyContent$ctl05';__EVENTARGUMENT='';'ctl00$BodyContent$Username'='admin';'ctl00$BodyContent$Password'='password'}

Invoke-WebRequest -Uri http://mysolarwinds:8787/Orion/Login.aspx?autologin=no -Method POST -SessionVariable s -Body $postParams

$postParams =  @{'entity'='IPAM.IPNode';'verb'='UpdateManyStatus';'ObjectId'='129';'ipstatus'='1';'ids'='4'}

Invoke-WebRequest -Uri http://mysolarwinds:8787/Orion/IPAM/ExtCmdProvider.ashx -Method POST -WebSession $s -Body $postParams

 

Where:

  • ObjectID : type = number => SubnetId from IPAM.IPNode
    • One can obtain the SubnetId with the query: SELECT SubnetId, Address, FriendlyName, VLAN FROM IPAM.Subnet
  • ipstatus : type = number => where 1 (Used), 2 (Available), 4 (Reserved)
  • ids : type = number => the 4th octet of the IP Address you want to update in the specified subnet

 

THE QUESTION:

If the verb 'UpdateManyStatus' (with the params of ObjectID, ipstatus and ids) exist for IPAM.IPNode to update a particular IP address' status,

(@{'entity'='IPAM.IPNode';'verb'='UpdateManyStatus';'ObjectId'='129';'ipstatus'='1';'ids'='4'}),

are there any other verbs or documentation of verbs with necessary parameters for IPAM.IPNode that will update the DnsBackward (hostname), Comments and SkipScan fields for a particular IP Address??


If I can find out the verbs and their necessary parameters, then I would be able to update via the same method used for updating an IP Address' status in Powershell.

 

Thank you

Node Management

$
0
0

We have a large environment where over time certain polling engines will aquire more nodes than others.  In the past I have monthly/quartly re-assigned these nodes to their correct polling engines manually via GUI.  Because we use SolarWinds for asset inventory the scan jobs must be up to date.  I only have polling engines scan networks where that polling engines devices live.  This way I don't get a bunch of "changed" notices via discovery.  From my understanding a polling engine during a discovery will think it found new/changed devices even if that device is managed by another polling engine. 

 

The objective of the script is to place nodes based on their IP to a specific polling engine.  at the end of the script I added a clause that excludes devices who are already on the correct polling engine.  I do not want the app to set the EngineId if already correct (And EngineID <> 2)

 

If I run the script with the two arguments below (WHERE ip_address LIKE '10.22.%' AND EngineId <> '2'" ) The script does what its suppose to do.  It  only applies the engine change if the queried node is not already on the specified engine.

 

$uris=Get-SwisData$swis"SELECT uri FROM Orion.Nodes WHERE ip_address LIKE '10.22.%' AND EngineId <> '2'"

 

As soon as I add another argument such as another IP filter, the script ignores the last argument EngineId <> 2

 

$uris=Get-SwisData$swis"SELECT uri FROM Orion.Nodes WHERE ip_address LIKE '10.22.%' OR ip_address LIKE '10.210.%' AND EngineId <> '2'"

 

I'm thinking I am missing a small piece of syntax, any help is greatly appreciated.   As always, a big thanks to the SDK veterans, you really do make all this possible.  Thanks!

 

Full script below (security removed)

 

$ErrorActionPreference = 'Stop'

#Add the snapin
Add-PSSnapin SwisSnapin

#create a connection to solarwinds

#swis = Connect-Swis -Hostanme $hostname -Trusted
$swis = Connect-Swis -Hostname $hostname -Username $username -Password $password

$targetEngineId =@{ EngineId = 3; }

$uris = Get-SwisData $swis "SELECT uri FROM Orion.Nodes WHERE ip_address LIKE '10.22.%' OR ip_address LIKE '10.210.%' AND EngineId <> '2'"

$uris | Set-SwisObject $swis -properties $targetEngineId

 

 

 

Entity Relationships Querying with SWQL

$
0
0

WIth the new SDK released I noticed the Metadata entities, not sure if these existed before hand, anyways.

 

Metadata.Relationship

Metadata.RelationshipMetadata

Metadata.Entity

 

Am I correct in assuming these can be used to get all relationships based on a entity ID? If so are there any examples someone can provide on how to properly query this. If not can more context be provided on what the metadata entities provide. I was hoping to be able to get all relationships from by passing in the nodeID or entityID, simliar to how the perfstack API operates. I could then populate some nice group views.

Is there a data dictionary for the Orion database

$
0
0

Looking for information beyond the basic barebones type of field schema, something that describes the utility for anything beyond the obvious fields.

 

Thanks

Creating a CustomPollerAssignmentOnNode returns: 400 Client Error: Sequence contains no elements

$
0
0

In migrating from 11.5 to 12.1, I'm rebuilding my entire 5K-node system from scratch (it's a long story).

 

In doing so, I'm trying to migrate code I have written in Python using the (latest and greatest) SDK to handle custom poller assignments for various devices (among other things).

 

This code worked in 11.5, but I'm getting a '400 Client Error: Sequence contains no elements' from the requests package when I call:

        swis.create('Orion.NPM.CustomPollerAssignmentOnNode', NodeID=NodeID, CustomPollerID=CustomPollerID)

    File "build/bdist.linux-x86_64/egg/orionsdk/swisclient.py", line 34, in create

    File "build/bdist.linux-x86_64/egg/orionsdk/swisclient.py", line 59, in _req

    File "/usr/local/lib/python2.7/dist-packages/requests/models.py", line 851, in raise_for_status

    raise HTTPError(http_error_msg, response=self)

requests.exceptions.HTTPError: 400 Client Error: Sequence contains no elements

 

Did something significant change, in the way we're supposed to create custom poller assignments?

 

It's probably something about version mismatches between Python packages again.

Powershell - get-swisdata

$
0
0

Trying to get a handle on this....I want to work with unmanaging one node, and trying to get the nodeID using something like below.

This is in the testing phase, trying to get handle on the PS commands from SDK

I can get a list from:

get-swisdata $swis "SELECT NodeID, Caption FROM Orion.Node"

 

I am trying to test using one node named - dtcorp20013.  Thought I could use:

get-swisdata $swis "SELECT NodeID, Caption FROM Orion.Nodes Where Caption like dtcorp20013"

I tried using a variable and got the same error message below....

 

But I get an error:

Get-SwisData : Cannot resolve property dtcorp20013

At line:1 char:13

+ get-swisdata <<<<  $swis "SELECT NodeID, Caption FROM Orion.Nodes Where Caption like dtcorp20013"

    + CategoryInfo          : InvalidOperation: (:) [Get-SwisData], FaultException`1

    + FullyQualifiedErrorId : SwisError,SwisPowerShell.GetSwisData

 

Any thoughts, is there more detailed documentation on the commands, properties, etc (anything along the lines of SS64?)

Orion SDK Python Class

$
0
0

After lots of research I've created a class for my django app, I very supportive of open source and as there is not much for python around thought I'd share it with you all.

 

Orion SDK - Python Class · GitHub

 

Enjoy.

Donald


Automated creation of NPM server nodes including specific node resources

$
0
0

I have a PS script that utilizes both the SDK and the Internet Explorer PS Object.  The script does the following:

Script Input Arguments:  Script Action (Currently just adds, but in the future it would delete, modify custom props, etc...), Node Name, Node's IP Address, Orion Poller name, server profile csv file (contains the custom properties to populate).  Powershell syntax:

Script Requirements: 

  • Discovery profile to be used by the script only.  The profile should include the SNMP strings required to add an SNMP node. Currently this is hard coded in the script.
  • csv File that contains custom property names as headers and the property values.  The custom property fields need to already exist.  You can modify the script fairly easily to read in your custom props.
  • (optional) a logfile name/path hard coded in the script that outputs script process and actions.
  • Internet Explorer browser (tested on v8 and v9)
  • I have not tested this on an NPM SSL website.

Script Syntax: <script name> add <node (server) name> <node IP Address> <Orion Poller Name> <server Profile Name>

Script Process Overview:

  • Prompts for SW credentials - Can be modified to use specific credentials without prompting.
  • Reads in arguments
  • Connects to Orion instance on the poller name specified.
  • Reads the custom properties from the csv file into a hash table
  • Starts discovery process
    • Modifies the discovery profile (currently coded in the script) and changes the discovery scope to only scan the IP address of the node (using the node's IP address argument)
    • logs into website using previously supplied credentials
    • Starts running the discovery scan using the modified discovery profile.
    • Adds the discovered node including it's resources found during the discovery.
    • Verifies the node has been added.
  • Updates the node's custom properties with the values from the csv file.
  • Removes specific node resources.  (I used this to remove the many virtual adapters found on Windows 2008 servers), but can be modified to remove other node resources as well.

 I don't want to post the script yet because I would like it to be more scripter friendly, but contact me if you are interested.

Chris

Automating node additions e2e: including Hardware Health Sensors

$
0
0

Hello,

 

I've been working on automating the addition of nodes to Solarwinds, and I had assumed that would be a routine and well documented task.  However I have struggled to find consolidated documentation that walks through the process definitively in any way.  Usually when this happens I assume PEBCAK as a) I'm new to Solarwinds so I'm probably doing something wrong, b) I'm a SysEngineer and not a networking guy so much is unfamiliar, and c) sometimes I don't know the right questions to ask.  So if this question is malformed or otherwise ignorant I apologize, but I need some help.

 

I have gotten relatively far using the examples from PowerOrion and from this forum.  Currently I can get a node added, set properties both standard and custom, configure interfaces, and add pollers (enabling things like Routing, CPU&Memory, VLAN, Topology, etc. monitoring).

However I am stuck at that last tick box of enabling Hardware Health Sensors.  I have found this conversation Adding Hardware Health Details , in which tdanner posted on 7/7/15:

It is still not possible to add just the hardware health polling, but you can use the discovery API to add everything for a node, including hardware health. See this post for details: Re: Re: How do we programmatically discover the non-interface properties [in Orion] and enable them"

I can follow the sample script in that post to discover my node rather than add it, and it comes in fine.  However, I still see the same behavior as when I add the node directly in that the Hardware Health Sensors resource is not selected.  This is the part where I assume I must be doing something wrong.  tdanner says it works; I do not experience it working....

 

I did not see any specific flag in the sample XML for discovery that stood out to me as a "Turn Health Sensors ON" attribute.  Did I miss something?  Is there one to add?  Do I need to change the default discovery settings in Orion?

 

When I run Network Sonar Discovery against my discovery IP (which is IPv6 if that matters) I find the node fine, it adds, and Health Hardware Sensors is enabled by default.

Why isn't the scripted discovery also enabling HHS by default?

 

And to significantly truncate my rant: Adding nodes via script should already be simple.  I think many people would want to do this.  I had hoped it would be a well documented process.  Please consider improvements to this process for the next release.

 

Thanks for any input and feedback.

Dana

Active Time in All Active Alerts

$
0
0

Hi,

    My customer is a service provider with multiple client and they want to display alters based on customer which is not supported by default hence I have created a SWQL query to list all alerts based on customer which is working.

 

My issue is in the default 'All Active Alerts' there's a column called 'Active time' which display for how long given alert is active, I would like to know on which SQL table this data is stored.

Custom Chart - To specify both X & Y Axis

$
0
0

My requirement is to count all alerts based on severity and then present its value as bar graph.

 

I have written the following query in this regard.

 

Select  C.Severity,  Count (*) AS Total from AlertStatusView A

    INNER JOIN AlertObjects B ON A.AlertObjectID = B.AlertObjectID

                INNER JOIN AlertConfigurations C ON B.AlertID = C.AlertID

    INNER JOIN NodesCustomProperties D ON D.NodeID = B.RelatedNodeId

                Group by C.Severity having COUNT (*) >= 1

                Order by C.Severity DESC

 

I get two outputs severity & total (sum of alerts for each sev).

 

I want to display severity in x-axis and total in left y-axis but in custom chart there’s no option to plot x-axis and this is by default assigned to timestamp.

 

Please advise how I can plot this graph or if there are any other ways.

Can any one supply a REST example of how to define a Node in Solarwinds

$
0
0

I am developing an integration agent for SolarWindws and would like to use the REST API to add nodes to SolarWindws and change the system name

Viewing all 2677 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>