Merge commit 'puzzle/development'
[puppet_munin.git] / README
1 == Munin ==
2
3 Munin is a performance monitoring system which creates nice RRD graphs and has
4 a very easy plugin interface. The munin homepage is http://munin.projects.linpro.no/
5
6 To use this module, follow these directions:
7
8 1. Install the "common" module -- the munin module depends on functions that are
9    defined and installed via the common module, see README.common for how to do this
10
11 2. You will need storedconfigs enabled in your puppet setup, to do that you need to
12    add a line to your puppet.conf in your [puppetmasterd] section which says:
13    
14    storeconfigs=true
15
16    You may wish to immediately setup a mysql/pgsql database for your storedconfigs, as
17    the default method uses sqlite, and is not very efficient, to do that you need lines
18    such as the following below the storeconfigs=true line (adjust as needed):
19
20    dbadapter=mysql
21    dbserver=localhost
22    dbuser=puppet
23    dbpassword=puppetspasswd
24
25 3. Install the "munin" module:
26
27    a. Your modules directory will need all the files included in this repository placed 
28       under a directory called "munin"
29
30    b. add the following line to your modules.pp:
31    
32       import "munin" 
33
34       (NOTE: if you have followed the directions in README.common then you will have import 
35       "modules.pp" in your site.pp, if you do not have that, then you will need to add the 
36       import line to your site.pp)
37
38    c. you will also need to create the following empty directories:
39
40       mkdir /etc/puppet/modules/munin/files/empty
41       mkdir /etc/puppet/modules/munin/files/modules_dir
42       mkdir -p /etc/puppet/modules/munin/files/nodes/modules_dir
43       mkdir -p /etc/puppet/modules/munin/files/plugins/modules_dir
44
45    d. Add to the top of your site.pp a variable which indicates what IP should be allowed to 
46       connect to your individual munin-nodes (this is typically your main munin host's IP):
47
48       $munin_allow = '192.168.0.1'
49       
50       If you want to define more than one host, you can seperate them by colon:
51
52       $munin_allow = '127.0.0.1:192.168.0.1'
53
54    e. In the node definition in your site.pp for your main munin host, add the following:
55
56       include munin::host
57    
58    f. On each node that will gather munin statistics, add this line to that node's entry 
59       in site.pp (you may want to also add this to your main munin host):
60       
61       include munin::client
62
63    g. If there are particular munin plugins you want to enable or configure, you define them
64       in the node definition, like follows:
65
66       # Enable monitoring of disk stats in bytes
67       munin::plugin { df_abs: }
68
69       # Use a non-standard plugin path to use custom plugins
70       munin::plugin { "spamassassin":
71          ensure => "spamassassin",
72          script_path => "/usr/local/share/munin-plugins",
73       }
74
75       # Use a special config to pass parameters to the plugin
76       munin::plugin {
77          [ "apache_accesses", "apache_processes", "apache_volume" ]:
78             ensure => present,
79             config => "env.url http://127.0.0.1:80/server-status?auto"
80       }
81
82
83    h. If you have Linux-Vservers configured, you will likely have multiple munin-node processes
84       competing for the default port 4949, for those nodes, set an alternate port for munin-node
85       to run on by putting something similar to the following in the node definition:
86
87       $munin_port = 4948
88