summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README2
-rw-r--r--files/config/host/logrotate.CentOS35
-rw-r--r--files/config/host/munin.conf.header.CentOS73
-rw-r--r--manifests/host.pp31
4 files changed, 140 insertions, 1 deletions
diff --git a/README b/README
index 12b73e8..f7da439 100644
--- a/README
+++ b/README
@@ -87,4 +87,4 @@ To use this module, follow these directions:
$munin_port = 4948
i. if you'd like to do cgi graphing, please note the following page: http://munin.projects.linpro.no/wiki/CgiHowto
- ToDo: implement this in puppet
+ For CentOS this is enabled in the default header config
diff --git a/files/config/host/logrotate.CentOS b/files/config/host/logrotate.CentOS
new file mode 100644
index 0000000..411de3f
--- /dev/null
+++ b/files/config/host/logrotate.CentOS
@@ -0,0 +1,35 @@
+/var/log/munin/munin-update.log {
+ daily
+ missingok
+ rotate 7
+ compress
+ notifempty
+ create 640 munin adm
+}
+
+/var/log/munin/munin-graph.log {
+ daily
+ missingok
+ rotate 7
+ compress
+ notifempty
+ create 660 munin apache
+}
+
+/var/log/munin/munin-html.log {
+ daily
+ missingok
+ rotate 7
+ compress
+ notifempty
+ create 640 munin adm
+}
+
+/var/log/munin/munin-limits.log {
+ daily
+ missingok
+ rotate 7
+ compress
+ notifempty
+ create 640 munin adm
+}
diff --git a/files/config/host/munin.conf.header.CentOS b/files/config/host/munin.conf.header.CentOS
new file mode 100644
index 0000000..314a979
--- /dev/null
+++ b/files/config/host/munin.conf.header.CentOS
@@ -0,0 +1,73 @@
+# Example configuration file for Munin, generated by 'make build'
+
+# The next three variables specifies where the location of the RRD
+# databases, the HTML output, and the logs, severally. They all
+# must be writable by the user running munin-cron.
+dbdir /var/lib/munin
+htmldir /var/www/munin
+logdir /var/log/munin
+rundir /var/run/munin
+
+# Where to look for the HTML templates
+tmpldir /etc/munin/templates
+
+# Make graphs show values per minute instead of per second
+#graph_period minute
+
+# Drop somejuser@fnord.comm and anotheruser@blibb.comm an email everytime
+# something changes (OK -> WARNING, CRITICAL -> OK, etc)
+#contact.someuser.command mail -s "Munin notification" somejuser@fnord.comm
+#contact.anotheruser.command mail -s "Munin notification" anotheruser@blibb.comm
+#
+# For those with Nagios, the following might come in handy. In addition,
+# the services must be defined in the Nagios server as well.
+#contact.nagios.command /usr/sbin/send_nsca -H nagios.host.com -c /etc/send_nsca.cfg
+
+graph_strategy cgi
+
+# a simple host tree
+#[localhost]
+# address 127.0.0.1
+# use_node_name yes
+
+#
+# A more complex example of a host tree
+#
+## First our "normal" host.
+# [fii.foo.com]
+# address foo
+#
+## Then our other host...
+# [fay.foo.com]
+# address fay
+#
+## Then we want totals...
+# [foo.com;Totals] #Force it into the "foo.com"-domain...
+# update no # Turn off data-fetching for this "host".
+#
+# # The graph "load1". We want to see the loads of both machines...
+# # "fii=fii.foo.com:load.load" means "label=machine:graph.field"
+# load1.graph_title Loads side by side
+# load1.graph_order fii=fii.foo.com:load.load fay=fay.foo.com:load.load
+#
+# # The graph "load2". Now we want them stacked on top of each other.
+# load2.graph_title Loads on top of each other
+# load2.dummy_field.stack fii=fii.foo.com:load.load fay=fay.foo.com:load.load
+# load2.dummy_field.draw AREA # We want area instead the default LINE2.
+# load2.dummy_field.label dummy # This is needed. Silly, really.
+#
+# # The graph "load3". Now we want them summarised into one field
+# load3.graph_title Loads summarised
+# load3.combined_loads.sum fii.foo.com:load.load fay.foo.com:load.load
+# load3.combined_loads.label Combined loads # Must be set, as this is
+# # not a dummy field!
+#
+## ...and on a side note, I want them listen in another order (default is
+## alphabetically)
+#
+# # Since [foo.com] would be interpreted as a host in the domain "com", we
+# # specify that this is a domain by adding a semicolon.
+# [foo.com;]
+# node_order Totals fii.foo.com fay.foo.com
+#
+
diff --git a/manifests/host.pp b/manifests/host.pp
index 8f79020..aeb254d 100644
--- a/manifests/host.pp
+++ b/manifests/host.pp
@@ -8,6 +8,16 @@ class munin::host
File <<| tag == 'munin' |>>
+ file{'/etc/munin/munin.conf.header':
+ source => [ "puppet://$server/files/munin/config/host/${fqdn}/munin.conf.header",
+ "puppet://$server/files/munin/config/host/munin.conf.header.$operatingsystem",
+ "puppet://$server/files/munin/config/host/munin.conf.header",
+ "puppet://$server/munin/config/host/munin.conf.header.$operatingsystem",
+ "puppet://$server/munin/config/host/munin.conf.header" ],
+ notify => Exec['concat_/etc/munin/munin.conf'],
+ owner => root, group => 0, mode => 0644;
+ }
+
concatenated_file { "/etc/munin/munin.conf":
dir => $NODESDIR,
header => "/etc/munin/munin.conf.header",
@@ -20,6 +30,27 @@ class munin::host
}
include munin::plugins::muninhost
+
+ case $operatingsystem {
+ centos: { include munin::host::cgi }
+ }
+}
+
+class munin::host::cgi {
+ exec{'set_modes_for_cgi':
+ command => 'chgrp apache /var/log/munin /var/log/munin/munin-graph.log && chmod g+w /var/log/munin /var/log/munin/munin-graph.log && find /var/www/munin/* -maxdepth 1 -type d -exec chgrp -R apache {} \; && find /var/www/munin/* -maxdepth 1 -type d -exec chmod g+w {} \;',
+ refreshonly => true,
+ subscribe => File['/etc/munin/munin.conf.header'],
+ }
+
+ file{'/etc/logrotate.d/munin'
+ source => [ "puppet://$server/files/munin/config/host/${fqdn}/logrotate"
+ "puppet://$server/files/munin/config/host/logrotate.$operatingsystem",
+ "puppet://$server/files/munin/config/host/logrotate",
+ "puppet://$server/munin/config/host/logrotate.$operatingsystem",
+ "puppet://$server/munin/config/host/logrotate" ],
+ owner => root, group => 0, mode => 0644;
+ }
}
class munin::snmp_collector