I have been looking for a solution to monitor MSMQ queues at work. Luckily, Windows ships with 2 tools that we can utilize to help us out: Performance Monitor and Event Log.
Alerts are defined in perfmon to monitor the number of messages in our queues. When the limit is reached, a trigger is fired. In our installation, we have the trigger set to write a message to the event log using a specific event id. The operations/infrastructure team responsible for keeping the systems running use a commercial product to watch the event logs for our event id.
How do you monitor MSMQ?