To those that are having problems with chkservd, you should probably check the log file at /var/log/chkservd.log The file should be pretty long and probably includes times when your Apache wasn't working properly... or not being restarted automatically by chkservd.
If Apache is found to be down, the log entry should look something like this:
[Fri Jul 12 23:00:50 2002] Service check ....apache [-Restarting apache....
system: killall -9 httpd
system: /etc/rc.d/init.d/httpd stop
system: /etc/rc.d/init.d/httpd startssl
system: /usr/local/apache/bin/apachectl startssl
system: /etc/rc.d/init.d/httpd start
system: /usr/local/apache/bin/apachectl start
]bind [+]...interchange [+]...mysql [+]...proftpd [+]...syslogd [+]...webmail [+]...Done
This is chkservd attempting to restart Apache (and it tries pretty hard by the looks of it). Mine has always worked fine in testing, and I've yet to find any servers with Apache randomly down. (knock wood).
For what its worth, chkservd appears to check for Apache by making a local connection to port 80, and listening for a response from the server. It's a nice system and can also be easily tweaked to monitor other services like the POP and IMAP daemons, SSH server, etc.
- Jason