From 6ec1a7278b66826b2e64589ab5336243b27cffdb Mon Sep 17 00:00:00 2001 From: Jerome Charaoui Date: Fri, 11 Dec 2009 14:24:55 -0500 Subject: add mysql commands and service --- manifests/service/mysql.pp | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 manifests/service/mysql.pp (limited to 'manifests/service') diff --git a/manifests/service/mysql.pp b/manifests/service/mysql.pp new file mode 100644 index 0000000..d09f335 --- /dev/null +++ b/manifests/service/mysql.pp @@ -0,0 +1,35 @@ +define nagios::service::mysql( + $ensure = present, + $check_hostname = 'localhost', + $check_socket = 'absent', + $check_username = 'nagios', + $check_password = '', + $check_database = '', + $check_mode = 'absent' +){ + + $real_check_mode = $check_mode ? { + 'absent' => 'tcp', + default => 'socket', + } + + case $real_check_mode { + # Check MySQL using TCP + 'tcp': { + nagios::service { 'mysql_tcp': + ensure => $ensure, + check_command => "check_mysql_tcp!${check_hostname}!${check_username}!${check_password}!${check_database}", + } + } + # Check MySQL using local socket + 'socket': { + nagios::service { 'mysql_socket': + ensure => $ensure, + check_command => $check_socket ? { + 'absent' => "check_mysql!${check_username}!${check_password}!${check_database}", + default => "check_mysql_socket!${check_socket}!${check_username}!${check_password}!${check_database}", + }, + } + } + } +} -- cgit v1.2.3 From 83963cef28ca42055d5becbf0b697ee1f4bd5d4a Mon Sep 17 00:00:00 2001 From: Jerome Charaoui Date: Tue, 22 Dec 2009 11:00:09 -0500 Subject: adjust mysql commands & service --- manifests/service/mysql.pp | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) (limited to 'manifests/service') diff --git a/manifests/service/mysql.pp b/manifests/service/mysql.pp index d09f335..9d99d09 100644 --- a/manifests/service/mysql.pp +++ b/manifests/service/mysql.pp @@ -4,30 +4,24 @@ define nagios::service::mysql( $check_socket = 'absent', $check_username = 'nagios', $check_password = '', - $check_database = '', - $check_mode = 'absent' + $check_mode = 'tcp' ){ - $real_check_mode = $check_mode ? { - 'absent' => 'tcp', - default => 'socket', - } - - case $real_check_mode { + case $check_mode { # Check MySQL using TCP 'tcp': { nagios::service { 'mysql_tcp': ensure => $ensure, - check_command => "check_mysql_tcp!${check_hostname}!${check_username}!${check_password}!${check_database}", + check_command => "check_mysql_tcp!${check_hostname}!${check_username}!${check_password}", } } # Check MySQL using local socket - 'socket': { + default: { nagios::service { 'mysql_socket': ensure => $ensure, check_command => $check_socket ? { 'absent' => "check_mysql!${check_username}!${check_password}!${check_database}", - default => "check_mysql_socket!${check_socket}!${check_username}!${check_password}!${check_database}", + default => "check_mysql_socket!${check_socket}!${check_username}!${check_password}", }, } } -- cgit v1.2.3 From d96b70dc892bcf6e76bd6be96e9c15325f784a15 Mon Sep 17 00:00:00 2001 From: Jerome Charaoui Date: Mon, 28 Dec 2009 14:12:24 -0500 Subject: remove $hostname from service names: these are added internally to nagios_service type, but should not appear for service descriptions in nagios --- manifests/service/http.pp | 6 +++--- manifests/service/ntp.pp | 2 +- manifests/service/ping.pp | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) (limited to 'manifests/service') diff --git a/manifests/service/http.pp b/manifests/service/http.pp index 5c6cda1..5fd9890 100644 --- a/manifests/service/http.pp +++ b/manifests/service/http.pp @@ -16,13 +16,13 @@ define nagios::service::http( } case $ssl_mode { 'force',true,'only': { - nagios::service{"https_${name}_${check_code}_${hostname}": + nagios::service{"https_${name}_${check_code}": ensure => $ensure, check_command => "check_https_url_regex!${real_check_domain}!${check_url}!'${check_code}'", } case $ssl_mode { 'force': { - nagios::service{"httprd_${name}_${hostname}": + nagios::service{"httprd_${name}": ensure => $ensure, check_command => "check_http_url_regex!${real_check_domain}!${check_url}!'301'", } @@ -32,7 +32,7 @@ define nagios::service::http( } case $ssl_mode { false,true: { - nagios::service{"http_${name}_${check_code}_${hostname}": + nagios::service{"http_${name}_${check_code}": ensure => $ensure, check_command => "check_http_url_regex!${real_check_domain}!${check_url}!'${check_code}'", } diff --git a/manifests/service/ntp.pp b/manifests/service/ntp.pp index c07177d..eca255a 100644 --- a/manifests/service/ntp.pp +++ b/manifests/service/ntp.pp @@ -1,7 +1,7 @@ # manifests/service/ntp.pp class nagios::service::ntp { - nagios::service{ "check_ntp_${hostname}": + nagios::service{ "check_ntp": check_command => "check_ntp_time", host_name => $fqdn, } diff --git a/manifests/service/ping.pp b/manifests/service/ping.pp index 63a5400..c705c68 100644 --- a/manifests/service/ping.pp +++ b/manifests/service/ping.pp @@ -6,7 +6,7 @@ define nagios::service::ping( default => $nagios_ping_rate } - nagios::service{ "check_ping_${hostname}": + nagios::service{ "check_ping": ensure => $ensure, check_command => "check_ping${real_nagios_ping_rate}", } -- cgit v1.2.3 From 9c5e3367a6106fbf46aa53014cf5bfa026195d71 Mon Sep 17 00:00:00 2001 From: Jerome Charaoui Date: Mon, 28 Dec 2009 15:10:13 -0500 Subject: add port and database options to mysql service, use 'hostname' plugin parameter to specify socket --- manifests/service/mysql.pp | 45 ++++++++++++++++++++++++++++++++------------- 1 file changed, 32 insertions(+), 13 deletions(-) (limited to 'manifests/service') diff --git a/manifests/service/mysql.pp b/manifests/service/mysql.pp index 9d99d09..ca2ae15 100644 --- a/manifests/service/mysql.pp +++ b/manifests/service/mysql.pp @@ -1,29 +1,48 @@ +# Checks a mysql instance via tcp or socket + define nagios::service::mysql( $ensure = present, - $check_hostname = 'localhost', - $check_socket = 'absent', + $check_hostname = 'absent', + $check_port = '3306', $check_username = 'nagios', $check_password = '', + $check_database = 'absent', $check_mode = 'tcp' ){ + if ($check_hostname == 'absent') { + fail("Please specify a hostname, ip address or socket to check a mysql instance.") + } case $check_mode { - # Check MySQL using TCP 'tcp': { - nagios::service { 'mysql_tcp': - ensure => $ensure, - check_command => "check_mysql_tcp!${check_hostname}!${check_username}!${check_password}", + if ($check_hostname == 'localhost') { + $real_check_hostname = '127.0.0.1' + } + else { + $real_check_hostname = $check_hostname } } - # Check MySQL using local socket default: { - nagios::service { 'mysql_socket': - ensure => $ensure, - check_command => $check_socket ? { - 'absent' => "check_mysql!${check_username}!${check_password}!${check_database}", - default => "check_mysql_socket!${check_socket}!${check_username}!${check_password}", - }, + if ($check_hostname == '127.0.0.1') { + $real_check_hostname = 'localhost' } + else { + $real_check_hostname = $check_hostname + } + } + } + + if ($check_database == 'absent') { + nagios::service { 'mysql': + ensure => $ensure, + check_command => "check_mysql!${real_check_hostname}!${check_port}!${check_username}!${check_password}", } } + else { + nagios::service { "mysql_${check_database}": + ensure => $ensure, + check_command => "check_mysql_db!${real_check_hostname}!${check_port}!${check_username}!${check_password}!${check_database}", + } + } + } -- cgit v1.2.3 From 4257fa1d29f3251960cc40f9651bbedb40d3d531 Mon Sep 17 00:00:00 2001 From: Jerome Charaoui Date: Mon, 8 Feb 2010 12:09:01 -0500 Subject: add passive service --- manifests/service/passive.pp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 manifests/service/passive.pp (limited to 'manifests/service') diff --git a/manifests/service/passive.pp b/manifests/service/passive.pp new file mode 100644 index 0000000..f3df1e8 --- /dev/null +++ b/manifests/service/passive.pp @@ -0,0 +1,18 @@ +define nagios::service::passive( + $ensure = present, + $notification_interval = '', + $notification_period = '', + $notification_options = '', + $contact_groups = '' +) { + + nagios::service { $name: + use => 'passive-service', + check_command => 'check_dummy!0', + notification_interval => $notification_interval, + notification_period => $notification_period, + notification_options => $notification_options, + contact_groups => $contact_groups, + } + +} -- cgit v1.2.3