I'm looking for a way to monitor certain Windows services (on Windows Server 2003) and restart if necessary. The services are on different servers and include mainly SQL Server services (e.g. SQL Server Agent), but also some proprietary services.
Email alerts sent out if a service has stopped would be very useful as well.
A "might be enough" version of this is built into Windows. Look into the "Recovery" tab of the service properties, as available via services.msc
.
You can act on a service fail with:
"Run a program" could be a small script that sends a mail, for example.
If you want a bigger solution with an overview dashboard and all, there are plenty of system monitoring solutions available. For example SolarWinds IPMonitor comes to mind, or Nagios, or Cacti.