Zabbix is an open source, enterprise level monitoring system with either free or paid support. While it has tons of plugins available, you can create your own with minimal programming skills if one you want does not exist.
Zabbix uses a client/server paradigm, where your server contains, you guessed it, zabbix-server, and each monitored machine uses a client. This client can be a zabbix agent, if available for the system or SNMP. There are other ways of getting information also such as through IPMI, or even through custom scripts that can put out the proper JSON message.
Zabbix is available at https://www.zabbix.com