As i figured it out and found it not via google, here a perl script to Montor the SMTP MAIL IO of an Exchange 2010 Server.
If anyone interested in something like this (WMI Based queries like Disk IO, Diskload) post a reply
But this will only work on an Windows Host...
Code:
use strict;
use Win32::OLE('in');
use constant wbemFlagReturnImmediately => 0x10;
use constant wbemFlagForwardOnly => 0x20;
my $computer = "$ARGV[0]";
my $MessagesReceivedTotal;
my $MessagesSentTotal;
my $objWMIService = Win32::OLE->GetObject("winmgmts:\\\\$computer\\root\\CIMV2") or die "WMI connection failed.\n";
my $colItems = $objWMIService->ExecQuery(
"SELECT * FROM Win32_PerfRawData_MSExchangeTransportSMTPReceive_MSExchangeTransportSMTPReceive where Name = '_Total'", "WQL",
wbemFlagReturnImmediately | wbemFlagForwardOnly
);
foreach my $objItem (in $colItems) {
#print "Name: $objItem->{Name}\n";
#print "MessagesReceivedTotal: $objItem->{MessagesReceivedTotal}\n";
$MessagesReceivedTotal=$objItem->{MessagesReceivedTotal};
}
my $colItems = $objWMIService->ExecQuery(
"SELECT * FROM Win32_PerfRawData_MSExchangeTransportSmtpSend_MSExchangeTransportSmtpSend where Name = '_Total'", "WQL",
wbemFlagReturnImmediately | wbemFlagForwardOnly
);
foreach my $objItem (in $colItems) {
#print "Name: $objItem->{Name}\n";
#print "MessagesSentTotal: $objItem->{MessagesSentTotal}\n";
$MessagesSentTotal=$objItem->{MessagesSentTotal};
}
print "$MessagesReceivedTotal\n";
print "$MessagesSentTotal\n";
print "not used\n";
print "MessagesReceivedTotal\n";
print "MessagesSentTotal\n";
cfg:
Code:
##################################################################################
# Exchange Messages Load
########################################################
Title[MAILServer.wmi.Exchange_Messages]: MAILServer: Exchange Messages Load
Target[MAILServer.wmi.Exchange_Messages]: `Scripts\Exchange_Messages.pl MAILServer`
MaxBytes[MAILServer.wmi.Exchange_Messages]: 100
YLegend[MAILServer.wmi.Exchange_Messages]: Mail IO
Options[MAILServer.wmi.Exchange_Messages]: growright
ShortLegend[MAILServer.wmi.Exchange_Messages]: Mails/s
Legend1[MAILServer.wmi.Exchange_Messages]: MessagesReceived
Legend2[MAILServer.wmi.Exchange_Messages]: MessagesSent
Legend3[MAILServer.wmi.Exchange_Messages]: Maximal 2 Minute C:
Legend4[MAILServer.wmi.Exchange_Messages]: Maximal 2 Minute D:
LegendI[MAILServer.wmi.Exchange_Messages]: MessagesReceived:
LegendO[MAILServer.wmi.Exchange_Messages]: MessagesSent:
PageTop[MAILServer.wmi.Exchange_Messages]: <HR>
<H1>MAILServer: Exchange Mails pro Sekunde</H1>
<TABLE>
<TR> <TD>System:</TD> <TD>MAILServer</TD></TR>
<TR> <TD>Script:</TD> <TD><i>`Scripts\Exchange_Messages.pl MAILServer`</i></TD></TR>
</TABLE>
<HR>