Production monitoring for EC2 instances

Monit should do most of what you need. If you want something a bit more advanced but more specifically tailored to EC2, have a look at the services offered by RightScale or Scalr (an open source competitor to RightScale).


I've solved this problem with using Puppet... I built my own AMI that has puppet client installed on it and a user-data SysV-init script that sets the hostname before starting and enabling puppet process.

When the EC2 instance connects to the puppetmaster it passes it's current IP address I can then use this to template the EC2 nodes Nagios configuration. When the IP address changes the Nagios config file is updated and Puppet initiates a Nagios restart.

Restarting an EC2 instance would require having the EC2 API tools installed on the monitoring box and setting up something to automate the instance boot process. I've created a ruby script that does this and sets the user-data contents per the host being requested to be started.