Advertisement
Guest User

Untitled

a guest
Sep 30th, 2016
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.64 KB | None | 0 0
  1. add-pssnapin Microsoft.Exchange.Management.PowerShell.SnapIn
  2. while($true){
  3. $LOGSTASH_SERVER = "XXXXXXXX"
  4. $LOGSTASH_PORT = XXXX
  5. $site = [System.DirectoryServices.ActiveDirectory.ActiveDirectorySite]::GetComputerSite().Name
  6. $org = (get-addomain)
  7. $serverlist = @(Get-ExchangeServer| Where-Object {$_.IsMailboxServer -Eq $true -and $_.site -eq $org.dnsroot+"/Configuration/Sites/"+$site} | foreach name )
  8. $query = @(Get-MailboxDatabaseCopyStatus -server $server | select name,status,CopyQueueLength,ReplayQueueLength,LastInspectedLogTime,ContentIndexState,DatabaseSeedStatus) | convertto-json -Depth 1
  9. foreach ($server in $serverlist)
  10. {
  11. $data = $query
  12. Ship2Logstash $LOGSTASH_SERVER $LOGSTASH_PORT "$data"
  13. }
  14. Function Ship2Logstash {
  15. param (
  16. [ValidateNotNullOrEmpty()]
  17. [string] $server,
  18. [int] $port,
  19. $jsondata)
  20. $ip = [System.Net.Dns]::GetHostAddresses($server)
  21. $address = [System.Net.IPAddress]::Parse($ip)
  22. $socket = New-Object System.Net.Sockets.TCPClient($address, $port)
  23. $stream = $socket.GetStream()
  24. $writer = New-Object System.IO.StreamWriter($stream)
  25.  
  26. $buffer = '{ "Events": ' + $jsondata + ' }' | ConvertFrom-Json
  27. foreach($event in $buffer.Events) {
  28. $x = $event | ConvertTo-Json -depth 1
  29. $writer.WriteLine($x)
  30. $writer.Flush()
  31. }
  32. $stream.Close()
  33. $socket.Close()
  34. }
  35. sleep 60
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement