From ea942b34344e2889779e3718c394687607a64c91 Mon Sep 17 00:00:00 2001 From: mh Date: Thu, 22 Aug 2013 18:15:55 +0200 Subject: remove silly naming as this anyway only makes it difficult to move checks --- manifests/service/http.pp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'manifests/service') diff --git a/manifests/service/http.pp b/manifests/service/http.pp index ef63abb..33921fa 100644 --- a/manifests/service/http.pp +++ b/manifests/service/http.pp @@ -18,14 +18,14 @@ define nagios::service::http( } case $ssl_mode { 'force',true,'only': { - nagios::service{"https_${name}_${check_code}": + nagios::service{"https_${name}": ensure => $ensure, use => $use, check_command => "check_https_url_regex!${real_check_domain}!${check_url}!'${check_code}'", } case $ssl_mode { 'force': { - nagios::service{"httprd_${name}": + nagios::service{"http_${name}": ensure => $ensure, use => $use, check_command => "check_http_url_regex!${real_check_domain}!${port}!${check_url}!'301'", @@ -36,7 +36,7 @@ define nagios::service::http( } case $ssl_mode { false,true: { - nagios::service{"http_${name}_${check_code}": + nagios::service{"http_${name}": ensure => $ensure, use => $use, check_command => "check_http_url_regex!${real_check_domain}!${port}!${check_url}!'${check_code}'", -- cgit v1.2.3 From bfa099d32fd1155f9fe9d7bde2e927ea31ea3e2b Mon Sep 17 00:00:00 2001 From: mh Date: Thu, 22 Aug 2013 18:18:16 +0200 Subject: make it possible to pass two different checks for http and https --- manifests/service/http.pp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'manifests/service') diff --git a/manifests/service/http.pp b/manifests/service/http.pp index 33921fa..f0390be 100644 --- a/manifests/service/http.pp +++ b/manifests/service/http.pp @@ -16,12 +16,20 @@ define nagios::service::http( 'absent' => $name, default => $check_domain } + if is_hash($check_code) { + $check_code_hash = $check_code + } else { + $check_code_hash = { + http => $check_code, + https => $check_code, + } + } case $ssl_mode { 'force',true,'only': { nagios::service{"https_${name}": ensure => $ensure, use => $use, - check_command => "check_https_url_regex!${real_check_domain}!${check_url}!'${check_code}'", + check_command => "check_https_url_regex!${real_check_domain}!${check_url}!'${check_code_hash[https]}'", } case $ssl_mode { 'force': { @@ -39,7 +47,7 @@ define nagios::service::http( nagios::service{"http_${name}": ensure => $ensure, use => $use, - check_command => "check_http_url_regex!${real_check_domain}!${port}!${check_url}!'${check_code}'", + check_command => "check_http_url_regex!${real_check_domain}!${port}!${check_url}!'${check_code_hash[http]}'", } } } -- cgit v1.2.3 From b3b005dad897be0c2a8fcf056d31623a0a01491e Mon Sep 17 00:00:00 2001 From: mh Date: Fri, 7 Feb 2014 19:41:46 +0100 Subject: better check on the status code as the reason is optional --- manifests/service/http.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'manifests/service') diff --git a/manifests/service/http.pp b/manifests/service/http.pp index f0390be..1470cac 100644 --- a/manifests/service/http.pp +++ b/manifests/service/http.pp @@ -8,7 +8,7 @@ define nagios::service::http( $check_domain = 'absent', $port = '80', $check_url = '/', - $check_code = 'OK', + $check_code = '200', $use = 'generic-service', $ssl_mode = false ){ -- cgit v1.2.3 From c1669419c7644528957a23fa893793efa9cde47d Mon Sep 17 00:00:00 2001 From: mh Date: Sat, 8 Feb 2014 14:45:10 +0100 Subject: linting --- manifests/service/http.pp | 82 +++++++++++++++++++++++------------------------ 1 file changed, 41 insertions(+), 41 deletions(-) (limited to 'manifests/service') diff --git a/manifests/service/http.pp b/manifests/service/http.pp index 1470cac..502758d 100644 --- a/manifests/service/http.pp +++ b/manifests/service/http.pp @@ -4,51 +4,51 @@ # - force: http is permanent redirect to https # - only: check only https define nagios::service::http( - $ensure = present, - $check_domain = 'absent', - $port = '80', - $check_url = '/', - $check_code = '200', - $use = 'generic-service', - $ssl_mode = false + $ensure = present, + $check_domain = 'absent', + $port = '80', + $check_url = '/', + $check_code = '200', + $use = 'generic-service', + $ssl_mode = false ){ - $real_check_domain = $check_domain ? { - 'absent' => $name, - default => $check_domain + $real_check_domain = $check_domain ? { + 'absent' => $name, + default => $check_domain + } + if is_hash($check_code) { + $check_code_hash = $check_code + } else { + $check_code_hash = { + http => $check_code, + https => $check_code, } - if is_hash($check_code) { - $check_code_hash = $check_code - } else { - $check_code_hash = { - http => $check_code, - https => $check_code, + } + case $ssl_mode { + 'force',true,'only': { + nagios::service{"https_${name}": + ensure => $ensure, + use => $use, + check_command => "check_https_url_regex!${real_check_domain}!${check_url}!'${check_code_hash[https]}'", } - } - case $ssl_mode { - 'force',true,'only': { - nagios::service{"https_${name}": - ensure => $ensure, - use => $use, - check_command => "check_https_url_regex!${real_check_domain}!${check_url}!'${check_code_hash[https]}'", - } - case $ssl_mode { - 'force': { - nagios::service{"http_${name}": - ensure => $ensure, - use => $use, - check_command => "check_http_url_regex!${real_check_domain}!${port}!${check_url}!'301'", - } - } - } + case $ssl_mode { + 'force': { + nagios::service{"http_${name}": + ensure => $ensure, + use => $use, + check_command => "check_http_url_regex!${real_check_domain}!${port}!${check_url}!'301'", + } } + } } - case $ssl_mode { - false,true: { - nagios::service{"http_${name}": - ensure => $ensure, - use => $use, - check_command => "check_http_url_regex!${real_check_domain}!${port}!${check_url}!'${check_code_hash[http]}'", - } - } + } + case $ssl_mode { + false,true: { + nagios::service{"http_${name}": + ensure => $ensure, + use => $use, + check_command => "check_http_url_regex!${real_check_domain}!${port}!${check_url}!'${check_code_hash[http]}'", + } } + } } -- cgit v1.2.3 From 60a2b8106a9403d786ca03a759035ad54d5976fc Mon Sep 17 00:00:00 2001 From: o Date: Mon, 1 Dec 2014 11:55:27 +0100 Subject: check_http by default also accept 301/302 --- manifests/service/http.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'manifests/service') diff --git a/manifests/service/http.pp b/manifests/service/http.pp index 502758d..b80c140 100644 --- a/manifests/service/http.pp +++ b/manifests/service/http.pp @@ -8,7 +8,7 @@ define nagios::service::http( $check_domain = 'absent', $port = '80', $check_url = '/', - $check_code = '200', + $check_code = '200,301,302', $use = 'generic-service', $ssl_mode = false ){ -- cgit v1.2.3 From 5e92209e5b284e0f0d99c30e555cc498a39c396e Mon Sep 17 00:00:00 2001 From: mh Date: Mon, 12 Oct 2015 23:23:44 +0200 Subject: introduce gpg checks --- manifests/service/gpgkey.pp | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 manifests/service/gpgkey.pp (limited to 'manifests/service') diff --git a/manifests/service/gpgkey.pp b/manifests/service/gpgkey.pp new file mode 100644 index 0000000..0c271f4 --- /dev/null +++ b/manifests/service/gpgkey.pp @@ -0,0 +1,43 @@ +# define a gpgkey to be watched +define nagios::service::gpgkey( + $ensure = 'present', + $warning = '14', + $key_info = undef, +){ + validate_slength($name,40,40) + require ::nagios::plugins::gpg + $gpg_home = $nagios::plugins::gpg::gpg_home + + exec{"manage_key_${name}": } + nagios::service{ + "check_gpg_${name}": + ensure => $ensure; + } + + if $ensure == 'present' { + Exec["manage_key_${name}"]{ + command => "gpg --homedir ${gpg_home} --recv-keys ${name}", + unless => "gpg --homedir ${gpg_home} --list-keys ${name}", + before => Nagios::Service["check_gpg_${name}"], + } + + Nagios::Service["check_gpg_${name}"]{ + check_command => "check_gpg!${warning}!${name}", + } + if $key_info { + Nagios::Service["check_gpg_${name}"]{ + service_description => "Keyfingerprint: ${name} - Info: ${key_info}", + } + } else { + Nagios::Service["check_gpg_${name}"]{ + service_description => "Keyfingerprint: ${name}", + } + } + } else { + Exec["manage_key_${name}"]{ + command => "gpg --batch --homedir ${gpg_home} --delete-key ${name}", + onlyif => "gpg --homedir ${gpg_home} --list-keys ${name}", + require => Nagios::Service["check_gpg_${name}"], + } + } +} -- cgit v1.2.3 From bbda7cef0b0d6d68c9d2c393592cbfbef9f3534e Mon Sep 17 00:00:00 2001 From: mh Date: Mon, 12 Oct 2015 23:26:10 +0200 Subject: introduce horde_login checks --- manifests/service/horde_login.pp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 manifests/service/horde_login.pp (limited to 'manifests/service') diff --git a/manifests/service/horde_login.pp b/manifests/service/horde_login.pp new file mode 100644 index 0000000..876ce2b --- /dev/null +++ b/manifests/service/horde_login.pp @@ -0,0 +1,18 @@ +# a horde login check +define nagios::service::horde_login( + $username, + $password, + $url, + $ensure = 'present', +){ + nagios::service{ + "horde_${name}": + ensure => $ensure; + } + + if $ensure != 'absent' { + Nagios::Service["horde_${name}"]{ + check_command => "check_horde_login!${url}!${username}!${password}", + } + } +} -- cgit v1.2.3 From d85a5924b713143426a59ece9df82bba7534e11b Mon Sep 17 00:00:00 2001 From: mh Date: Mon, 12 Oct 2015 23:29:30 +0200 Subject: ensure we run things with the right user/group --- manifests/service/gpgkey.pp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'manifests/service') diff --git a/manifests/service/gpgkey.pp b/manifests/service/gpgkey.pp index 0c271f4..bea2c57 100644 --- a/manifests/service/gpgkey.pp +++ b/manifests/service/gpgkey.pp @@ -8,7 +8,10 @@ define nagios::service::gpgkey( require ::nagios::plugins::gpg $gpg_home = $nagios::plugins::gpg::gpg_home - exec{"manage_key_${name}": } + exec{"manage_key_${name}": + user => nagios, + group => nagios, + } nagios::service{ "check_gpg_${name}": ensure => $ensure; -- cgit v1.2.3 From e0b08c71a7aaa721481a5662dc3c4eef143f32e4 Mon Sep 17 00:00:00 2001 From: mh Date: Mon, 12 Oct 2015 23:52:12 +0200 Subject: make it possible to define the keyserver to fetch from --- manifests/service/gpgkey.pp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'manifests/service') diff --git a/manifests/service/gpgkey.pp b/manifests/service/gpgkey.pp index bea2c57..08b7473 100644 --- a/manifests/service/gpgkey.pp +++ b/manifests/service/gpgkey.pp @@ -6,7 +6,8 @@ define nagios::service::gpgkey( ){ validate_slength($name,40,40) require ::nagios::plugins::gpg - $gpg_home = $nagios::plugins::gpg::gpg_home + $gpg_home = $nagios::plugins::gpg::gpg_home + $gpg_keyserver = $nagios::plugins::gpg::keyserver exec{"manage_key_${name}": user => nagios, @@ -19,7 +20,7 @@ define nagios::service::gpgkey( if $ensure == 'present' { Exec["manage_key_${name}"]{ - command => "gpg --homedir ${gpg_home} --recv-keys ${name}", + command => "gpg --keyserver ${gpg_keyserver} --homedir ${gpg_home} --recv-keys ${name}", unless => "gpg --homedir ${gpg_home} --list-keys ${name}", before => Nagios::Service["check_gpg_${name}"], } -- cgit v1.2.3 From 1c3e0881ef6a93637a63561f44ec3edc963a7220 Mon Sep 17 00:00:00 2001 From: mh Date: Tue, 13 Oct 2015 00:00:08 +0200 Subject: username can be name --- manifests/service/horde_login.pp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'manifests/service') diff --git a/manifests/service/horde_login.pp b/manifests/service/horde_login.pp index 876ce2b..6cab59e 100644 --- a/manifests/service/horde_login.pp +++ b/manifests/service/horde_login.pp @@ -1,9 +1,9 @@ # a horde login check define nagios::service::horde_login( - $username, $password, $url, - $ensure = 'present', + $username = $name, + $ensure = 'present', ){ nagios::service{ "horde_${name}": -- cgit v1.2.3 From 3a39c6e693a835d98ed382bdc3ce72eac31ea664 Mon Sep 17 00:00:00 2001 From: mh Date: Fri, 16 Oct 2015 15:38:20 +0200 Subject: fetch things over hkps and on every check --- manifests/service/gpgkey.pp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'manifests/service') diff --git a/manifests/service/gpgkey.pp b/manifests/service/gpgkey.pp index 08b7473..f04352a 100644 --- a/manifests/service/gpgkey.pp +++ b/manifests/service/gpgkey.pp @@ -6,8 +6,8 @@ define nagios::service::gpgkey( ){ validate_slength($name,40,40) require ::nagios::plugins::gpg - $gpg_home = $nagios::plugins::gpg::gpg_home - $gpg_keyserver = $nagios::plugins::gpg::keyserver + $gpg_home = $nagios::plugins::gpg::gpg_home + $gpg_cmd = "gpg --homedir ${gpg_home}" exec{"manage_key_${name}": user => nagios, @@ -20,8 +20,8 @@ define nagios::service::gpgkey( if $ensure == 'present' { Exec["manage_key_${name}"]{ - command => "gpg --keyserver ${gpg_keyserver} --homedir ${gpg_home} --recv-keys ${name}", - unless => "gpg --homedir ${gpg_home} --list-keys ${name}", + command => "${gpg_cmd} --keyserver hkps://hkps.pool.sks-keyservers.net --keyserver-options ca-cert-file=${gpg_home}/sks-keyservers.netCA.pem --recv-keys ${name}", + unless => "${gpg_cmd} --list-keys ${name}", before => Nagios::Service["check_gpg_${name}"], } @@ -39,8 +39,8 @@ define nagios::service::gpgkey( } } else { Exec["manage_key_${name}"]{ - command => "gpg --batch --homedir ${gpg_home} --delete-key ${name}", - onlyif => "gpg --homedir ${gpg_home} --list-keys ${name}", + command => "${gpg_cmd} --batch --delete-key ${name}", + onlyif => "${gpg_cmd} --list-keys ${name}", require => Nagios::Service["check_gpg_${name}"], } } -- cgit v1.2.3 From a9a04a8e1aa447d71f8745491da9168c81206392 Mon Sep 17 00:00:00 2001 From: mh Date: Sun, 25 Oct 2015 14:57:27 +0100 Subject: it's sufficient to check it only once an hour --- manifests/service/gpgkey.pp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'manifests/service') diff --git a/manifests/service/gpgkey.pp b/manifests/service/gpgkey.pp index f04352a..df13ca8 100644 --- a/manifests/service/gpgkey.pp +++ b/manifests/service/gpgkey.pp @@ -1,8 +1,9 @@ # define a gpgkey to be watched define nagios::service::gpgkey( - $ensure = 'present', - $warning = '14', - $key_info = undef, + $ensure = 'present', + $warning = '14', + $key_info = undef, + $check_interval = 60, ){ validate_slength($name,40,40) require ::nagios::plugins::gpg @@ -26,7 +27,8 @@ define nagios::service::gpgkey( } Nagios::Service["check_gpg_${name}"]{ - check_command => "check_gpg!${warning}!${name}", + check_command => "check_gpg!${warning}!${name}", + check_interval => $check_interval, } if $key_info { Nagios::Service["check_gpg_${name}"]{ -- cgit v1.2.3 From edd94dd98f53c1066c7bd6253bc910c196f798fc Mon Sep 17 00:00:00 2001 From: mh Date: Sun, 25 Oct 2015 15:06:09 +0100 Subject: linting nagios::service::imap --- manifests/service/imap.pp | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'manifests/service') diff --git a/manifests/service/imap.pp b/manifests/service/imap.pp index b703db4..45b667a 100644 --- a/manifests/service/imap.pp +++ b/manifests/service/imap.pp @@ -1,24 +1,26 @@ +# check an imap service define nagios::service::imap( - $ensure = 'present', - $host = 'absent', - $port = '143', - $tls = true, - $tls_port = '993' + $ensure = 'present', + $host = 'absent', + $port = '143', + $tls = true, + $tls_port = '993' ){ $real_host = $host ? { 'absent' => $name, - default => $host + default => $host } + $tls_ensure = $tls ? { + true => $ensure, + default => 'absent' + } nagios::service{ "imap_${name}_${port}": ensure => $ensure; "imaps_${name}_${tls_port}": - ensure => $tls ? { - true => $ensure, - default => 'absent' - }; + ensure => $tls_ensure; } if $ensure != 'absent' { -- cgit v1.2.3 From e66581b620d89e81ec02754005f3e3fa2bc603cf Mon Sep 17 00:00:00 2001 From: mh Date: Sun, 25 Oct 2015 16:28:46 +0100 Subject: add an imap_login check --- manifests/service/imap_login.pp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 manifests/service/imap_login.pp (limited to 'manifests/service') diff --git a/manifests/service/imap_login.pp b/manifests/service/imap_login.pp new file mode 100644 index 0000000..53c432a --- /dev/null +++ b/manifests/service/imap_login.pp @@ -0,0 +1,20 @@ +# a imap login check +define nagios::service::imap_login( + $username, + $password, + $warning = 5, + $critical = 10, + $host = $::fqdn, + $ensure = 'present', +){ + nagios::service{ + "imap_login_${name}": + ensure => $ensure; + } + + if $ensure != 'absent' { + Nagios::Service["imap_login_${name}"]{ + check_command => "check_imap_login!${host}!${username}!${password}!${warning}!${critical}", + } + } +} -- cgit v1.2.3 From 27f65e05ff1120c9432b86a4e964b31f9d41b7b7 Mon Sep 17 00:00:00 2001 From: mh Date: Mon, 26 Oct 2015 14:14:22 +0100 Subject: make it possible to also pass down the host_name --- manifests/service/imap_login.pp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'manifests/service') diff --git a/manifests/service/imap_login.pp b/manifests/service/imap_login.pp index 53c432a..25303a3 100644 --- a/manifests/service/imap_login.pp +++ b/manifests/service/imap_login.pp @@ -2,10 +2,11 @@ define nagios::service::imap_login( $username, $password, - $warning = 5, - $critical = 10, - $host = $::fqdn, - $ensure = 'present', + $warning = 5, + $critical = 10, + $host = $::fqdn, + $host_name = $::fqdn, + $ensure = 'present', ){ nagios::service{ "imap_login_${name}": @@ -15,6 +16,7 @@ define nagios::service::imap_login( if $ensure != 'absent' { Nagios::Service["imap_login_${name}"]{ check_command => "check_imap_login!${host}!${username}!${password}!${warning}!${critical}", + host_name => $host_name, } } } -- cgit v1.2.3 From c3ca4ac25d7cdfd5826149445f2946d64d968f97 Mon Sep 17 00:00:00 2001 From: mh Date: Sat, 31 Oct 2015 10:26:05 +0100 Subject: also add pop3 login checks --- manifests/service/pop3_login.pp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 manifests/service/pop3_login.pp (limited to 'manifests/service') diff --git a/manifests/service/pop3_login.pp b/manifests/service/pop3_login.pp new file mode 100644 index 0000000..7453528 --- /dev/null +++ b/manifests/service/pop3_login.pp @@ -0,0 +1,22 @@ +# a pop3 login check +define nagios::service::pop3_login( + $username, + $password, + $warning = 5, + $critical = 10, + $host = $::fqdn, + $host_name = $::fqdn, + $ensure = 'present', +){ + nagios::service{ + "pop3_login_${name}": + ensure => $ensure; + } + + if $ensure != 'absent' { + Nagios::Service["pop3_login_${name}"]{ + check_command => "check_pop3_login!${host}!${username}!${password}!${warning}!${critical}", + host_name => $host_name, + } + } +} -- cgit v1.2.3