A Wikipedia tem uma tabela comparativa que ajuda muito
Acho que as principais diferenças são:
-
idioma: Nagios é escrito em C e OpenNMS em Java. Isso torna o nagios muito mais rápido em hardwares mais antigos.
-
Coleta de dados: o Nagios realiza muito pouca coleta de dados. Outros softwares (como o cacti, por exemplo) serão necessários para um sistema de coleta de dados mais extenso. O OpenNMS inclui-o imediatamente.
-
descoberta de host e serviço: o Nagios deve ser informado sobre o que monitorar, enquanto o OpenNMS possui recursos de descoberta.