diff --git a/INSTALL b/INSTALL index bff76a742567712009951dd09a98fad20e24f7a8..22f16b2ffd26af6ee1c868e193bf432f684c7bf4 100644 --- a/INSTALL +++ b/INSTALL @@ -163,8 +163,8 @@ Haskell optional features Optionally, more functionality can be enabled if your build machine has a few more Haskell libraries enabled: the ``ganeti-confd`` daemon -(``--enable-confd``) and the monitoring agent -(``--enable-monitoring``). The list of extra dependencies for these is: +(``--enable-confd``) and the monitoring daemon +(``--enable-mond``). The list of extra dependencies for these is: - `hslogger <http://software.complete.org/hslogger>`_, version 1.1 and above (note that Debian Squeeze only has version 1.0.9) @@ -177,21 +177,33 @@ a few more Haskell libraries enabled: the ``ganeti-confd`` daemon bindings for the ``pcre`` library - `attoparsec <http://hackage.haskell.org/package/attoparsec>`_ - `vector <http://hackage.haskell.org/package/vector>`_ +- `snap-server` <http://hackage.haskell.org/package/snap-server>`_, version + 0.8.1 and above. These libraries are available in Debian Wheezy (but not in Squeeze, with the exception of curl), so you can use either apt:: $ apt-get install libghc-hslogger-dev libghc-crypto-dev libghc-text-dev \ libghc-hinotify-dev libghc-regex-pcre-dev \ - libghc-attoparsec-dev libghc-vector-dev + libghc-attoparsec-dev libghc-vector-dev \ + libghc-snap-server-dev or ``cabal``:: $ cabal install hslogger Crypto text hinotify regex-pcre \ - attoparsec vector + attoparsec vector snap-server to install them. +In case you still use ghc-6.12, note that ``cabal`` would automatically try to +install newer versions of some of the libraries snap-server depends on, that +cannot be compiled with ghc-6.12, so you have to install snap-server on its +own, esplicitly forcing the installation of compatible versions:: + + $ cabal install MonadCatchIO-transformers==0.2.2.0 mtl==2.0.1.0 \ + hashable==1.1.2.0 case-insensitive==0.3 parsec==3.0.1 \ + network==2.3 snap-server==0.8.1 + The most recent Fedora doesn't provide ``crypto``, ``inotify``. So these need to be installed using ``cabal``, if desired. The other packages can be installed via ``yum``:: diff --git a/man/ganeti-mond.rst b/man/ganeti-mond.rst index 65c35db399475b3eaf9c2c9ec531a39dafe9d9ba..7ff92104e2378c6d47977d22e08dcca402181a07 100644 --- a/man/ganeti-mond.rst +++ b/man/ganeti-mond.rst @@ -6,6 +6,74 @@ Name ganeti-mond - Ganeti monitoring daemon +Synopsis +-------- + +**ganeti-mond** [-d] [-f] [--no-user-checks] [-p PORT] + +DESCRIPTION +----------- + +**ganeti-mond** is the daemon providing the Ganeti monitoring +functionality. It is responsible for running the data collectors and to +provide the collected information through a HTTP interface. + +For testing purposes, you can give the ``-f`` option and the +program won't detach from the running terminal. + +Debug-level message can be activated by giving the ``-d`` option. + +The **ganeti-mond** daemon listens to port 1815 TCP, on all interfaces, +by default. The port can be overridden by an entry the services database +by passing the ``-p`` option. +The daemon will refuse to start if the user and group do not match the +one defined at build time; this behaviour can be overridden by the +``--no-user-checks`` option. + +COMMUNICATION PROTOCOL +~~~~~~~~~~~~~~~~~~~~~~ + +The queries to the monitoring agent will be HTTP GET requests on port 1815. +The answer will be encoded in JSON format and will depend on the specific +accessed resource. + +If a request is sent to a non-existing resource, a 404 error will be returned by +the HTTP server. + +``/`` ++++++ +The root resource. It will return the list of the supported protocol version +numbers. + +``/1/list/collectors`` +++++++++++++++++++++++ +Returns a list of tuples (kind, category, name) showing all the collectors +available in the system. + +``/1/report/all`` ++++++++++++++++++ +A list of the reports of all the data collectors, as described in the section +`Format of the report`_. + +`Status reporting collectors`_ will provide their output in non-verbose format. +The verbose format can be requested by adding the parameter ``verbose=1`` to the +request. + +``/1/report/[category]/[collector_name]`` ++++++++++++++++++++++++++++++++++++++++++ +Returns the report of the collector ``[collector_name]`` that belongs to the +specified ``[category]``. + +If a collector does not belong to any category, ``collector`` will be used as +the value for ``[category]``. + +`Status reporting collectors`_ will provide their output in non-verbose format. +The verbose format can be requested by adding the parameter ``verbose=1`` to the +request. + +Further information can be found in the Ganeti Monitoring Agent +design document. + .. vim: set textwidth=72 : .. Local Variables: .. mode: rst