# PRTG Message Traffic # # Load last 5 Minutes from Messagestatistics and result as XML für PRTG # http://www.paessler.com/manuals/prtg/additional_sensor_types.htm # http://www.paessler.com/manuals/prtg/exe_script_advanced_sensor.htm # http://code.google.com/p/prtg-Add-ons/wiki/PTF_Custom_Sensors_XML # http://code.google.com/p/prtg-Add-ons/wiki/PTF_Custom_Sensors # http://code.google.com/p/prtg-Add-ons/wiki/PTF_Custom_Sensors_XML#MediaStreamer # https://devcentral.f5.com/tutorials/tech-tips/monitoring-your-network-with-prtg-overview-installation-and-configuration # https://devcentral.f5.com/tutorials/tech-tips/monitoring-your-network-with-prtg-custom-sensors-part-1 # https://devcentral.f5.com/tutorials/tech-tips/monitoring-your-network-with-prtg-custom-sensors-part-2 # # 32bit PowerShell !!! # Set-ExecutionPolicy -ExecutionPolicy remotesigned # # 20121107 Ver1.0 Initial Version # 20121112 Ver1.1 Added total values as Channels # 20121120 Ver1.2 Added remove-pssession für tmp-cleanup, change absolute to diff # 20121127 Ver1.3 Revert Type to Absolute, Fixing Error Count output # 20121209 Ver1.4 Add MessageSize and RecipientCount values, Fixes duplicate variable usage $server param ( [string]$exchangeuri = "http://cas.msxfaq.net/PowerShell", $serverlist="*", # optional specify transport servers [switch]$verbose ) #write-host "Start" $sendcount = 0; $sendkbytes = 0; $receivecount= 0; $receivekbytes = 0 $totalcount = 0; $totalkbytes = 0 $msgsize1k = 0 $msgsize10k = 0 $msgsize100k = 0 $msgsize1000k = 0 $msgsize10000k = 0 $msgsize10Mmore = 0 $rcptcount1 = 0 $rcptcount5 = 0 $rcptcount10 = 0 $rcptcount20 = 0 $rcptcount50 = 0 $rcptcount100 = 0 $rcptcount100more = 0 #write-host "Loading Exchange Snapins" if (!(Get-Command "Get-OrganizationConfig" -errorAction SilentlyContinue)) { $error.removerange(0,1) # remove last error #write-host "run-statusweb4:Creating Exchange Remote Session" $session = new-pssession ` -ConfigurationName "Microsoft.Exchange" ` -ConnectionUri $exchangeuri ` -Authentication Kerberos #write-host "run-statusweb4:Import Exchange Remote Session Commandlets" import-pssession -Session $session -AllowClobber | out-null } Set-AdServerSettings -ViewEntireForest $true #write-host "Include-Exchange:End"# global settings and Code #write-host "Loading Transport Server Start" foreach ($server in (Get-TransportServer $serverlist)) { #write-host "Loading Messagetracking für Server $server" foreach ($message in (Get-MessageTrackingLog -server ($server.name) -Start (get-date).addminutes(-5))) { if ($message.EventID -eq "SEND") { #write-host "SEND" $sendcount +=1 $sendkbytes += ([int]($message.totalBytes/1024)) } elseif ($message.EventID -eq "RECEIVE") { #write-host "RECEIVE" $receivecount +=1 $receivekbytes += ([int]($message.totalBytes/1024)) #write-host "message.TotalBytes" $message.TotalBytes if ($message.TotalBytes -le 1000) { $msgsize1k+=1} elseif ($message.TotalBytes -le 10000) { $msgsize10k+=1} elseif ($message.TotalBytes -le 100000) { $msgsize100k+=1} elseif ($message.TotalBytes -le 1000000) { $msgsize1000k+=1} elseif ($message.TotalBytes -le 10000000) { $msgsize10000k+=1} else { $msgsize10more=1} #write-host "message.RecipientCount" $message.RecipientCount if ($message.RecipientCount -le 1) {$rcptcount1+=1} elseif ($message.RecipientCount -le 5) {$rcptcount5+=1} elseif ($message.RecipientCount -le 10) {$rcptcount10+=1} elseif ($message.RecipientCount -le 50) {$rcptcount50+=1} elseif ($message.RecipientCount -le 100) {$rcptcount100+=1} else {$rcptcount100more+=1} } } } $totalcount = $sendcount + $receivecount $totalkbytes = $sendkbytes + $receivekbytes #write-host "Sending XML Result to STDOUT" " Sendcount $sendcount 1 1 Count Mails Absolute Sendkbytes $sendkbytes 1 1 kB Absolute Receivecount $receivecount 1 1 Count Mails Absolute Receivekbytes $receivekbytes 1 1 kB Absolute Totalkbytes $totalkbytes 1 1 kB Absolute Totalcount $totalcount 1 1 Count Mails Absolute msgsize1k $msgsize1k 1 1 Count Mails Absolute msgsize10k $msgsize10k 1 1 Count Mails Absolute msgsize100k $msgsize100k 1 1 Count Mails Absolute msgsize1000k $msgsize1000k 1 1 Count Mails Absolute msgsize10000k $msgsize10000k 1 1 Count Mails Absolute msgsize10Mmore $msgsize10Mmore 1 1 Count Mails Absolute rcptcount1 $rcptcount1 1 1 Count Mails Absolute rcptcount1 $rcptcount1 1 1 Count Mails Absolute rcptcount5 $rcptcount5 1 1 Count Mails Absolute rcptcount10 $rcptcount10 1 1 Count Mails Absolute rcptcount20 $rcptcount20 1 1 Count Mails Absolute rcptcount50 $rcptcount50 1 1 Count Mails Absolute rcptcount100 $rcptcount100 1 1 Count Mails Absolute rcptcount100more $rcptcount100more 1 1 Count Mails Absolute Exchange Message Tracking Data Errorcount:" + ($error.count) + " " #write-host "End: ExitCode "$error.count if ($error) { #write-host "Found Errors" EXIT 1 } remove-pssession -session $session