summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormh <mh@immerda.ch>2011-04-06 10:44:58 +0200
committermh <mh@immerda.ch>2011-04-06 10:44:58 +0200
commit23e3ddf1daa52d46c40d540d25218195997e8524 (patch)
tree78d7ae8592b4154ecd701228fe6f128d0b507695
parentf2df62c9d17d481a3d616a4f2de9496638fadc0a (diff)
try to fix nagios::plugin problem
We have a serious problem with the concept that we had up to now if you start adding more than one nagios server. This is an attempt to fix it, with certain drawbacks, such as that you have to list all the nagios plugins in the nagios modules. This will be subject of further discussion.
-rw-r--r--files/plugins/check_jabber_login30
-rw-r--r--manifests/base.pp3
-rw-r--r--manifests/defaults/plugins.pp6
-rw-r--r--manifests/plugin.pp2
-rw-r--r--manifests/plugin/deploy.pp6
5 files changed, 38 insertions, 9 deletions
diff --git a/files/plugins/check_jabber_login b/files/plugins/check_jabber_login
new file mode 100644
index 0000000..dac0e1f
--- /dev/null
+++ b/files/plugins/check_jabber_login
@@ -0,0 +1,30 @@
+#!/usr/bin/env ruby
+require 'rubygems'
+require 'xmpp4r'
+
+
+def usage
+ puts "#{$0} jabberid password"
+ exit 3
+end
+
+usage unless ARGV.size == 2
+
+begin
+ my_client = Jabber::Client.new(ARGV[0])
+ my_client.connect
+ my_client.auth(ARGV[1])
+rescue Jabber::ClientAuthenticationFailure => detail
+ puts "CRITICAL: Login Error"
+ exit 2
+rescue Errno::ECONNREFUSED => detail
+ puts "CRITICAL: Connection refused"
+ exit 2
+rescue SocketError => detail
+ puts "CRITICAL: Socket Error"
+ exit 2
+#rescue
+# puts "CRITICAL: Unknown Error"
+# exit 2
+end
+puts "OK: Login for #{ARGV[0]} successfull"
diff --git a/manifests/base.pp b/manifests/base.pp
index 8b96308..0068cd5 100644
--- a/manifests/base.pp
+++ b/manifests/base.pp
@@ -71,8 +71,6 @@ class nagios::base {
notify => Service['nagios'],
mode => '0750', owner => root, group => nagios;
}
- Package <<| tag == 'nagios::plugin::deploy::package' |>>
- File <<| tag == 'nagios::plugin::deploy::file' |>>
Nagios_command <<||>>
Nagios_contactgroup <<||>>
Nagios_contact <<||>>
@@ -87,7 +85,6 @@ class nagios::base {
Nagios_serviceextinfo <<||>>
Nagios_service <<||>>
Nagios_timeperiod <<||>>
- File <<| tag == 'nagios_plugin' |>>
Nagios_command <||> {
target => "${nagios::defaults::vars::int_nagios_cfgdir}/conf.d/nagios_command.cfg",
diff --git a/manifests/defaults/plugins.pp b/manifests/defaults/plugins.pp
index 18f8161..b713354 100644
--- a/manifests/defaults/plugins.pp
+++ b/manifests/defaults/plugins.pp
@@ -1,5 +1,4 @@
class nagios::defaults::plugins {
-
nagios::plugin {
'check_mysql_health':
source => 'nagios/plugins/check_mysql_health';
@@ -7,6 +6,9 @@ class nagios::defaults::plugins {
source => 'nagios/plugins/check_dns2';
'check_dnsbl':
source => 'nagios/plugins/check_dnsbl';
+ 'check_jabber_login':
+ source => 'nagios/plugins/check_jabber_login';
}
-
+ # for check_jabber_login
+ require rubygems::xmpp4r
}
diff --git a/manifests/plugin.pp b/manifests/plugin.pp
index abaa6e5..c2e7676 100644
--- a/manifests/plugin.pp
+++ b/manifests/plugin.pp
@@ -2,7 +2,7 @@ define nagios::plugin(
$source = 'absent',
$ensure = present
){
- @@file{$name:
+ file{$name:
path => $hardwaremodel ? {
'x86_64' => "/usr/lib64/nagios/plugins/$name",
default => "/usr/lib/nagios/plugins/$name",
diff --git a/manifests/plugin/deploy.pp b/manifests/plugin/deploy.pp
index 75f87d7..96fea41 100644
--- a/manifests/plugin/deploy.pp
+++ b/manifests/plugin/deploy.pp
@@ -10,14 +10,14 @@ define nagios::plugin::deploy($source = '', $ensure = 'present', $config = '', $
}
if !defined(Package[$require_package]) {
- @@package { $require_package:
+ package { $require_package:
ensure => installed,
tag => "nagios::plugin::deploy::package";
}
}
include nagios::plugin::scriptpaths
- @@file { "nagios_plugin_${name}":
+ file { "nagios_plugin_${name}":
path => "$nagios::plugin::scriptpaths::script_path/${name}",
source => "puppet://$server/modules/$real_source",
mode => 0755, owner => root, group => 0,
@@ -26,5 +26,5 @@ define nagios::plugin::deploy($source = '', $ensure = 'present', $config = '', $
}
# register the plugin
- @@nagios::plugin{$name: ensure => $ensure, require => Package['nagios-plugins'] }
+ nagios::plugin{$name: ensure => $ensure, require => Package['nagios-plugins'] }
}