I work for an IT service provider - we support a range of Windows and Linux servers/PC's on our customer sites. I'm looking for a way to monitor basic stuff on these devices (e.g. disk space usage, CPU utilisation, uptime etc) and collect the data in a central interface. 

I've looked at Zabbix and read up on Nagios. However, both seem to require that our customer's have a static external IP address, and that a particular port is opened on the customer's firewall to allow two way traffic. It isn't possible to do this for the majority of customers. 

Is there a way to configure Zabbix or Nagios to send data from their Windows agents to our central server (with the relevant incoming port opened), without having the two way communication that would require a port opening on the customer's firewall? I tried out Pandora FMS and it was able to do this, but I didn't like the product overall. As far as I can tell, this would require the agents to be pre-configured with what data they should send, but I'm not 100% sure from reading the documentation. 

Thanks in advance for any advice,  

 Matt