We have a service to monitor our server farm by listening to the heartbeats, and send out email notifications if a server is not responding. When that happens one of us will ssh in and reboot the server.
I figured there must be some software tools to automate this manual reboots, preferably open source tools. If so, could you suggest some?
SSH can do what you want (via passwordless keys for login, and remote commands for rebooting the machine).
If you need a tool like this you have more serious issues - You should be investigating WHY these machines need to be rebooted and addressing that problem.
Similar to what voretaq said, you should really look into the root cause of the reboot, but most monitoring systems allow you to execute local scripts depending on actions. I'd simply create a shell script and issue a 'shutdown -r now' to restart the box. You could also include a timed countdown instead of 'now'.
You should restart the service that has failed to respond by running the appropriate script in /etc/init.d or "service [servicename] start", not by rebooting the whole server.