There are many ways to monitor Microsoft SQL Server, too many to even list them here. And there are a lot of things to monitor for, depending on your specific situation. Performance issues for exemple, or maintenance related issues like missing backups or server down for example. Sometimes you want to monitor in detail, if you have a specifically important (or shaky) system. And sometimes you want the broader picure monitored, if you have a lot of SQL Server systems.
One of the issues with monitoring SQL Server with any monitoring system is that you can have more than one instance of SQL server running on each server, named instances. THis has implications for for example performance monitor counters, that have differnet names for the different named instances. Then there is clustering, wich has its own impact on for example monitoring the state of the SQL Server Services. How do you know if the service is offline in error on one node, or if the instance is working perfectly well, just on the other node?
Our customers use a wide range of monitoring systems. I have recently had the opportunity to spend some time monitoring SQL Server with an open source system called Zabbix. You can read more about Zabbix here.
To help with some of the issues regarding monitoring SQL Server, I have put together and released a miniature SQL Server Multiple Instance Template for Zabbix. It supports monitoring the default instance + 9 different named instances. Instance names are set using macros in the central Zabbix server. You can download it here. And read a little more about it here. Let me know if you have any feedback or requests regarding this!