From ef960f8a85294e7b684d8f0dfffa3ae6fd70441e Mon Sep 17 00:00:00 2001 From: mh Date: Tue, 27 Jan 2009 00:22:27 +0000 Subject: added munin plugins for lighttpd --- files/munin/lighttpd_ | 46 ++++++++++++++++++++++++++++++++++++++++++++++ manifests/init.pp | 3 +++ manifests/munin.pp | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 83 insertions(+) create mode 100644 files/munin/lighttpd_ create mode 100644 manifests/munin.pp diff --git a/files/munin/lighttpd_ b/files/munin/lighttpd_ new file mode 100644 index 0000000..5862ee9 --- /dev/null +++ b/files/munin/lighttpd_ @@ -0,0 +1,46 @@ +#!/usr/bin/python + +# Idea from http://thelabmill.de/index.php/92 +# adapted and splitted into submodules by +# immerda project group +# GPLv3 + +import sys +kind = sys.argv[0].replace('lighttpd_', '') +if kind == "total_accesses": + graph_title = "Total Accesses" + graph_type = "DERIVE" + graph_vlabel = "Handled Requests" +elif kind == "total_kbytes": + graph_title = "Total KBytes" + graph_type = "DERIVE" + graph_vlabel = "Transferred KBytes" +elif kind == "uptime": + graph_title = "Uptime" + graph_type = "DERIVE" + graph_vlabel = "uptime in seconds" +elif kind == "busyservers": + graph_title = "Busy Servers" + graph_type = "GAUGE" + graph_vlabel = "amount of busyservers" + + +if len(sys.argv) == 2 and sys.argv[1] == "autoconf": + print "yes" +elif len(sys.argv) == 2 and sys.argv[1] == "config": + print "graph_title Lighttpd Stats - " + graph_title + print 'graph_vlabel ' + graph_vlabel + print 'graph_category lighttpd' + print kind+'.type ' + graph_type + + print 'graph_args --base 1000' +else: + import urllib2 + f = urllib2.urlopen('http://127.0.0.1/server-status?auto') + content = f.read() + f.close() + for temp in content.lower().splitlines(): + temp = temp.replace(" ", "_") + temp = temp.replace(":_", ".value ") + if temp.find(kind) >= 0: + print temp diff --git a/manifests/init.pp b/manifests/init.pp index 987af7d..d44d4a2 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -38,4 +38,7 @@ class lighttpd::base { owner => root, group => 0, mode => 0644; } + if $use_munin { + include lighttpd::munin + } } diff --git a/manifests/munin.pp b/manifests/munin.pp new file mode 100644 index 0000000..b2e24a8 --- /dev/null +++ b/manifests/munin.pp @@ -0,0 +1,34 @@ +class lighttpd::munin { + file{'/etc/lighttpd/conf.d/status.conf': + content => 'server.modules += ( "mod_status" ) +$HTTP["remoteip"] == "127.0.0.1" { + status.status-url = "/server-status" + status.config-url = "/server-config" +} +', + require => Package['lighttpd'], + notify => Service['lighttpd'], + owner => root, group => 0, mode => 0644; + } + munin::plugin::deploy{'lighttpd_': + source => "lighttpd/munin/lighttpd_", + ensure => absent, + require => File['/etc/lighttpd/conf.d/status.conf'], + } + munin::plugin{'lighttpd_total_accesses': + require => Munin::Plugin::Deploy['lighttpd_'], + ensure => 'lighttpd_', + } + munin::plugin{'lighttpd_total_kbytes': + require => Munin::Plugin::Deploy['lighttpd_'], + ensure => 'lighttpd_', + } + munin::plugin{'lighttpd_uptime': + require => Munin::Plugin::Deploy['lighttpd_'], + ensure => 'lighttpd_', + } + munin::plugin{'lighttpd_busyservers': + require => Munin::Plugin::Deploy['lighttpd_'], + ensure => 'lighttpd_', + } +} -- cgit v1.2.3