Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A distributed server monitoring system written in Javascript for Node.JS that uses WebSockets to show server info in near real-time from the browser.

branch: master

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 config
Octocat-spinner-32 html
Octocat-spinner-32 lib
Octocat-spinner-32 logs
Octocat-spinner-32 plugins
Octocat-spinner-32 .gitmodules
Octocat-spinner-32 LICENSE
Octocat-spinner-32 NodeMonitor_Node.js
Octocat-spinner-32 NodeMonitor_Server.js
Octocat-spinner-32 README.textile


NodeMonitor is a distributed server monitoring system written in Javascript for Node.JS. It uses WebSockets to stream the data to the browser in near-realtime, and it uses a simple plugin system to add various monitoring capabilities to each node. It is currently in a very alpha phase and a lot of functionality still needs to be added. This is my first time ever using Node.JS so I’m sure the code could use a lot of improvement. Anyone who would like to contribute is welcome.


  • Linux/Unix (this includes Mac OSX; sorry, no Windows)
  • Node.JS

How to Use

To get the code (Using —recursive is very important):

git clone git:// —recursive

For a simple proof-of-concept:

  • Configure config/server_config.js and config/node_config.js with the desired values. Should be pretty straightforward.
  • Run the server on a single machine: sudo node NodeMonitor_Server.js
  • Run the node on each machine you want to monitor (can be the same machine the server is running on): sudo node NodeMonitor_Node.js
  • ????

Use your web browser and go to the address and port specified in the config file to visit the NodeMonitor webpage. If a node is connected, you should see data streamed to console.log() in realtime.

What Needs to be Done?

  • Basic plugins need to be finalized
  • Web interface needs to be implemented
  • Lots more error handling and fault tolerance needs to be added
Something went wrong with that request. Please try again.