Skip to content

Latest commit

 

History

History
50 lines (29 loc) · 1.46 KB

README.md

File metadata and controls

50 lines (29 loc) · 1.46 KB

Monitoring

A small 'realtime' (not really, because we're still polling every x seconds) SNMP monitoring system, which currently supports display of load average, memory usage and CPU utilisation.

It uses RabbitMQ as a messaging middleware and topic routing, permitting poller nodes to be placed in private network segments. This also permits separate monitor.js instances to subscribe to different routing keys, allowing servers to be grouped.

There's a load things to add/fix, but it's worked well in helping quickly spot load, CPU and memory spikes so far.

Dependencies

  • A RabbitMQ (or maybe other AMQP) server

  • The following node.js libraries:

    • amqp
    • express
    • ejs
    • websocket-server
  • A browser with tag support; basically Webkit nightly or Chrome (it's not made it into Safari yet)

  • The following Python libraries:

    • pika
    • pysnmp

Setup

  • If you don't have it, get npm and install the node.js dependancies

    • npm install express amqp ejs websocket-server
  • For installing the Python pages, use pip (or easy_install)

    • pip install pika pysnmp

Turning things on

  • Start RabbitMQ

    • rabbitmq-server
  • Then the node.js AMQP client/web(socket) server (I'm assuming you have nodemon)

    • nodemon monitor.js
  • Finally

    • python poller/poller.py
  • By default, node.js will start a webserver on your loopback interface (localhost) and port 3000, so go and visit that.