Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- add-pssnapin Microsoft.Exchange.Management.PowerShell.SnapIn
- while($true){
- $LOGSTASH_SERVER = "XXXXXXXX"
- $LOGSTASH_PORT = XXXX
- $site = [System.DirectoryServices.ActiveDirectory.ActiveDirectorySite]::GetComputerSite().Name
- $org = (get-addomain)
- $serverlist = @(Get-ExchangeServer| Where-Object {$_.IsMailboxServer -Eq $true -and $_.site -eq $org.dnsroot+"/Configuration/Sites/"+$site} | foreach name )
- $query = @(Get-MailboxDatabaseCopyStatus -server $server | select name,status,CopyQueueLength,ReplayQueueLength,LastInspectedLogTime,ContentIndexState,DatabaseSeedStatus) | convertto-json -Depth 1
- foreach ($server in $serverlist)
- {
- $data = $query
- Ship2Logstash $LOGSTASH_SERVER $LOGSTASH_PORT "$data"
- }
- Function Ship2Logstash {
- param (
- [ValidateNotNullOrEmpty()]
- [string] $server,
- [int] $port,
- $jsondata)
- $ip = [System.Net.Dns]::GetHostAddresses($server)
- $address = [System.Net.IPAddress]::Parse($ip)
- $socket = New-Object System.Net.Sockets.TCPClient($address, $port)
- $stream = $socket.GetStream()
- $writer = New-Object System.IO.StreamWriter($stream)
- $buffer = '{ "Events": ' + $jsondata + ' }' | ConvertFrom-Json
- foreach($event in $buffer.Events) {
- $x = $event | ConvertTo-Json -depth 1
- $writer.WriteLine($x)
- $writer.Flush()
- }
- $stream.Close()
- $socket.Close()
- }
- sleep 60
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement