|`['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|`[]`|
'authorized_for_all_service_commands' => 'nagiosadmin',
'authorized_for_all_host_commands' => 'nagiosadmin',
'result_limit' => '100',
+ 'use_authentication' => '1', # Nagios4 default: 0
}
# Web UI
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 += [
# 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'] %>
--- /dev/null
+# 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
+}
+
--- /dev/null
+# 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
+}
+
--- /dev/null
+# 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
+}
+
# 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'] %>
--- /dev/null
+# 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 -%>
--- /dev/null
+# 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
+-%>
+
--- /dev/null
+# 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
+-%>
--- /dev/null
+# 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
+-%>
--- /dev/null
+# 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
+-%>