summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorduritong <peter.meier+github@immerda.ch>2013-08-25 04:04:27 -0700
committerduritong <peter.meier+github@immerda.ch>2013-08-25 04:04:27 -0700
commit3b81bebe2bbc49d17e5895e44da3690d20873d80 (patch)
tree870ff492d026a59a12f0b1ba862374dcb306d961 /README.md
parent9a98e96366ed2986fcce2b9a6298580583ab62c7 (diff)
parentcef87f9f10e48c11713e182ce8dcc367145f2ba9 (diff)
Merge pull request #17 from deric/master
README formatting
Diffstat (limited to 'README.md')
-rw-r--r--README.md77
1 files changed, 77 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..74d82ba
--- /dev/null
+++ b/README.md
@@ -0,0 +1,77 @@
+# Puppet-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/
+
+## Requirements
+
+ * puppet 2.7 or newer
+ * install the `common`, `concat` and `stdlib` modules -- the munin module depends on functions that are defined and installed via these modules
+ * 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
+
+## Usage
+
+ 1. Your modules directory will need all the files included in this repository placed
+ under a directory called "munin"
+
+ 2. 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' ] }
+
+ 3. 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
+
+ 4. 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'
+ }
+
+ 5. 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' }
+