I believe Hyperic HQ meets all your criteria. This is open source, I believe that it is written at least partially in Java, and it is designed for all types of server monitoring.
It should be able to handle not only the monitoring that you requested, but also other necessary monitoring, such as memory, CPU usage and disk space on your servers.
source
share