]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/munin/recipes/default.rb
Treat munin-node as an upstart managed service on 14.04
[chef.git] / cookbooks / munin / recipes / default.rb
index 0f6c67d86b4bc55659e5036ae889f11698f09f5b..0bcccbb93c4f248d88ae0994cee9bd51c2665ce5 100644 (file)
@@ -22,6 +22,9 @@ include_recipe "networking"
 package "munin-node"
 
 service "munin-node" do
+  if node[:lsb][:release].to_f >= 14.04
+    provider Chef::Provider::Service::Upstart
+  end
   action [ :enable, :start ]
   supports :status => true, :restart => true, :reload => true
 end
@@ -76,6 +79,18 @@ remote_directory "/etc/munin/plugin-conf.d" do
   notifies :restart, "service[munin-node]"
 end
 
+if node[:dmi] and node[:dmi][:system] and node[:dmi][:system][:manufacturer] == "HP"
+  case node[:dmi][:system][:product_name]
+  when "ProLiant DL360 G6", "ProLiant DL360 G7"
+    template "/etc/sensors.d/disable-bad-acpi-sensor.conf" do
+      source "disable-bad-acpi-sensor.conf.erb"
+      owner "root"
+      group "root"
+      mode 0644
+    end
+  end
+end
+
 if Dir.glob("/proc/acpi/thermal_zone/*/temperature").empty?
   munin_plugin "acpi" do
     action :delete
@@ -205,7 +220,15 @@ munin_plugin "load"
 munin_plugin "memory"
 munin_plugin "netstat"
 
-if File.exists?("/proc/net/rpc/nfs")
+if node[:kernel][:modules].include?("nfsv3")
+  munin_plugin "nfs_client"
+else
+  munin_plugin "nfs_client" do
+    action :delete
+  end
+end
+
+if node[:kernel][:modules].include?("nfsv4")
   munin_plugin "nfs4_client"
 else
   munin_plugin "nfs4_client" do
@@ -213,7 +236,7 @@ else
   end
 end
 
-if File.exists?("/proc/net/rpc/nfsd")
+if node[:kernel][:modules].include?("nfsd")
   munin_plugin "nfsd"
   munin_plugin "nfsd4"
 else
@@ -245,8 +268,6 @@ sensors_temp = false
 sensors_volt = false
 
 Dir.glob("/sys/class/hwmon/hwmon*").each do |hwmon|
-  package "lm-sensors"
-
   hwmon = "#{hwmon}/device" unless File.exists?("#{hwmon}/name")
 
   sensors_fan = true unless Dir.glob("#{hwmon}/fan*_input").empty?
@@ -254,6 +275,10 @@ Dir.glob("/sys/class/hwmon/hwmon*").each do |hwmon|
   sensors_volt = true unless Dir.glob("#{hwmon}/in*_input").empty?
 end
 
+if sensors_fan || sensors_temp || sensors_volt
+  package "lm-sensors"
+end
+
 if sensors_fan
   munin_plugin "sensors_fan" do
     target "sensors_"
@@ -297,6 +322,7 @@ node[:block_device].each do |name,attributes|
 end
 
 munin_plugin "swap"
+munin_plugin "tcp"
 munin_plugin "threads"
 munin_plugin "uptime"
 munin_plugin "users"