How many consoles are connected to my RMS?


This discussion comes up quite a bit.

There are a couple ways to track this data….  even to alert us if it breaches a threshold.

 

One way to look at the number of connected consoles, is to examine the number of users that are connected to the SDK service.  We can do this via powershell, and perfmon:

 

In powershell, this will show each connection to the SDK – whether it be a console session, or powershell session, or some other SDK connection, like managed code running:

$mgc=get-managementgroupconnection
$mgc.ManagementGroup.GetConnectedUserNames()

Here is a one liner version:

Get-ManagementGroupConnection | foreach-object {$_.ManagementGroup.getConnectedUserNames()}

If you’re looking for the actual NUMBER of users connected

Get-ManagementGroupConnection | foreach-object {$_.ManagementGroup.getConnectedUserNames()} | Measure-Object

 

That is great…. however, as stated, this shows SDK connections…. not specific to the console.  I dont know of a way offhand to demonstrate which are true CONSOLE connections… but unless you run a lot of SDK processes like timed scripts against the SDK… most will be consoles in a typical environment.

 

Another way to view connections is via Perfmon.  The perf object "OpsMgr SDK Service\Client Connections" and "OpsMgr SDK Service\Client Connections using cache"  From what I can tell offhand, the "using cache" counter is the same as connected clients, minus the 2 default SDK connections from the service account.

We don’t have a rule collecting this by default.  However, you can create a collection rule, or even a performance threshold rule to alert you when this count goes above what you feel is supportable in your environment.  Here is an example:  (Note – Root Management Server is a good target for these rules/monitors… since it will be the only role with the SDK service running)

image

 

And the output of a monitoring view you can create:

 

image

 

 

 

For reporting purposes – you can see “connections” to the SDK – by writing an event collections rule for the following events, which is logged on each console session or powershell session that connects to the SDK:  (this is logged on the RMS only)

 

Event Type:      Information
Event Source:   OpsMgr SDK Service
Event Category:            None
Event ID:          26328
Date:                10/16/2008
Time:                9:23:01 AM
User:                N/A
Computer:         OMRMS
Description:
A new client has connected. 
UserName: OPSMGR\adadmin
SessionId: uuid:12e8d840-9cca-45df-b889-db39203136e0;id=15

Event Type:      Information
Event Source:   OpsMgr SDK Service
Event Category:            None
Event ID:          26329
Date:                10/16/2008
Time:                9:24:04 AM
User:                N/A
Computer:         OMRMS
Description:
A client has disconnected. 
UserName: OPSMGR\adadmin
SessionId: uuid:12e8d840-9cca-45df-b889-db39203136e0;id=15

 

However – this won’t show you good concurrence…. just “who” is using the console…. and how often connections are made and disconnected.  Since the username is a parameter….. you could potentially write reports and examine your most common console users, etc.

 

So – we have the ability to:

1.  See "who is connected right now"  – Powershell

2.  Count the client connections right now – Powershell and Perfmon.

3.  Collect the client count from the RMS – Perfmon rule

4.  Alert when it reaches a threshold we set – Perfmon Monitor

5.  Collect and report on actual user connections – Event rule and report.

Comments (11)

  1. How we can find if operator console is opened or web console?

  2. Dominique says:

    Hello,

    I checked the Windows Logs and could not find any 26328 or 26329 Events Application, Security or System. Am I in the right place?

    Thanks,

    Dom

  3. Dominique says:

    Wrong place it was

    Operations Manager Log

    Sorry to wake you up 🙂

    Thanks,

    Dom

  4. Dominique says:

    Hello Kevin,

    "even a performance threshold rule to alert"

    Is it a Monitor or a Collection Rule?

    I’m confused?

    Thanks,

    Dom

  5. Dominique says:

    Kevin, (K as KING!!! 🙂

    I got the powershell, perfmon, rule, alert working…

    Looking for

    5.  Collect and report on actual user connections – Event rule and report.

    Thanks,

    Dom

  6. Diane Whiteley says:

    How can I get this one liner to work with SCOM 2012?

    Get-ManagementGroupConnection | foreach-object {$_.ManagementGroup.getConnectedUserNames()}

  7. DSloyer says:

    Get-SCOMManagementGroupConnection | …

  8. Dean says:

    Hmmm.  this doesnt seem to work for SCOM 2012.  Anyone know what the new syntax might be??

    The term 'Get-ManagementGroupConnection' is not recognized as the name of a cmdlet, function, script file, or operable

    program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

    At line:1 char:30

    + Get-ManagementGroupConnection <<<<  | foreach-object {$_.ManagementGroup.getConnectedUserNames()}

       + CategoryInfo          : ObjectNotFound: (Get-ManagementGroupConnection:String) [], CommandNotFoundException

       + FullyQualifiedErrorId : CommandNotFoundException

  9. Raoul says:

    For 2012

    #Connect to the SCOM 2012 Management Group
    $ScomServer = ‘yourscommanagementserver’
    Import-Module OperationsManager
    $MGConn = New-SCOMManagementGroupConnection -ComputerName $ScomServer

    #Retrieve the Microsoft.EnterpriseManagement.ManagementGroup object for the current management group.
    $MG = get-scommanagementgroup

    #Retrieve the list of connected users
    $MG.GetConnectedUserNames()

  10. Raoul says:

    Is there also a way to disconnect specific sessions?