Perhaps you are asking yourself ‘what the hell could there possibly be to monitor about Connectwise’s Outlook Sync’? If so, read on.
If you already know/share my pains, skip to the meatier parts of this post below. J
About a year ago, we found ourselves adding new employees (members) to Connectwise pretty regularly, as the need to scale our operations @ HQ and overseas grew. Like good little soldiers, we diligently documented & managed each task/step in our new-hire on-boarding process in Connectwise via Service Templates + Tracks.
Like clockwork, we always seemed to overlook the all-important Exchange 2007 PowerShell Script task that issued our Connectwise Service Account the necessary access right to our people’s mailboxes.If you’ve every overlooked this step yourself, you find out very quickly what happens. The very first item to be put on this new member’s calendar (from CW) becomes an impassable queued object, causing all future calendar changes for ALL OTHER MEMEBRS to patiently wait in the queue until offending item gets processed (or deleted). At first it was baffling, and frankly, I didn’t think wasting the Connectwise Support Staff’s time for every new-hire was a good use of anyone’s time. Connectwise Support did turn me onto QXplorer by Julius L Ramos which is a very convenient tool, but is woefully clunky to have to rely on repeatedly.
What’s worse is that we normally didn’t find out there was a problem until someone screamed at one of our Connectwise Admins about missing a critical meeting, appointment or conference all because Connectwise didn’t sync up with Outlook.
So I set out to treat ourselves like we would our best client, and at least gain some visibility into the problems so we can respond before people come at us with torches and pitch forks.
What you may (should) already know is that Connectwise achieves “Outlook” Calendar integration through a combination of delegated Exchange mailbox access and a crafty use of Microsoft’s Message Queuing (MSMQ) system. What you may not know, and something I found out, is Microsoft doesn’t ship MSMQ with a Windows Management Instrumentation (WMI) provider out of the box. At least I found this to be the case in Windows Server 2003, but perhaps they fixed this in Server 2008; comments/updates are welcome.
After installing the Yoel’s MSMQ WMI Provider on the Connecwtise server, it was a calk-walk. Since we’ve used Kaseya for a quite sometime, the instructions below reflect that. I’m sure similar monitoring can be achieve with LPI, NAble, Zenith, Nimsoft, and the other players in the space; it’s just WMI after all and the Objectless/Counters all remain valid across platforms. The exported Kaseya Monitor Set is also found at the bottom of this post.
1. From the Monitor Tab, filter your agent list by server name to show ONLY your Connectwise server.
2. Select Update List by Scan, check the box next to your Connectwise server and click the Scan button.
3. While you wait, Click Monitor Sets -> Add
a. Name it whatever you like, we used “Connectwise 8 PSA”
b. Select any group alarm column you think is appropriate, we chose “Other”
c. Click Save
d. From “Counter Objects” section locate the “MSMQ Service” from the Objects drop-down
e. From the “Counter” drop-down, select “Total messages in all queues” and click Next
f. We set the collection operator to “Over,” threshold to 1, Alarm Operator to 100, and duration to 30 minutes. You’re mileage may vary, but we found this effective for 20-25 members, and have had to adjust upwards 20-40% as we approached 35 members.
g. We also used this same Monitor Set to watch for the Outlook Sync service, ConnectWiseUdpater, and a couple other minor items.
Of course, the final step is to apply the monitor set and setup the alerts. This should be self evident with a working knowledge of Kaseya, but contact me directly if you need assistance with this. Once done, a ticket get created if the queue stays over 100 for 30 minutes or more, triggering my CW Admins to check The queues, check permissions, and let the calendar sync flow freely again.
===COPY ALL BELOW THIS LINE===
<?xml version=”1.0” encoding=”ISO-8859-1” ?>
-<MonitorSet name=”ConnectWise 8 PSA ” description=’Monitors ConnectWise Programs’>
<Counter name=’MSMQ Service - Total msgs’ description=’null’ counterObject=’MSMQ Service’ counter=’Total messages in all queues’ counterSampleInterval=’900’ collectionOperator=’Over’ collectionThreshold=’1’ trendTimeSpan=’1209600’ trendReArm=’3600’ thresholdOperator=’Over’ thresholdAmount=’100’ thresholdDuration=’1800’ thresholdWarning=’10’ thresholdReArm=’3600’/>
<Counter name=’MSMQ Service - Bytes in Queues’ description=’null’ counterObject=’MSMQ Queue’ counter=’Bytes in Queue’ counterInstance=’Computer Queues’ counterSampleInterval=’300’ collectionOperator=’Over’ collectionThreshold=’1’ trendTimeSpan=’14’ trendReArm=’1’ thresholdOperator=’Over’ thresholdAmount=’500’ thresholdDuration=’7200’ thresholdWarning=’10’ thresholdReArm=’3600’/>
<Service name=’OutlookSync’ serviceDescription=’ConnectWise Outlook Sync’ description=’Synchronizes appointments between ConnectWise PSA and Exchange’ restartAttempts=’3’ restartInterval=’60’ reArm=’3600’/>
<Service name=’ConnectWiseUpdaterService’ serviceDescription=’ConnectWise Updater Service’ description=’ConnectWise Updater Service’ restartAttempts=’3’ restartInterval=’60’ reArm=’3600’/>
<Service name=’NsnClientService’ serviceDescription=’ConnectWise Network Client Service’ description=’Listens for and processes events from the ConnectWise Nationwide Service Network’ restartAttempts=’3’ restartInterval=’60’ reArm=’3600’/>
===COPY ALL ABOVE THIS LINE===