Requirements
============

- A reasonable Perl5, both on the server and nodes
- RRD with perl support on the server
- Perl modules for server:  Time::HiRes, Storable, Digest::MD5,
     HTML::Template, Text::Balanced
- Perl modules for node: Net::Server
- Perl modules for plugins: Depends on the plugins you want to use,
     but not much
- GNU Make
- A web server.  Apache HTTPD should be suitable.

Munin is quite often used on Linux, *BSD, Solaris and AIX and recently
OS X (Darwin).  The server and node should be easy to get working on
any Unix platform, and plugins should either be easy to adopt from a
related OS or make new ones based on what you find here.  If you make
a plugin set for a new OS please email us at
munin-users@lists.sourceforge.net or enter a ticket in the trac ticket
base at http://munin.sourceforge.net.


Installing
==========

IF you're working on a SVN checkout:

	- cp Makefile.config-dist Makefile.config

	  This overwrites the maintainers copy of Makefile.config.

Munin consists of the main (central server) programs, and the node
program and the associated plugins.  The node runs on each of the
machines you want to collect data from.  The main programs does the
collecting, draws the graphs, and creates the HTML pages.

To install the main programs (you might want to install a node first,
that way there is data to collect):

	- Review/edit Makefile.config
	- create the user "munin"
	- make install-main

        - In your HTMLDIR/munin you will now find a .htaccess file
          with two main features:

	  * Password protection

          It looks for passwords in CONFDIR/munin-htpasswd.  Install
          the users you need in munin-htpasswd with the htpasswd
	  command.  Check that authentication is required, if it's not 
	  please refer to build/resources/apache-passwd.conf.

	  * Munin page expiery to refresh contents

	  This sets the cache expiry of everything in the munin HTML
	  directory hierarcy to it's creation time +5 minutes 10 seconds.
	  This helps all different caches understand that a new version
	  ought to be fetched when the graph is old.

	  This requires mod_expiery to be enabled.

	  NOTE:

	  As noted within the file it will not work unless you have the
	  right AllowOverride in the central Apache configuration.  See
	  the file for more information.

          If you already have a .htaccess file in HTMLDIR it will not
          be overwritten.

	  If you prefer that munin be openly available make the
	  .htaccess file empty ( : >.htaccess ) - that way it will
	  not be overwritten later.

	- create a cron-entry to run "munin-cron" as the user "munin"
	  every 5 minutes.  You might find cron files for your system
	  under the build/dists subdirectory, or perhaps in the
          build/resources directory.

	- if you want to use the dynamic graphs: Configure the cgi
	  directory, you will find a apache config example in
	  build/resources.  NOTE: Dynamic graphs are not exactly
          perfect. Se also http://munin.projects.linpro.no/wiki/CgiHowto


To install the documentation:

	- edit Makefile.config
	- make install-doc install-man


To install a node:

	- edit Makefile.config
	- create the group "munin"
	- make install-node install-node-plugins (NOTE: This installs
	  all plugins in the distribution, no matter what you already
	  have, if you want to save some plugins you've installed yourself
	  or have customized please make a backup copy).
	- decide which plugins to use.  The quick auto-plug-and-play
          solution: 
            munin-node-configure --shell --families=contrib,auto | sh -x

	- start the node agent. You probably want an init-script for
          this and you might find a good one under build/dists

Notes about node plugins
========================

"make install-node-plugins" installs the plugins in LIBDIR (defined in
Makefile.config). Put the ones you want to use (or better yet, create
softlinks) in CONFDIR/plugins/ . An easy way to do this, is the
program "munin-node-configure", using the parameter "--shell". It will
then suggest commands to do this.

Some of the plugins require some configuration to get running.  Some
example configuration files (plugins.conf) is found under the
build/dists directory.

Many OSes and releases thereof have different ways of gathering data.
A lot of OSes still have none.  If you create plugins for an OS/system
which is not already in the package, please send us a copy of them, so
we can add them for others to use.  We'd also be happy if you sent us
any new plugins on systems already in the package.
