Question

I am looking for a solution to monitor several (atleast 50) remote nodes. These remote nodes are behind a firewall and hence i cannot poll from a central server for information.

the connection needs to be from a Node -> central server. I have used ganglia and nagios before but they are all from Server-> nodes. Appreciate if anyone can give some open source recommendations. The remote nodes and central server are all linux based system.

Metrics i would like to collect are:

  1. Uptime
  2. Health monitor (If the node doesn't communicate to the server in configurable amount of time, raise alert by sending email)
  3. CPU/memory/Network/Disk usage
  4. Process monitor (e.g. apache or ssh)
  5. Configuration management like puppet would be a bonus but an awesome feature.
Était-ce utile?

La solution

  1. If your firewall allows HTTP(S) you could try to use Nagira API (RESTful) to submit passive checks. There several examples of setups implemented using it. Please check http://dmytro.github.com/nagira

  2. Alternatively you can use the same API to poll clients. In case if your firewall allow outgoing HTTP(S).

Autres conseils

I would look at using passive checks with Nagios using either NSCA or NRDP. Both methods let you push results from your remote machine up to the central server.

http://nagios.sourceforge.net/docs/3_0/passivechecks.html

Or you can use NRDP, which communicates over standard http and https protocols. http://assets.nagios.com/downloads/nagiosxi/docs/NRDP_Overview.pdf

Once you got one system set up with either of these it wouldn't be difficult to clone the setup with puppet or even rsync.

If you can poke a firewall hole (tcp/5666) for a single host on that network, you can use that host as a sort of "NRPE gateway".

Then you can use check_nrpe to have that host do all of the checks against the other 50 or so nodes behind the firewall (including chaining check_nrpe together for "internal" checks).

If you go this route, be sure to make service dependencies (consider using a servicegroup) for all of those services to depend on NRPE on the "gateway".

If you have access to a single server behind the firewall, you could use Mod-Gearman to run checks for a specific hostgroup on that remote host.

This might be a bit too late to respond to this question now. However,

  1. a nodeJs server implementing a clustered set of nodes on each machine ( better control on target machines to take correct measures beyond just monitoring. ) that needs to be monitored.
  2. a single nodejs server taking in inputs from multiple nodes that simple connect via a library like socket.io from a html document.

Cheers.

You can use Pandora FMS to monitor this servers. To do so you can install software agents on each machine configure an exeption in the firewall for the tentacle protocol and send back information to the Pandora Server. You can monitor all the parameters you mentioned above using local modules. For puppet there is a specific article written in pandora fms blog site where you can read step by step information on how to monitor puppet. For more information on pandora fms you can visit the following website: Pandora FMS Unified Monitoring TooL

Regards Ivo Yordanov

Take a look at Uptime, an open-source remote monitoring tool written in Node.js and MongoDB: https://github.com/fzaninotto/uptime. Might be a good fit for your need.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top