I can recommend you Zabbix, is very flexible and can be extended with your own scripts, I use Zabbix for basic monitoring (CPU, Memory, I/O, etc) to complex scenarios like DDoS detection, IP RBL checks and more.
DISCLAIMER: Monitoring tools can create addiction, you will want to monitor everything