on 10-11-2010 07:18 AM
MSMQ Monitor actively checks Microsoft MSMQ and if any defined Queue is over the defined threshold a warning is generated. Queues that reach their threshold can be logged into the Event Log, XML or Flat file. You can integrate your current Monitoring system to check for these alerts.
The best thing about MSMQ Monitor is that it is also completely free. If you have any questions please do not hesitate to contact us.
Prerequisites:
Microsoft .Net 3.5 sp1
Working EV installation
Command-line options:
-f, --filter=VALUE The path to monitor filter specification.
-t, --threshold=VALUE The default threshold for all queues not matching any filter.
-g, --generate=VALUE Name of configuration file to generate.
-o, --output=VALUE Name of output file, if output type is FLAT or XML. If EVENT then it will be the event name.
-a, --as=VALUE Output type (FLAT|XML|EVENT), default is FLAT
-i, --include_valid Include queues with status equal to Ok to report.
-h, --help Display Help.
Examples:
MSMQMonitor -t 4000 -g MSMQMonitor.xml
Generate a customer configuration file called MSMQMonitor.xml with a threshold of 2000 messages for each Queue.
MSMQMonitor -f MSMQMonitor.xml -a EVENT
Check all Queues specified in MSMQMonitor.xml and report any queues over there threshold to the Event Log.
MSMQMonitor -a XML -o OverThreshold.xml
Check all Queues specified in the default xml and report any queues over there threshold to OverThreshold.xml.
MSMQMonitor -t 3000 -a EVENT
Check all Queues and if any are over the threshold of 3,000 report them into the Event Log.
XML Configuration File
To generate a config file you can use the –g switch but it will need to be used in conjunction with –t to set the default threshold.
The config should be edited and custom thresholds set on different queues. Please see the "Best Practice" for a detailed description on what should be use for thresholds.
Wildcards can be used in the config file.
? – For any single character.
* – For 0 to n number of any characters
Wildcard Example:
patterns/value |
test? |
test?test |
test* |
test*test |
Test |
False |
False |
True |
False |
test1 |
True |
False |
True |
False |
test2test |
False |
True |
True |
True |
test something test |
False |
False |
True |
True |
If you wish to set a threshold on all retrieval tasks for all Exchange Servers you could use:
So if you wish to have a threshold of 250 on all Exchange Mailbox Tasks for the a3 queue and a threshold of 0 for the rest you could use this:
As you can see the two queues have been picked up and are marked as they have exceeded there threshold.
Logging
If one of the Queues goes over the set threshold there are three options for logging:
Event Log – Gets written to the application log.
XML File – If no output filename specified it will get generated in the location from where the application is run from.
Flat LOG File – If no output filename specified it will get generated in the location from where the application is run
EVENT
Only one Event will get generated for each queue that has reached its threshold.
XML
There will be one xml file with all the queues that have reached their threshold.
LOG
This is the same as the xml except it is a flat file will all the information regarding queues over their thresholds.
GlassHouse EVTools MSMQ Monitoring report (http://www.evtools.net/).
Number of private queues located: 23.
Queue 'private$\enterprise vault exchange mailbox task for star01 100219165123 a3' with 266 messages. Status: Exceed threshold value 250!
Queue 'private$\enterprise vault exchange mailbox task for star01 100219165123 a7' with 1 messages. Status: Exceed threshold value 0!
Queue 'private$\enterprise vault archive agent admin queue' with 0 messages. Status: Threshold not defined!
Valid queues: 0
Queues not configured: 1
Queues Exceed threshold: 2
Queues Failed to process: 0
Nice .. I must give this a whirl on one of my test labs and see what I get.