Simple : Nagios a été conçu d'abord pour les alertes. Cacti a été conçu pour la création de graphiques.
Les deux ont des addons qui permettent d'activer les fonctionnalités de l'autre, mais tout dépend de ce que vous voulez. Si vous avez déjà une solution de supervision, et que vous voulez seulement des graphiques de performance, Cacti peut être une bonne solution. Si vous voulez une solution unique et unifiée avec un accent sur la surveillance, Nagios peut être une bonne solution.
Cacti peut alerter sur la base de seuils en utilisant le plugin thold, mais Nagios peut faire beaucoup plus (contrôles passifs, gestion plus gracieuse du flapping, alertes basées sur l'équipe et tenant compte de l'heure de la journée, etc. Nagios peut faire du SSH, du WMI, du SNMP, et il a aussi des agents pour Windows qui peuvent faire des choses assez puissantes comparées à Cacti.
Je ne critique pas Cacti (je l'ai déjà déployé), mais je préfère que l'alerte soit au centre de ma solution unifiée d'alerte/graphique.