Advertisement
Guest User

Get Active Directory metrics for InfluxDB

a guest
May 22nd, 2018
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $MetricsToGather = @{
  2.     ################## Active Directory ###################
  3.     '\DirectoryServices(*)\Base searches/sec'                        = 'BaseSearchesSec'
  4.     '\DirectoryServices(*)\Database adds/sec'                        = 'DatabaseAddsSec'
  5.     '\DirectoryServices(*)\Database deletes/sec'                     = 'DatabaseDeletesSec'
  6.     '\DirectoryServices(*)\Database modifys/sec'                     = 'DatabaseModifysSec'
  7.     '\DirectoryServices(*)\Database recycles/sec'                    = 'DatabaseRecyclesSec'
  8.     '\DirectoryServices(*)\Digest Binds/sec'                         = 'DigestBinds'
  9.     '\DirectoryServices(*)\DRA Inbound Bytes Total/sec'              = 'DRAInboundBytesTotalSec'
  10.     '\DirectoryServices(*)\DRA Outbound Bytes Total/sec'             = 'DRAOutboundBytesTotalSec'
  11.     '\DirectoryServices(*)\DRA Pending Replication Operations'       = 'DRAPendingReplicationOperations'
  12.     '\DirectoryServices(*)\DRA Pending Replication Synchronizations' = 'DRAPendingReplicationSynchronizations'
  13.     '\DirectoryServices(*)\DRA Sync Requests Made'                   = 'DRASyncRequestsMade'
  14.     '\DirectoryServices(*)\DRA Sync Requests Successful'             = 'DRASyncRequestsSuccessful'
  15.     '\DirectoryServices(*)\LDAP Bind Time'                           = 'LDAPBindTime'
  16.     '\DirectoryServices(*)\LDAP Client Sessions'                     = 'LDAPClientSessions'
  17.     '\DirectoryServices(*)\LDAP Closed Connections/sec'              = 'LDAPClosedConnectionsSec'
  18.     '\DirectoryServices(*)\LDAP New Connections/sec'                 = 'LDAPNewConnections'
  19.     '\DirectoryServices(*)\LDAP New SSL Connections/sec'             = 'LDAPNewSSLConnectionsSec'
  20.     '\DirectoryServices(*)\LDAP Searches/sec'                        = 'LDAPSearchesSec'
  21.     '\DirectoryServices(*)\LDAP Writes/sec'                          = 'LDAPWritesSec'
  22.     ########### Security System-Wide Statistics ###########
  23.     '\Security System-Wide Statistics\NTLM Authentications'          = 'NTLMAuthentications'
  24.     '\Security System-Wide Statistics\Kerberos Authentications'      = 'KerberosAuthentications'
  25.     '\Security System-Wide Statistics\Digest Authentications'        = 'DigestAuthentications'
  26.     ################## Embedded Database ##################
  27.     # '\Database(*)\Database Cache % Hit'                              = 'DatabaseCachePercentHit'
  28.     # '\Database(*)\Database Page Fault Stalls/sec'                    = 'DatabaseCachePageFaultStallsSec'
  29.     ######################### DNS #########################
  30.     '\DNS\Dynamic Update Queued'                                     = 'DynamicUpdateQueued'
  31.     '\DNS\Dynamic Update Received'                                   = 'DynamicUpdateReceived'
  32.     '\DNS\Dynamic Update Received/sec'                               = 'DynamicUpdateReceivedSec'
  33.     '\DNS\Dynamic Update Rejected'                                   = 'DynamicUpdateRejected'
  34.     '\DNS\Dynamic Update TimeOuts'                                   = 'DynamicUpdateTimeOuts'
  35.     '\DNS\Recursive Queries'                                         = 'RecursiveQueries'
  36.     '\DNS\Recursive Queries/sec'                                     = 'RecursiveQueriesSec'
  37.     '\DNS\Recursive Query Failure'                                   = 'RecursiveQueryFailure'
  38.     '\DNS\Recursive Query Failure/sec'                               = 'RecursiveQueryFailureSec'
  39.     '\DNS\Recursive Send TimeOuts'                                   = 'RecursiveSendTimeOuts'
  40.     '\DNS\Recursive TimeOut/sec'                                     = 'RecursiveTimeOutSec'
  41.     '\DNS\Secure Update Failure'                                     = 'SecureUpdateFailure'
  42.     '\DNS\Secure Update Received'                                    = 'SecureUpdateReceived'
  43.     '\DNS\Secure Update Received/sec'                                = 'SecureUpdateReceivedSec'
  44.     '\DNS\TCP Query Received'                                        = 'TCPQueryReceived'
  45.     '\DNS\TCP Query Received/sec'                                    = 'TCPQueryReceivedSec'
  46.     '\DNS\TCP Response Sent'                                         = 'TCPResponseSent'
  47.     '\DNS\TCP Response Sent/sec'                                     = 'TCPResponseSentSec'
  48.     '\DNS\Total Query Received'                                      = 'TotalQueryReceived'
  49.     '\DNS\Total Query Received/sec'                                  = 'TotalQueryReceivedSec'
  50.     '\DNS\Total Response Sent'                                       = 'TotalResponseSent'
  51.     '\DNS\Total Response Sent/sec'                                   = 'TotalResponseSentSec'
  52.     '\DNS\UDP Message Memory'                                        = 'UDPMessageMemory'
  53.     '\DNS\UDP Query Received'                                        = 'UDPQueryReceived'
  54.     '\DNS\UDP Query Received/sec'                                    = 'UDPQueryReceivedSec'
  55.     '\DNS\UDP Response Sent'                                         = 'UDPResponseSent'
  56.     '\DNS\UDP Response Sent/sec'                                     = 'UDPResponseSentSec'
  57. }
  58.  
  59. $Counters = Get-Counter ([string[]]$MetricsToGather.Keys)
  60.  
  61. $Metrics = $Counters.CounterSamples |
  62.   ForEach-Object -Begin {
  63.     $m = @{}
  64.   } -Process {
  65.     $KeyName = $_.Path
  66.     $KeyNameWithoutMachine = $_.Path -replace '^\\\\[^\\]+' # strip \\MachineName from the beginning
  67.     $KeyNameWithAllInstances = $KeyNameWithoutMachine -replace "\($($_.InstanceName)\)","(*)"
  68.  
  69.     $MetricName = $Metrics[$KeyName,$KeyNameWithoutMachine,$KeyNameWithAllInstances] | Select-Object -First 1
  70.  
  71.     $m[$MetricName] = $_.CookedValue
  72.   } -End {
  73.     $m
  74.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement