summaryrefslogtreecommitdiff
path: root/README
blob: ef3c2fdf824a4597c2c30a0d85d0e55a0f96968e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
== Munin ==

Munin is a performance monitoring system which creates nice RRD graphs and has
a very easy plugin interface. The munin homepage is http://munin.projects.linpro.no/

To use this module, follow these directions:

0. This module requires puppet 2.7 or newer.

1. Install the "common", "concat" and "stdlib" modules -- the munin module
   depends on functions that are defined and installed via these modules.

2. You will need storedconfigs enabled in your puppet setup, to do that you need to
   add a line to your puppet.conf in your [puppetmasterd] section which says:
   
   storeconfigs=true

   You may wish to immediately setup a mysql/pgsql database for your storedconfigs, as
   the default method uses sqlite, and is not very efficient, to do that you need lines
   such as the following below the storeconfigs=true line (adjust as needed):

   dbadapter=mysql
   dbserver=localhost
   dbuser=puppet
   dbpassword=puppetspasswd

3. Install the "munin" module:

   a. Your modules directory will need all the files included in this repository placed 
      under a directory called "munin"

   b. For every host you wish to gather munin statistics, add the class munin::client to that
      node. You will want to set the class parameter 'allow' to be the IP(s) of the munin
      collector, this defines what IP is permitted to connect to the node, for example:

      node foo {
        class { 'munin::client': allow => '192.168.0.1'}
      }

      for multiple munin nodes, you can pass an array:

        class { 'munin::client': allow => [ '192.168.0.1', '10.0.0.1' ] }
      
   c. In the node definition in your site.pp for your main munin host, add the following:

        class { 'munin::host': }

        If you want cgi graphing you can pass cgi_graphing => true.
        (For CentOS this is enabled in the default header config)
        for more information, see: http://munin.projects.linpro.no/wiki/CgiHowto

   d. If there are particular munin plugins you want to enable or configure, you define them
      in the node definition, like follows:

      # Enable monitoring of disk stats in bytes
      munin::plugin { 'df_abs': }

      # Use a non-standard plugin path to use custom plugins
      munin::plugin { 'spamassassin':
         ensure      => present,
         script_path => '/usr/local/share/munin-plugins',
      }

      # For wildcard plugins (eg. ip_, snmp_, etc.), use the name variable to
      # configure the plugin name, and the ensure parameter to indicate the base
      # plugin name to which you want a symlink, for example:
      munin::plugin { [ 'ip_192.168.0.1', 'ip_10.0.0.1' ]:
        ensure => 'ip_'
      }

      # Use a special config to pass parameters to the plugin
      munin::plugin {
         [ 'apache_accesses', 'apache_processes', 'apache_volume' ]:
            ensure => present,
            config => 'env.url http://127.0.0.1:80/server-status?auto'
      }

   e. If you have Linux-Vservers configured, you will likely have multiple munin-node processes
      competing for the default port 4949, for those nodes, set an alternate port for munin-node
      to run on by putting something similar to the following class parameter:

      class { 'munin::client': allow => '192.168.0.1', port => '4948' }