OSDN Git Service

improve Nagios4 support.
authorwhitestar <whitestar@users.osdn.me>
Sat, 19 Jun 2021 05:07:04 +0000 (14:07 +0900)
committerwhitestar <whitestar@users.osdn.me>
Sat, 19 Jun 2021 05:07:04 +0000 (14:07 +0900)
13 files changed:
cookbooks/nagios-grid/README.md
cookbooks/nagios-grid/attributes/default.rb
cookbooks/nagios-grid/recipes/nagios-base.rb
cookbooks/nagios-grid/templates/default/etc/nagios3/cgi.cfg
cookbooks/nagios-grid/templates/default/etc/nagios4/base/checkcommands-generic.cfg [new file with mode: 0644]
cookbooks/nagios-grid/templates/default/etc/nagios4/base/hosts-generic.cfg [new file with mode: 0644]
cookbooks/nagios-grid/templates/default/etc/nagios4/base/services-generic.cfg [new file with mode: 0644]
cookbooks/nagios-grid/templates/default/etc/nagios4/cgi.cfg
cookbooks/nagios-grid/templates/default/etc/nagios4/site/checkcommands.cfg [new file with mode: 0644]
cookbooks/nagios-grid/templates/default/etc/nagios4/site/contacts.cfg [new file with mode: 0644]
cookbooks/nagios-grid/templates/default/etc/nagios4/site/hosts.cfg [new file with mode: 0644]
cookbooks/nagios-grid/templates/default/etc/nagios4/site/services.cfg [new file with mode: 0644]
cookbooks/nagios-grid/templates/default/etc/nagios4/site/timeperiods.cfg [new file with mode: 0644]

index e5a8148..608004e 100644 (file)
@@ -38,6 +38,7 @@ None.
 |`['nagios']['cgi']['authorized_for_all_service_commands']`|String|CGI authorization property.|`'nagiosadmin'`|
 |`['nagios']['cgi']['authorized_for_all_host_commands']`|String|CGI authorization property.|`'nagiosadmin'`|
 |`['nagios']['cgi']['result_limit']`|String|result set limitation.|`'100'`|
+|`['nagios']['cgi']['use_authentication']`|String||`'1'`|
 |`['nagios']['web']['Require']`|Array|Apache >= 2.3|`['all granted',]`|
 |`['nagios']['web']['Order']`|String|Apache < 2.3|`'Allow,Deny'`|
 |`['nagios']['web']['Deny']`|Array|Apache < 2.3|`[]`|
index 8bcaf7a..c06df79 100644 (file)
@@ -41,6 +41,7 @@ default['nagios']['cgi'] = {
   'authorized_for_all_service_commands'      => 'nagiosadmin',
   'authorized_for_all_host_commands'         => 'nagiosadmin',
   'result_limit' => '100',
+  'use_authentication' => '1', # Nagios4 default: 0
 }
 
 # Web UI
index b3f5b4b..ec805b7 100644 (file)
@@ -32,26 +32,25 @@ tpl_ctx = 'nagios3'
 
 case node['platform_family']
 when 'debian'
-  root_cfg_dir = '/etc/nagios3'
+  nagios_pkg = 'nagios3'
   nagios_service = 'nagios3'
-  if platform == 'ubuntu' && platform_version >= '20.04'
+  root_cfg_dir = '/etc/nagios3'
+  if (platform == 'debian' && platform_version.to_f >= 10.0) \
+    || (platform == 'ubuntu' && platform_version >= '20.04') 
+    nagios_pkg = 'nagios4'
     root_cfg_dir = '/etc/nagios4'
     nagios_service = 'nagios4'
+    tpl_ctx = 'nagios4'
   end
 
   nagios_pkgs = [
+    nagios_pkg,
     # Note: PHP is not php5 but php7.0 in Ubuntu 16.04 or later
     'nagios-plugins',  # virtual package -> monitoring-plugins (>= Ubuntu 20.04)
     'nagios-nrpe-plugin',
     'nagios-images',
   ]
 
-  unless platform == 'debian' && platform_version >= '9.0'
-    nagios_pkgs += [
-      'nagios3',
-    ]
-  end
-
   if node['nagios']['with_pnp4nagios'] && platform == 'debian' && platform_version < '9.0'
     # this recipe does not support pnp4nagios on Ubuntu and the latest Debian !
     nagios_pkgs += [
index 100053b..06632f3 100644 (file)
@@ -88,7 +88,7 @@ nagios_check_command=/usr/lib/nagios/plugins/check_nagios /var/cache/nagios3/sta
 # authentication (bad idea), while any other value will make them
 # use the authentication functions (the default).
 
-use_authentication=1
+use_authentication=<%= node['nagios']['cgi']['use_authentication'] %>
 
 
 
diff --git a/cookbooks/nagios-grid/templates/default/etc/nagios4/base/checkcommands-generic.cfg b/cookbooks/nagios-grid/templates/default/etc/nagios4/base/checkcommands-generic.cfg
new file mode 100644 (file)
index 0000000..dca6749
--- /dev/null
@@ -0,0 +1,239 @@
+# This file was generated by Chef.
+<%
+nrpe_opts = []
+nrpe_opts.push('-n') if node['nagios']['check_nrpe']['nossl']
+nrpe_opts = nrpe_opts.join(' ')
+-%>
+
+define command {
+       command_name    check_all_disks_alt
+       # Note: `check_all_disks` workaround command
+       # see https://bugs.launchpad.net/ubuntu/+source/nagios-plugins/+bug/1516451
+       command_line    $USER1$/check_disk -w '$ARG1$' -c '$ARG2$' -e --exclude-type=tracefs --exclude-type=fuse.gvfsd-fuse
+}
+
+define command {
+       command_name    check_disk_smb_alt
+       command_line    $USER1$/check_disk_smb -H $HOSTADDRESS$ -s '$ARG1$'
+}
+
+define command {
+       command_name    check_file_age
+       command_line    $USER1$/check_file_age -f $ARG1$ -w $ARG2$ -c $ARG3$
+}
+
+define command {
+       command_name    check_ntp_time
+       command_line    $USER1$/check_ntp_time -H $HOSTADDRESS$
+}
+
+define command {
+       command_name    check_tcp_port_cert
+       command_line    $USER1$/check_tcp --ssl -H $HOSTADDRESS$ -p $ARG1$ -D $ARG2$
+}
+
+define command {
+       command_name    check_http_port
+       command_line    $USER1$/check_http -H $HOSTADDRESS$ -I $HOSTADDRESS$ -p $ARG1$
+}
+
+define command {
+       command_name    check_http_port_url
+       command_line    $USER1$/check_http -H $HOSTADDRESS$ -I $HOSTADDRESS$ -p $ARG1$ -u $ARG2$
+}
+
+define command {
+       command_name    check_https_port
+       command_line    $USER1$/check_http --ssl -H $HOSTADDRESS$ -I $HOSTADDRESS$ -p $ARG1$
+}
+
+define command {
+       command_name    check_https_port_url
+       command_line    $USER1$/check_http --ssl -H $HOSTADDRESS$ -I $HOSTADDRESS$ -p $ARG1$ -u $ARG2$
+}
+
+define command {
+       command_name    check_https_port_cert
+       command_line    $USER1$/check_http --ssl -H $HOSTADDRESS$ -I $HOSTADDRESS$ -p $ARG1$ -C $ARG2$
+}
+
+define command {
+       command_name    check_ldap3
+       command_line    $USER1$/check_ldap -H $HOSTADDRESS$ -b $ARG1$ -3
+}
+
+# this object already exists on the Debian wheezy.
+#define command {
+#      command_name    check_mysql_slave
+#      command_line    $USER1$/check_mysql -H $HOSTADDRESS$ -S
+#}
+
+# 'check_jbossjmx' command definition 
+define command {
+       command_name    check_jbossjmx 
+       command_line    $USER1$/check_jbossjmx $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $ARG4$ $ARG5$ 
+}
+
+define command {
+       command_name    check_ups
+       command_line    $USER1$/check_ups -H $HOSTADDRESS$ -u $ARG1$ -T
+}
+
+# NRPE
+define command {
+       command_name    check_remote_apt
+       command_line    $USER1$/check_nrpe <%= nrpe_opts %> -H $HOSTADDRESS$ -c check_apt
+}
+
+define command {
+       command_name    check_remote_apc_status
+       command_line    $USER1$/check_nrpe <%= nrpe_opts %> -H $HOSTADDRESS$ -c check_apc_status
+}
+
+define command {
+       command_name    check_remote_apc_load
+       command_line    $USER1$/check_nrpe <%= nrpe_opts %> -H $HOSTADDRESS$ -c check_apc_load
+}
+
+define command {
+       command_name    check_remote_apc_bcharge
+       command_line    $USER1$/check_nrpe <%= nrpe_opts %> -H $HOSTADDRESS$ -c check_apc_bcharge
+}
+
+define command {
+       command_name    check_remote_apc_time
+       command_line    $USER1$/check_nrpe <%= nrpe_opts %> -H $HOSTADDRESS$ -c check_apc_time
+}
+
+define command {
+       command_name    check_remote_dig
+       command_line    $USER1$/check_nrpe <%= nrpe_opts %> -H $HOSTADDRESS$ -c check_dig
+}
+
+define command {
+       command_name    check_remote_dig_in
+       command_line    $USER1$/check_nrpe <%= nrpe_opts %> -H $HOSTADDRESS$ -c check_dig_in
+}
+
+define command {
+       command_name    check_remote_dig_ex
+       command_line    $USER1$/check_nrpe <%= nrpe_opts %> -H $HOSTADDRESS$ -c check_dig_ex
+}
+
+define command {
+       command_name    check_remote_logs
+       command_line    $USER1$/check_nrpe <%= nrpe_opts %> -H $HOSTADDRESS$ -c check_logs
+}
+
+define command {
+       command_name    check_remote_command
+       command_line    $USER1$/check_nrpe <%= nrpe_opts %> -H $HOSTADDRESS$ -c $ARG1$
+}
+
+define command {
+       command_name    check_remote_users
+       command_line    $USER1$/check_nrpe <%= nrpe_opts %> -H $HOSTADDRESS$ -c check_users
+}
+
+define command {
+       command_name    check_remote_load
+       command_line    $USER1$/check_nrpe <%= nrpe_opts %> -H $HOSTADDRESS$ -c check_load
+}
+
+define command {
+       command_name    check_remote_memory
+       command_line    $USER1$/check_nrpe <%= nrpe_opts %> -H $HOSTADDRESS$ -c check_memory
+}
+
+define command {
+       command_name    check_remote_mem
+       command_line    $USER1$/check_nrpe <%= nrpe_opts %> -H $HOSTADDRESS$ -c check_mem
+}
+
+<%
+(0..3).each {|num|
+-%>
+define command {
+       command_name    check_remote_disk<%= num %>
+       command_line    $USER1$/check_nrpe <%= nrpe_opts %> -H $HOSTADDRESS$ -c check_disk<%= num %>
+}
+
+<%
+}
+-%>
+<%
+(0..3).each {|num|
+-%>
+define command {
+       command_name    check_remote_smart<%= num %>
+       command_line    $USER1$/check_nrpe <%= nrpe_opts %> -H $HOSTADDRESS$ -c check_smart<%= num %>
+}
+
+<%
+}
+-%>
+define command {
+       command_name    check_remote_smart_devs
+       command_line    $USER1$/check_nrpe <%= nrpe_opts %> -H $HOSTADDRESS$ -c check_smart_devs
+}
+
+define command {
+       command_name    check_remote_zombie_procs
+       command_line    $USER1$/check_nrpe <%= nrpe_opts %> -H $HOSTADDRESS$ -c check_zombie_procs
+}
+
+define command {
+       command_name    check_remote_total_procs
+       command_line    $USER1$/check_nrpe <%= nrpe_opts %> -H $HOSTADDRESS$ -c check_total_procs
+}
+
+define command {
+       command_name    check_remote_mailq_exim
+       command_line    $USER1$/check_nrpe <%= nrpe_opts %> -H $HOSTADDRESS$ -c check_mailq_exim
+}
+
+define command {
+       command_name    check_remote_mailq_postfix
+       command_line    $USER1$/check_nrpe <%= nrpe_opts %> -H $HOSTADDRESS$ -c check_mailq_postfix
+}
+
+define command {
+       command_name    check_remote_mysql_heartbeat
+       command_line    $USER1$/check_nrpe <%= nrpe_opts %> -H $HOSTADDRESS$ -c check_mysql_heartbeat
+}
+
+define command {
+       command_name    check_remote_jboss_freemem
+       command_line    $USER1$/check_nrpe <%= nrpe_opts %> -H $HOSTADDRESS$ -c check_jboss_freemem
+}
+
+define command {
+       command_name    check_remote_jboss_jk_curthread
+       command_line    $USER1$/check_nrpe <%= nrpe_opts %> -H $HOSTADDRESS$ -c check_jboss_jk_curthread
+}
+
+define command {
+       command_name    check_remote_jboss_ds_conn1
+       command_line    $USER1$/check_nrpe <%= nrpe_opts %> -H $HOSTADDRESS$ -c check_jboss_ds_conn1
+}
+
+define command {
+       command_name    check_remote_jboss_ds_conn2
+       command_line    $USER1$/check_nrpe <%= nrpe_opts %> -H $HOSTADDRESS$ -c check_jboss_ds_conn2
+}
+
+define command {
+       command_name    check_remote_jboss_logs
+       command_line    $USER1$/check_nrpe <%= nrpe_opts %> -H $HOSTADDRESS$ -c check_jboss_logs
+}
+
+define command {
+       command_name    check_remote_xen_dom0 
+       command_line    $USER1$/check_nrpe <%= nrpe_opts %> -H $HOSTADDRESS$ -c check_xen_dom0
+}
+
+define command {
+       command_name    check_remote_xen_domU1 
+       command_line    $USER1$/check_nrpe <%= nrpe_opts %> -H $HOSTADDRESS$ -c check_xen_domU1
+}
+
diff --git a/cookbooks/nagios-grid/templates/default/etc/nagios4/base/hosts-generic.cfg b/cookbooks/nagios-grid/templates/default/etc/nagios4/base/hosts-generic.cfg
new file mode 100644 (file)
index 0000000..d81745c
--- /dev/null
@@ -0,0 +1,18 @@
+# This file was generated by Chef.
+
+define host {
+       name        generic-base-host
+       use         generic-host
+
+       alias                   Base host
+       check_command           check-host-alive
+       max_check_attempts      20
+       notification_interval   60
+       notification_period     24x7
+       notification_options    d,u,r
+<% if node['nagios']['with_pnp4nagios'] then -%>
+       action_url              /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_
+<% end -%>
+       register                0
+}
+
diff --git a/cookbooks/nagios-grid/templates/default/etc/nagios4/base/services-generic.cfg b/cookbooks/nagios-grid/templates/default/etc/nagios4/base/services-generic.cfg
new file mode 100644 (file)
index 0000000..297c57c
--- /dev/null
@@ -0,0 +1,488 @@
+# This file was generated by Chef.
+
+define service {
+       name            generic-base-service
+       use             generic-service
+
+       is_volatile             0
+       check_period            24x7
+       max_check_attempts      3
+       check_interval   2
+       retry_interval    1
+       contact_groups          <%= node['nagios']['objects']['default_contact_groups'] %>
+       notification_interval   240
+       notification_period     24x7
+       notification_options    w,u,c,r
+<% if node['nagios']['with_pnp4nagios'] then -%>
+       action_url      /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$
+<% end -%>
+       register                0
+}
+
+define service {
+       name            generic-ping-service
+       use             generic-base-service
+
+       service_description     PING
+       max_check_attempts      3
+       check_interval   5
+       retry_interval    1
+       notification_options    c,r
+       check_command           check_ping!100.0,20%!500.0,60%
+       register                0
+}
+
+define service {
+       name            generic-tcp-port-cert-service
+       use             generic-base-service
+
+       service_description     TCP_Cert
+       check_command           check_tcp_port_cert!443!30
+       register                0
+}
+
+define service {
+       name            generic-ssh-service
+       use             generic-base-service
+
+       service_description     SSH
+       check_command           check_ssh
+       register                0
+}
+
+define service {
+       name            generic-http-service
+       use             generic-base-service
+
+       service_description     HTTP
+       check_command           check_http
+       register                0
+}
+
+define service {
+       name            generic-http-port-service
+       use             generic-http-service
+
+       service_description             HTTP_80
+       check_command                   check_http_port!80
+       register                0
+}
+
+define service {
+       name            generic-https-service
+       use             generic-base-service
+
+       service_description     HTTPS
+       check_command           check_https
+       register                0
+}
+
+define service {
+       name            generic-https-port-service
+       use             generic-https-service
+
+       service_description     HTTPS_443
+       check_command           check_https_port!443
+       register                0
+}
+
+define service {
+       name            generic-https-port-cert-service
+       use             generic-https-service
+
+       service_description     HTTPS_443_cert
+       check_command           check_https_port_cert!443!30
+       register                0
+}
+
+define service {
+       name            generic-https-port6280-cert-service
+       use             generic-https-service
+
+       service_description     HTTPS_6280_cert
+       check_command           check_https_port_cert!6280!30
+       register                0
+}
+
+# MySQL
+define service {
+       name            generic-mysql-service
+       use             generic-base-service
+
+       service_description     MySQL
+       check_command           check_mysql
+       register                0
+}
+
+define service {
+       name            generic-mysql-slave-service
+       use             generic-base-service
+
+       service_description     MySQL_Slave
+       check_command           check_mysql_slave
+       register                0
+}
+
+define service {
+       name            generic-remote-mysql-heartbeat-service
+       use             generic-mysql-service
+
+       service_description     MySQL_Heartbeat
+       check_interval   1
+       check_command           check_remote_mysql_heartbeat
+       register                0
+}
+
+define service {
+       name            generic-ntp-service
+       use             generic-base-service
+
+       service_description     NTP
+       max_check_attempts      3
+       check_interval   5
+       retry_interval    3
+       check_command           check_ntp_time
+       register                0
+}
+
+define service {
+       name            generic-smtp-service
+       use             generic-base-service
+
+       service_description     SMTP
+       check_command           check_smtp
+       register                0
+}
+
+define service {
+       name            generic-spop-service
+       use             generic-base-service
+
+       service_description     SPOP
+       check_command           check_spop
+       register                0
+}
+
+define service {
+       name            generic-simap-service
+       use             generic-base-service
+
+       service_description     SIMAP
+       check_command           check_simap
+       register                0
+}
+
+define service {
+       name            generic-ldap-service
+       use             generic-base-service
+
+       service_description     LDAP
+       check_command           check_ldap!<%= node['nagios']['objects']['check_ldap']['base'] %>
+       register                0
+}
+
+define service {
+       name            generic-ups-service
+       use             generic-base-service
+
+       service_description     UPS
+       check_command           check_ups!by80s
+       register                0
+}
+
+# NRPE
+define service {
+       name            generic-nrpe-service
+       use             generic-base-service
+
+       service_description     NRPE
+       max_check_attempts      3
+       check_interval   5
+       retry_interval    1
+       check_command           check_remote_load
+       register                0
+}
+
+define service {
+       name            generic-remote-apt-service
+       use             generic-nrpe-service
+
+       service_description     APT
+       check_interval   180
+       retry_interval    60
+       check_command           check_remote_apt
+       register                0
+}
+
+define service {
+       name            generic-remote-apc-status-service
+       use             generic-nrpe-service
+
+       service_description     APC_Status
+       check_command           check_remote_apc_status
+       register                0
+}
+
+define service {
+       name            generic-remote-apc-load-service
+       use             generic-nrpe-service
+
+       service_description     APC_Load
+       check_command           check_remote_apc_load
+       register                0
+}
+
+define service {
+       name            generic-remote-apc-bcharge-service
+       use             generic-nrpe-service
+
+       service_description     APC_BatteryCharge
+       check_command           check_remote_apc_bcharge
+       register                0
+}
+
+define service {
+       name            generic-remote-apc-time-service
+       use             generic-nrpe-service
+
+       service_description     APC_Time
+       check_command           check_remote_apc_time
+       register                0
+}
+
+define service {
+       name            generic-remote-dig-service
+       use             generic-nrpe-service
+
+       service_description     DIG
+       check_command           check_remote_dig
+       register                0
+}
+
+define service {
+       name            generic-remote-dig-in-service
+       use             generic-nrpe-service
+
+       service_description     DIG_IN
+       check_command           check_remote_dig_in     
+       register                0
+}
+
+define service {
+       name            generic-remote-dig-ex-service
+       use             generic-nrpe-service
+
+       service_description     DIG_EX
+       check_command           check_remote_dig_ex
+       register                0
+}
+
+define service {
+       name            generic-remote-logs-service
+       use             generic-nrpe-service
+
+       service_description     Logs
+       max_check_attempts      1
+       notification_options    w,u,c
+       check_command           check_remote_logs
+       register                0
+}
+
+define service {
+       name            generic-remote-load-service
+       use             generic-nrpe-service
+
+       service_description     Load_Avrg
+       check_command           check_remote_load
+       register                0
+}
+
+define service {
+       name            generic-remote-users-service
+       use             generic-nrpe-service
+
+       service_description     Users
+       check_command           check_remote_users
+       register                0
+}
+
+<%
+(0..3).each {|num|
+-%>
+define service {
+       name            generic-remote-disk<%= num %>-service
+       use             generic-nrpe-service
+
+       service_description     Disk<%= num %>
+       check_command           check_remote_disk<%= num %>
+       register                0
+}
+
+<%
+}
+-%>
+<%
+(0..3).each {|num|
+-%>
+define service {
+       name            generic-remote-smart<%= num %>-service
+       use             generic-nrpe-service
+
+       service_description     SMART<%= num %>
+       check_interval   10
+       retry_interval    5
+       check_command           check_remote_smart<%= num %>
+       register                0
+}
+
+<%
+}
+-%>
+define service {
+       name            generic-remote-smart-devs-service
+       use             generic-nrpe-service
+
+       service_description     SMART_Devs
+       check_interval   10
+       retry_interval    5
+       check_command           check_remote_smart_devs
+       register                0
+}
+
+define service {
+       name            generic-remote-zombie-procs-service
+       use             generic-nrpe-service
+
+       service_description     Zombie_Procs
+       check_command           check_remote_zombie_procs
+       register                0
+}
+
+define service {
+       name            generic-remote-total-procs-service
+       use             generic-nrpe-service
+
+       service_description     Total_Procs
+       check_command           check_remote_total_procs
+       register                0
+}
+
+define service {
+       name            generic-remote-memory-service
+       use             generic-nrpe-service
+
+       service_description     Memory
+       check_command           check_remote_memory
+       register                0
+}
+
+define service {
+       name            generic-remote-mem-service
+       use             generic-nrpe-service
+
+       service_description     Mem
+       check_command           check_remote_mem
+       register                0
+}
+
+define service {
+       name            generic-remote-mailq-exim-service
+       use             generic-nrpe-service
+
+       service_description     Exim_Queue
+       check_command           check_remote_mailq_exim
+       register                0
+}
+
+define service {
+       name            generic-remote-mailq-postfix-service
+       use             generic-nrpe-service
+
+       service_description     Postfix_Queue
+       check_command           check_remote_mailq_postfix
+       register                0
+}
+
+define service {
+       name            generic-remote-xen-dom0-service
+       use             generic-nrpe-service
+
+       service_description     Xen_dom0
+       check_command           check_remote_xen_dom0
+       register                0
+}
+
+define service {
+       name            generic-remote-xen-domU1-service
+       use             generic-nrpe-service
+
+       service_description     Xen_domU1
+       check_command           check_remote_xen_domU1
+       register                0
+}
+
+# JBoss
+define service {
+       name                    generic-jboss-service
+       use                             generic-base-service
+
+       service_description     JBoss
+       register                0
+}
+
+define service{
+       name                    generic-remote-jboss-freemem-service
+       use                             generic-jboss-service
+
+       service_description     JBoss_FreeMem
+       check_command                   check_remote_jboss_freemem
+       register                0
+}
+
+define service{
+       name                    generic-remote-jboss-jk-curthread-service
+       use                             generic-jboss-service
+
+       service_description     JBoss_JK_CurThread
+       check_command                   check_remote_jboss_jk_curthread
+       register                0
+}
+
+define service{
+       name                    generic-remote-jboss-ds-conn1-service
+       use                             generic-jboss-service
+
+       service_description     JBoss_DS_Conn1
+       check_command                   check_remote_jboss_ds_conn1
+       register                0
+}
+
+define service{
+       name                    generic-remote-jboss-ds-conn2-service
+       use                             generic-jboss-service
+
+       service_description     JBoss_DS_Conn2
+       check_command                   check_remote_jboss_ds_conn2
+       register                0
+}
+
+define service{
+       name                    generic-remote-jboss-logs-service
+       use                             generic-jboss-service
+
+       service_description     JBoss_Logs
+       max_check_attempts      1
+       notification_options    w,u,c
+       check_command                   check_remote_jboss_logs
+       register                0
+}
+
+define service{
+       name                    generic-jbossjk-service
+       use                             generic-jboss-service
+
+       service_description             JBossJK
+       check_command                   check_jbossjmx!4!"jboss.web:name=jk-8009,type=ThreadPool"!currentThreadCount!100!200
+       register                        0
+}
+
index 7c5a7a1..55d53bc 100644 (file)
@@ -73,7 +73,7 @@ use_pending_states=1
 # authentication (bad idea), while any other value will make them
 # use the authentication functions (the default).
 
-use_authentication=0
+use_authentication=<%= node['nagios']['cgi']['use_authentication'] %>
 
 
 
diff --git a/cookbooks/nagios-grid/templates/default/etc/nagios4/site/checkcommands.cfg b/cookbooks/nagios-grid/templates/default/etc/nagios4/site/checkcommands.cfg
new file mode 100644 (file)
index 0000000..087012a
--- /dev/null
@@ -0,0 +1,25 @@
+# This file was generated by Chef.
+
+<% if node['nagios']['check_ganglia_metric']['enabled'] then -%>
+define command {
+       command_name    check_ganglia_metric
+<%
+case node[:platform_family]
+  when 'debian'
+-%>
+       command_line    /usr/local/bin/check_ganglia_metric.py --gmetad_host=<%= node['nagios']['check_ganglia_metric']['gmetad_host'] %> --cache_path=/var/lib/nagios3/.check_ganglia_metric.cache --metric_host=$HOSTADDRESS$ --metric_name=$ARG1$ --warning=$ARG2$ --critical=$ARG3$
+<%
+  when 'rhel'
+-%>
+       command_line    /usr/bin/check_ganglia_metric.py --gmetad_host=<%= node['nagios']['check_ganglia_metric']['gmetad_host'] %> --cache_path=/var/log/nagios/.check_ganglia_metric.cache --metric_host=$HOSTADDRESS$ --metric_name=$ARG1$ --warning=$ARG2$ --critical=$ARG3$
+<% end -%>
+}
+<% end -%>
+<% node['nagios']['objects']['commands'].each do |command| -%>
+define command {
+  <% command.each do |key, value| -%>
+       <%= key %>      <%= value %>
+  <% end -%>
+}
+
+<% end -%>
diff --git a/cookbooks/nagios-grid/templates/default/etc/nagios4/site/contacts.cfg b/cookbooks/nagios-grid/templates/default/etc/nagios4/site/contacts.cfg
new file mode 100644 (file)
index 0000000..c3c6b56
--- /dev/null
@@ -0,0 +1,20 @@
+# This file was generated by Chef.
+
+<%
+{
+  'contact'      => node['nagios']['objects']['contacts'],
+  'contactgroup' => node['nagios']['objects']['contactgroups']
+}.each do |type_name, objects|
+  objects.each do |object|
+-%>
+define <%= type_name %> {
+  <% object.each do |key, value| -%>
+       <%= key %>      <%= value %>
+  <% end -%>
+}
+
+<%
+  end
+end
+-%>
+
diff --git a/cookbooks/nagios-grid/templates/default/etc/nagios4/site/hosts.cfg b/cookbooks/nagios-grid/templates/default/etc/nagios4/site/hosts.cfg
new file mode 100644 (file)
index 0000000..39e6717
--- /dev/null
@@ -0,0 +1,22 @@
+# This file was generated by Chef.
+
+<%
+{
+  'host'           => node['nagios']['objects']['hosts'],
+  'hostgroup'      => node['nagios']['objects']['hostgroups'],
+  'hostdependency' => node['nagios']['objects']['hostdependencies'],
+  'hostescalation' => node['nagios']['objects']['hostescalations'],
+  'hostextinfo'    => node['nagios']['objects']['hostextinfos']
+}.each do |type_name, objects|
+  objects.each do |object|
+-%>
+define <%= type_name %> {
+  <% object.each do |key, value| -%>
+       <%= key %>      <%= value %>
+  <% end -%>
+}
+
+<%
+  end
+end
+-%>
diff --git a/cookbooks/nagios-grid/templates/default/etc/nagios4/site/services.cfg b/cookbooks/nagios-grid/templates/default/etc/nagios4/site/services.cfg
new file mode 100644 (file)
index 0000000..5d5aa4a
--- /dev/null
@@ -0,0 +1,111 @@
+# This file was generated by Chef.
+
+# Service templates
+<% if node['nagios']['check_ganglia_metric']['enabled'] then -%>
+## Ganglia
+define service {
+       name            generic-ganglia-service
+       use             generic-service
+       service_description     Ganglia Metric
+       is_volatile             0
+       check_period            24x7
+       max_check_attempts      3
+       check_interval   5
+       retry_interval    1
+       contact_groups          <%= node['nagios']['objects']['default_contact_groups'] %>
+       notification_interval   240
+       notification_period     24x7
+       notification_options    w,u,c,r
+       #check_command           check_ganglia_metric!metricName!warning!critical
+       register                0
+}
+
+<%
+ganglia_cache_file = node.value_for_platform_family(
+  'debian' => '/var/lib/nagios3/.check_ganglia_metric.cache',
+  'rhel'   => '/var/log/nagios/.check_ganglia_metric.cache'
+)
+-%>
+define service {
+       name            generic-check_ganglia_cache-service
+       use             generic-ganglia-service
+       service_description     Cache for check_ganglia_metric
+       max_check_attempts      1
+       check_interval   1
+       retry_interval    1
+       check_command           check_file_age!<%= ganglia_cache_file %>!90!120
+       host_name               localhost
+       register                0
+}
+
+define service {
+       name            generic-ganglia_heartbeat-service
+       use             generic-ganglia-service
+       service_description     Ganglia gmetad Heartbeat
+       max_check_attempts      3
+       check_interval   1
+       retry_interval    1
+       check_command           check_ganglia_metric!load_fifteen!10.0!20.0
+       register                0
+}
+
+define service {
+       name            generic-load_one-service
+       use             generic-ganglia-service
+       service_description     CPU Load 1 Min via Ganglia
+       check_command           check_ganglia_metric!load_one!5.0!10.0
+       register                0
+}
+
+define service {
+       name            generic-load_five-service
+       use             generic-ganglia-service
+       service_description     CPU Load 5 Min via Ganglia
+       check_command           check_ganglia_metric!load_five!4.0!6.0
+       register                0
+}
+
+define service {
+       name            generic-load_fifteen-service
+       use             generic-ganglia-service
+       service_description     CPU Load 15 Min via Ganglia
+       check_command           check_ganglia_metric!load_fifteen!3.0!4.0
+       register                0
+}
+
+define service {
+       name            generic-part_max_used-service
+       use             generic-ganglia-service
+       service_description     Maximum Disk Space Used via Ganglia
+       check_command           check_ganglia_metric!part_max_used!80!90
+       register                0
+}
+
+define service {
+       name            generic-proc_total-service
+       use             generic-ganglia-service
+       service_description     Total Processes via Ganglia
+       check_command           check_ganglia_metric!proc_total!250!400
+       register                0
+}
+<% end -%>
+<%
+{
+  'service'           => node['nagios']['objects']['services'],
+  'servicegroup'      => node['nagios']['objects']['servicegroups'],
+  'servicedependency' => node['nagios']['objects']['servicedependencies'],
+  'serviceescalation' => node['nagios']['objects']['serviceescalations'],
+  'serviceextinfo'    => node['nagios']['objects']['serviceextinfos']
+}.each do |type_name, objects|
+  objects.each do |object|
+-%>
+define <%= type_name %> {
+  <% object.each do |key, value| -%>
+       <%= key %>      <%= value %>
+  <% end -%>
+}
+
+<%
+  end
+end
+-%>
diff --git a/cookbooks/nagios-grid/templates/default/etc/nagios4/site/timeperiods.cfg b/cookbooks/nagios-grid/templates/default/etc/nagios4/site/timeperiods.cfg
new file mode 100644 (file)
index 0000000..38a0e57
--- /dev/null
@@ -0,0 +1,18 @@
+# This file was generated by Chef.
+
+<%
+{
+  'timeperiod' => node['nagios']['objects']['timeperiods']
+}.each do |type_name, objects|
+  objects.each do |object|
+-%>
+define <%= type_name %> {
+  <% object.each do |key, value| -%>
+       <%= key %>      <%= value %>
+  <% end -%>
+}
+
+<%
+  end
+end
+-%>