Forum Discussion

Wayne_Humphrey's avatar
15 years ago

MSMQ Monitor

Hi All,

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 tool is completely free and is downloadable from the link provided bellow.

http://www.quadrotech-it.com/products/evtools/msmq-monitor/

Please use this forum for suggestions and enhancements requests.  If you would like to see anything else please let us know and we will see what we can do.

  • EVTools MSMQ Monitor
    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:
    <MonitorFilter filter="enterprise vault exchange mailbox task for * r*" threshold="2000" />

    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:
      <MonitorFilter filter="enterprise vault exchange mailbox task for * a3" threshold="250" />
      <MonitorFilter filter="enterprise vault exchange mailbox task for * a?" threshold="0" />

    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

6 Replies


  • Hello Wayne,

    Could I check msmq's on other servers too with this tool?
    If yes, how? (\\xxxxx\private etc ?)

    Regards
  • Hi Gertjan,

    No we designed this to be run on each EV Server, the reason? no single point of failure.  
  • EVTools MSMQ Monitor
    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:
    <MonitorFilter filter="enterprise vault exchange mailbox task for * r*" threshold="2000" />

    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:
      <MonitorFilter filter="enterprise vault exchange mailbox task for * a3" threshold="250" />
      <MonitorFilter filter="enterprise vault exchange mailbox task for * a?" threshold="0" />

    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
  • wayne it sounds alright but the need for it to be run on each individual server makes it just easier to open up the Computer Management and sort by message numbers