Latest version: 2.1.0

NDPMon in the press

Downloads

Documentation

Plugins

Training

Community

edit SideBar

Distributed Monitoring

Warning This is an experimental plugin, which has not yet been fully testbed, to quote VLC developers, "it might kill your kitten, destroy your house, and start the Mayan apocalypse".

Description

This plugin permits to several instances of NDPMon (on the same link or not) to interact. One instance is working as a collector and listens to remote probes, while other instances send event through a SOAP over SSL/TLS channel to that collector.

This plugin is written using csoap, a client/server SOAP library implemented in pure C. It comes with an embedded HTTP server called nanohttp. The transfered XML structures are handled by libxml2.

Events reported

  • alert: an alert has been raised on a remote probe
  • probe_updown: a remote probe has started/stopped
  • neighbor_update: update remote neighbor information

Build

To build it, make sure to install libnanohttp-dev, libnanohttp1, libssl-dev, libcsoap-dev and libcsoap1.

  1. apt-get install libnanohttp-dev libnanohttp1 libssl-dev libcsoap-dev libcsoap1

Then, configure the build process while enabling the plugin

  1. ./configure --enable-soap --with-soap=PATH/TO/LIBCSOAP --with-nanohttp=PATH/TO/LIBNANOHTTP

Configuration

Then, in the configuration file of NDPMon, specify the collector address, and declare the remote probes:

  1. <config_ndpmon>
  2.   <settings>
  3.     [...]
  4.     <!-- Example soap configuration -->
  5.     <soap report_url="https://localhost:10002/ndpmon"
  6.           report_src="localhost"
  7.           listen_path="/ndpmon"
  8.           listen_port="10002"
  9.           ssl_enabled="1"
  10.           ssl_certfile="/usr/local/etc/ndpmon/sslkey.pem"
  11.           ssl_certpass="pass"
  12.           ssl_cafile="/usr/local/etc/ndpmon/ca/cacert.pem"
  13.           ssl_commonname="test" />
  14.   </settings>
  15.   <probes>
  16.     <!-- Example remote probe -->
  17.     <probe name="somehost/eth0" type="remote" />
  18.   </probes>
  19.   [...]
  20. </config_ndpmon>