diff options
author | mh <mh@immerda.ch> | 2011-04-06 10:44:58 +0200 |
---|---|---|
committer | mh <mh@immerda.ch> | 2011-04-06 10:44:58 +0200 |
commit | 23e3ddf1daa52d46c40d540d25218195997e8524 (patch) | |
tree | 78d7ae8592b4154ecd701228fe6f128d0b507695 | |
parent | f2df62c9d17d481a3d616a4f2de9496638fadc0a (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_login | 30 | ||||
-rw-r--r-- | manifests/base.pp | 3 | ||||
-rw-r--r-- | manifests/defaults/plugins.pp | 6 | ||||
-rw-r--r-- | manifests/plugin.pp | 2 | ||||
-rw-r--r-- | manifests/plugin/deploy.pp | 6 |
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'] } } |