From 97e13bd2809d1e431fcac063abeb757f235f2394 Mon Sep 17 00:00:00 2001 From: Jerome Charaoui Date: Wed, 2 Dec 2009 17:19:20 -0500 Subject: replace defaults based on cfg files by puppet resources --- manifests/defaults/commands.pp | 47 +++++++++++++++++++++++++++++++++ manifests/defaults/contactgroups.pp | 9 +++++++ manifests/defaults/contacts.pp | 15 +++++++++++ manifests/defaults/host_templates.pp | 21 +++++++++++++++ manifests/defaults/hostgroups.pp | 13 +++++++++ manifests/defaults/service_templates.pp | 29 ++++++++++++++++++++ manifests/defaults/timeperiods.pp | 33 +++++++++++++++++++++++ 7 files changed, 167 insertions(+) create mode 100644 manifests/defaults/commands.pp create mode 100644 manifests/defaults/contactgroups.pp create mode 100644 manifests/defaults/contacts.pp create mode 100644 manifests/defaults/host_templates.pp create mode 100644 manifests/defaults/hostgroups.pp create mode 100644 manifests/defaults/service_templates.pp create mode 100644 manifests/defaults/timeperiods.pp (limited to 'manifests/defaults') diff --git a/manifests/defaults/commands.pp b/manifests/defaults/commands.pp new file mode 100644 index 0000000..7130b26 --- /dev/null +++ b/manifests/defaults/commands.pp @@ -0,0 +1,47 @@ +class nagios::defaults::commands { + + # common service commands + + nagios_command { + ssh_port: + command_line => '$USER1$/check_ssh -p $ARG1$ $HOSTADDRESS$'; + # from apache2.pp + http_port: + command_line => '$USER1$/check_http -p $ARG1$ -H $HOSTADDRESS$ -I $HOSTADDRESS$'; + # from bind.pp + check_dig2: + command_line => '$USER1$/check_dig -H $HOSTADDRESS$ -l $ARG1$ --record_type=$ARG2$'; + check_ntp_time: + command_line => '$USER1$/check_ntp_time -H $HOSTADDRESS$ -w 0.5 -c 1'; + check_http_url: + command_line => '$USER1$/check_http -H $ARG1$ -u $ARG2$'; + check_http_url_regex: + command_line => '$USER1$/check_http -H $ARG1$ -u $ARG2$ -e $ARG3$'; + check_https_url: + command_line => '$USER1$/check_http --ssl -H $ARG1$ -u $ARG2$'; + check_https_url_regex: + command_line => '$USER1$/check_http --ssl -H $ARG1$ -u $ARG2$ -e $ARG3$'; + check_https: + command_line => '$USER1$/check_http -S -H $HOSTADDRESS$'; + check_silc: + command_line => '$USER1$/check_tcp -p 706 -H $ARG1$'; + check_sobby: + command_line => '$USER1$/check_tcp -H $ARG1$ -p $ARG2$'; + check_jabber: + command_line => '$USER1$/check_jabber -H $ARG1$'; + check_jabber_login: + command_line => '$USER1$/check_jabber_login $ARG1$ $ARG2$', + require => Nagios::Plugin['check_jabber_login']; + } + + # notification commands + + nagios_command { + 'notify-host-by-email': + command_line => '/usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$'; + 'notify-service-by-email': + command_line => '/usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$' + + } + +} diff --git a/manifests/defaults/contactgroups.pp b/manifests/defaults/contactgroups.pp new file mode 100644 index 0000000..f5affc6 --- /dev/null +++ b/manifests/defaults/contactgroups.pp @@ -0,0 +1,9 @@ +class nagios::defaults::contactgroups { + + nagios_contactgroup { + 'admins': + alias => 'Nagios Administrators', + members => 'root', + } + +} diff --git a/manifests/defaults/contacts.pp b/manifests/defaults/contacts.pp new file mode 100644 index 0000000..0252b5a --- /dev/null +++ b/manifests/defaults/contacts.pp @@ -0,0 +1,15 @@ +class nagios::defaults::contacts { + + nagios_contact { + 'root': + alias => 'Root', + service_notification_period => '24x7', + host_notification_period => '24x7', + service_notification_options => 'w,u,c,r', + host_notification_options => 'd,r', + service_notification_commands => 'notify-service-by-email', + host_notification_commands => 'notify-host-by-email', + email => 'root@localhost', + } + +} diff --git a/manifests/defaults/host_templates.pp b/manifests/defaults/host_templates.pp new file mode 100644 index 0000000..30d7544 --- /dev/null +++ b/manifests/defaults/host_templates.pp @@ -0,0 +1,21 @@ +class nagios::defaults::host_templates { + + nagios_host { + 'generic-host': + notifications_enabled => '1', + event_handler_enabled => '1', + flap_detection_enabled => '1', + failure_prediction_enabled => '1', + process_perf_data => '1', + retain_status_information => '1', + retain_nonstatus_information => '1', + check_command => 'check-host-alive', + max_check_attempts => '10', + notification_interval => '0', + notification_period => '24x7', + notification_options => 'd,u,r', + contact_groups => 'admins', + register => '0', + } + +} diff --git a/manifests/defaults/hostgroups.pp b/manifests/defaults/hostgroups.pp new file mode 100644 index 0000000..3a4f4d1 --- /dev/null +++ b/manifests/defaults/hostgroups.pp @@ -0,0 +1,13 @@ +class nagios::defaults::hostgroups { + + nagios_hostgroup { + 'all': + alias => 'All Servers', + members => '*'; + 'debian-servers': + alias => 'Debian GNU/Linux Servers'; + 'centos-servers': + alias => 'CentOS GNU/Linux Servers'; + } + +} diff --git a/manifests/defaults/service_templates.pp b/manifests/defaults/service_templates.pp new file mode 100644 index 0000000..12247a0 --- /dev/null +++ b/manifests/defaults/service_templates.pp @@ -0,0 +1,29 @@ +class nagios::defaults::service_templates { + + nagios_service { + 'generic-service': + active_checks_enabled => '1', + passive_checks_enabled => '1', + parallelize_check => '1', + obsess_over_service => '1', + check_freshness => '0', + notifications_enabled => '1', + event_handler_enabled => '1', + flap_detection_enabled => '1', + failure_prediction_enabled => '1', + process_perf_data => '1', + retain_status_information => '1', + retain_nonstatus_information => '1', + notification_interval => '0', + is_volatile => '0', + check_period => '24x7', + normal_check_interval => '5', + retry_check_interval => '1', + max_check_attempts => '4', + notification_period => '24x7', + notification_options => 'w,u,c,r', + contact_groups => 'admins', + register => '0', + } + +} diff --git a/manifests/defaults/timeperiods.pp b/manifests/defaults/timeperiods.pp new file mode 100644 index 0000000..0d05118 --- /dev/null +++ b/manifests/defaults/timeperiods.pp @@ -0,0 +1,33 @@ +class nagios::defaults::timeperiods { + + nagios_timeperiod { + '24x7': + alias => '24 Hours A Day, 7 Days A Week', + sunday => '00:00-24:00', + monday => '00:00-24:00', + tuesday => '00:00-24:00', + wednesday => '00:00-24:00', + thursday => '00:00-24:00', + friday => '00:00-24:00', + saturday => '00:00-24:00'; + 'workhours': + alias => 'Standard Work Hours', + monday => '09:00-17:00', + tuesday => '09:00-17:00', + wednesday => '09:00-17:00', + thursday => '09:00-17:00', + friday => '09:00-17:00'; + 'nonworkhours': + alias => 'Non-Work Hours', + sunday => '00:00-24:00', + monday => '00:00-09:00,17:00-24:00', + tuesday => '00:00-09:00,17:00-24:00', + wednesday => '00:00-09:00,17:00-24:00', + thursday => '00:00-09:00,17:00-24:00', + friday => '00:00-09:00,17:00-24:00', + saturday => '00:00-24:00'; + 'never': + alias => 'Never'; + } + +} -- cgit v1.2.3 From 04cb2af5acc7811596aa0542ec08d39a17459907 Mon Sep 17 00:00:00 2001 From: Jerome Charaoui Date: Wed, 2 Dec 2009 17:26:50 -0500 Subject: remove jabber command from default commands until we decide if/how to include plugins --- manifests/defaults/commands.pp | 3 --- 1 file changed, 3 deletions(-) (limited to 'manifests/defaults') diff --git a/manifests/defaults/commands.pp b/manifests/defaults/commands.pp index 7130b26..f2d940b 100644 --- a/manifests/defaults/commands.pp +++ b/manifests/defaults/commands.pp @@ -29,9 +29,6 @@ class nagios::defaults::commands { command_line => '$USER1$/check_tcp -H $ARG1$ -p $ARG2$'; check_jabber: command_line => '$USER1$/check_jabber -H $ARG1$'; - check_jabber_login: - command_line => '$USER1$/check_jabber_login $ARG1$ $ARG2$', - require => Nagios::Plugin['check_jabber_login']; } # notification commands -- cgit v1.2.3 From aa87ce0c5bbf39fa3ac370960c2eec7c81b23cd3 Mon Sep 17 00:00:00 2001 From: Jerome Charaoui Date: Wed, 2 Dec 2009 18:23:56 -0500 Subject: move nagios templates in a file resource as puppet doesn't support them using native types, see issue #1180 --- manifests/defaults/commands.pp | 2 -- manifests/defaults/host_templates.pp | 3 +++ manifests/defaults/service_templates.pp | 3 +++ manifests/defaults/templates.pp | 14 ++++++++++++++ 4 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 manifests/defaults/templates.pp (limited to 'manifests/defaults') diff --git a/manifests/defaults/commands.pp b/manifests/defaults/commands.pp index f2d940b..253ce51 100644 --- a/manifests/defaults/commands.pp +++ b/manifests/defaults/commands.pp @@ -21,8 +21,6 @@ class nagios::defaults::commands { command_line => '$USER1$/check_http --ssl -H $ARG1$ -u $ARG2$'; check_https_url_regex: command_line => '$USER1$/check_http --ssl -H $ARG1$ -u $ARG2$ -e $ARG3$'; - check_https: - command_line => '$USER1$/check_http -S -H $HOSTADDRESS$'; check_silc: command_line => '$USER1$/check_tcp -p 706 -H $ARG1$'; check_sobby: diff --git a/manifests/defaults/host_templates.pp b/manifests/defaults/host_templates.pp index 30d7544..699b965 100644 --- a/manifests/defaults/host_templates.pp +++ b/manifests/defaults/host_templates.pp @@ -1,5 +1,8 @@ class nagios::defaults::host_templates { + # this inoperative for the moment, see : + # http://projects.reductivelabs.com/issues/1180 + nagios_host { 'generic-host': notifications_enabled => '1', diff --git a/manifests/defaults/service_templates.pp b/manifests/defaults/service_templates.pp index 12247a0..326ce05 100644 --- a/manifests/defaults/service_templates.pp +++ b/manifests/defaults/service_templates.pp @@ -1,5 +1,8 @@ class nagios::defaults::service_templates { + # this inoperative for the moment, see : + # http://projects.reductivelabs.com/issues/1180 + nagios_service { 'generic-service': active_checks_enabled => '1', diff --git a/manifests/defaults/templates.pp b/manifests/defaults/templates.pp new file mode 100644 index 0000000..752ba60 --- /dev/null +++ b/manifests/defaults/templates.pp @@ -0,0 +1,14 @@ +class nagios::defaults::templates { + + file { 'nagios_templates': + path => "${nagios_cfgdir}/conf.d/nagios_templates.cfg", + source => [ "puppet://$server/modules/site-nagios/configs/${fqdn}/nagios_templates.cfg", + "puppet://$server/modules/site-nagios/configs/${operatingsystem}/nagios_templates.cfg", + "puppet://$server/modules/site-nagios/configs/nagios_templates.cfg", + "puppet://$server/modules/nagios/configs/${operatingsystem}/nagios_templates.cfg", + "puppet://$server/modules/nagios/configs/nagios_templates.cfg" ], + notify => Service['nagios'], + mode => 0644, owner => root, group => root; + } + +} -- cgit v1.2.3 From e768ec64081846a5ed091e47ac9b5b79d3893e70 Mon Sep 17 00:00:00 2001 From: Jerome Charaoui Date: Wed, 2 Dec 2009 18:37:12 -0500 Subject: fix cfgdir variable scope --- manifests/defaults/templates.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'manifests/defaults') diff --git a/manifests/defaults/templates.pp b/manifests/defaults/templates.pp index 752ba60..5a3d23d 100644 --- a/manifests/defaults/templates.pp +++ b/manifests/defaults/templates.pp @@ -1,7 +1,7 @@ class nagios::defaults::templates { file { 'nagios_templates': - path => "${nagios_cfgdir}/conf.d/nagios_templates.cfg", + path => "${nagios::nagios_cfgdir}/conf.d/nagios_templates.cfg", source => [ "puppet://$server/modules/site-nagios/configs/${fqdn}/nagios_templates.cfg", "puppet://$server/modules/site-nagios/configs/${operatingsystem}/nagios_templates.cfg", "puppet://$server/modules/site-nagios/configs/nagios_templates.cfg", -- cgit v1.2.3 From bf56902bf1411611dcedec95dbc49c654a07f347 Mon Sep 17 00:00:00 2001 From: Jerome Charaoui Date: Tue, 8 Dec 2009 13:27:54 -0500 Subject: add more commands to defaults::commands and distinguish between common commands and commands required by some services defined in other modules --- manifests/defaults/commands.pp | 45 +++++++++++++++++++++++++++++++++--------- 1 file changed, 36 insertions(+), 9 deletions(-) (limited to 'manifests/defaults') diff --git a/manifests/defaults/commands.pp b/manifests/defaults/commands.pp index 253ce51..b7c16df 100644 --- a/manifests/defaults/commands.pp +++ b/manifests/defaults/commands.pp @@ -3,16 +3,30 @@ class nagios::defaults::commands { # common service commands nagios_command { - ssh_port: + check_ping: + command_line => '$USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$'; + check-host-alive: + command_line => '$USER1$/check_ping -H $HOSTADDRESS$ -w 5000,100% -c 5000,100% -p 1'; + check_tcp: + command_line => '$USER1$/check_tcp -H $HOSTADDRESS$ -p $ARG1$'; + check_udp: + command_line => '$USER1$/check_udp -H $HOSTADDRESS$ -p $ARG1$'; + check_load: + command_line => '$USER1$/check_load --warning=$ARG1$,$ARG2$,$ARG3$ --critical=$ARG4$,$ARG5$,$ARG6$'; + check_disk: + command_line => '$USER1$/check_disk -w $ARG1$ -c $ARG2$ -e -p $ARG3$'; + check_all_disks: + command_line => '$USER1$/check_disk -w $ARG1$ -c $ARG2$ -e'; + check_ssh: + command_line => '$USER1$/check_ssh $HOSTADDRESS$'; + check_ssh_port: command_line => '$USER1$/check_ssh -p $ARG1$ $HOSTADDRESS$'; - # from apache2.pp - http_port: - command_line => '$USER1$/check_http -p $ARG1$ -H $HOSTADDRESS$ -I $HOSTADDRESS$'; - # from bind.pp - check_dig2: - command_line => '$USER1$/check_dig -H $HOSTADDRESS$ -l $ARG1$ --record_type=$ARG2$'; - check_ntp_time: - command_line => '$USER1$/check_ntp_time -H $HOSTADDRESS$ -w 0.5 -c 1'; + check_http: + command_line => '$USER1$/check_http -H $HOSTADDRESS$ -I $HOSTADDRESS$'; + check_https: + command_line => '$USER1$/check_http --ssl -H $HOSTADDRESS$ -I $HOSTADDRESS$'; + check_https_cert: + command_line => '$USER1$/check_http --ssl -C 20 -H $HOSTADDRESS$ -I $HOSTADDRESS$'; check_http_url: command_line => '$USER1$/check_http -H $ARG1$ -u $ARG2$'; check_http_url_regex: @@ -21,6 +35,8 @@ class nagios::defaults::commands { command_line => '$USER1$/check_http --ssl -H $ARG1$ -u $ARG2$'; check_https_url_regex: command_line => '$USER1$/check_http --ssl -H $ARG1$ -u $ARG2$ -e $ARG3$'; + check_ntp_time: + command_line => '$USER1$/check_ntp_time -H $HOSTADDRESS$ -w 0.5 -c 1'; check_silc: command_line => '$USER1$/check_tcp -p 706 -H $ARG1$'; check_sobby: @@ -29,6 +45,17 @@ class nagios::defaults::commands { command_line => '$USER1$/check_jabber -H $ARG1$'; } + # commands for services defined by other modules + + nagios_command { + # from apache module + http_port: + command_line => '$USER1$/check_http -p $ARG1$ -H $HOSTADDRESS$ -I $HOSTADDRESS$'; + # from bind module + check_dig2: + command_line => '$USER1$/check_dig -H $HOSTADDRESS$ -l $ARG1$ --record_type=$ARG2$'; + } + # notification commands nagios_command { -- cgit v1.2.3 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/defaults/commands.pp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'manifests/defaults') diff --git a/manifests/defaults/commands.pp b/manifests/defaults/commands.pp index b7c16df..342fed1 100644 --- a/manifests/defaults/commands.pp +++ b/manifests/defaults/commands.pp @@ -35,6 +35,12 @@ class nagios::defaults::commands { command_line => '$USER1$/check_http --ssl -H $ARG1$ -u $ARG2$'; check_https_url_regex: command_line => '$USER1$/check_http --ssl -H $ARG1$ -u $ARG2$ -e $ARG3$'; + check_mysql: + command_line => '$USER1$/check_mysql -u $ARG1$ -p $ARG2$ -d $ARG3$ '; + check_mysql_socket: + command_line => '$USER1$/check_mysql -s $ARG1$ -u $ARG2$ -p $ARG3$ -d $ARG4$ '; + check_mysql_tcp: + command_line => '$USER1$/check_mysql -H $ARG1$ -u $ARG2$ -p $ARG3$ -d $ARG4$'; check_ntp_time: command_line => '$USER1$/check_ntp_time -H $HOSTADDRESS$ -w 0.5 -c 1'; check_silc: -- 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/defaults/commands.pp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'manifests/defaults') diff --git a/manifests/defaults/commands.pp b/manifests/defaults/commands.pp index 342fed1..795c526 100644 --- a/manifests/defaults/commands.pp +++ b/manifests/defaults/commands.pp @@ -36,11 +36,11 @@ class nagios::defaults::commands { check_https_url_regex: command_line => '$USER1$/check_http --ssl -H $ARG1$ -u $ARG2$ -e $ARG3$'; check_mysql: - command_line => '$USER1$/check_mysql -u $ARG1$ -p $ARG2$ -d $ARG3$ '; + command_line => '$USER1$/check_mysql -u $ARG1$ -p $ARG2$'; check_mysql_socket: - command_line => '$USER1$/check_mysql -s $ARG1$ -u $ARG2$ -p $ARG3$ -d $ARG4$ '; + command_line => '$USER1$/check_mysql -s $ARG1$ -u $ARG2$ -p $ARG3$'; check_mysql_tcp: - command_line => '$USER1$/check_mysql -H $ARG1$ -u $ARG2$ -p $ARG3$ -d $ARG4$'; + command_line => '$USER1$/check_mysql -H $ARG1$ -u $ARG2$ -p $ARG3$'; check_ntp_time: command_line => '$USER1$/check_ntp_time -H $HOSTADDRESS$ -w 0.5 -c 1'; check_silc: -- 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/defaults/commands.pp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'manifests/defaults') diff --git a/manifests/defaults/commands.pp b/manifests/defaults/commands.pp index 795c526..af4c770 100644 --- a/manifests/defaults/commands.pp +++ b/manifests/defaults/commands.pp @@ -36,11 +36,9 @@ class nagios::defaults::commands { check_https_url_regex: command_line => '$USER1$/check_http --ssl -H $ARG1$ -u $ARG2$ -e $ARG3$'; check_mysql: - command_line => '$USER1$/check_mysql -u $ARG1$ -p $ARG2$'; - check_mysql_socket: - command_line => '$USER1$/check_mysql -s $ARG1$ -u $ARG2$ -p $ARG3$'; - check_mysql_tcp: - command_line => '$USER1$/check_mysql -H $ARG1$ -u $ARG2$ -p $ARG3$'; + command_line => '$USER1$/check_mysql -H $ARG1$ -P $ARG2$ -u $ARG3$ -p $ARG4$'; + check_mysql_db: + command_line => '$USER1$/check_mysql -H $ARG1$ -P $ARG2$ -u $ARG3$ -p $ARG4$ -d $ARG5$'; check_ntp_time: command_line => '$USER1$/check_ntp_time -H $HOSTADDRESS$ -w 0.5 -c 1'; check_silc: -- 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/defaults/commands.pp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'manifests/defaults') diff --git a/manifests/defaults/commands.pp b/manifests/defaults/commands.pp index af4c770..c3190af 100644 --- a/manifests/defaults/commands.pp +++ b/manifests/defaults/commands.pp @@ -3,6 +3,8 @@ class nagios::defaults::commands { # common service commands nagios_command { + check_dummy: + command_line => '$USER1$/check_dummy $ARG1$'; check_ping: command_line => '$USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$'; check-host-alive: -- cgit v1.2.3