Exported Resources con Nagios

Puppet incluye nativamente recursos para administrar los ficheros de configuración de Nagios.

A continuación se muestra una clase de ejemplo que añade un servidor automáticamente a nuestro Nagios:

class nagios-target {
@@nagios_host { $fqdn:
ensure => present,
alias => $hostname,
address => $ipaddress,
use => "generic-host",
hostgroups => "Linux Servers",
}
@@nagios_service { "check_ping_${hostname}":
check_command => "check_ping!100.0,20%!500.0,60%",
use => "generic-service",
host_name => "$fqdn",
service_description => "${hostname}_check_ping"
}
}
class nagios-monitor {
package { [ nagios, nagios-plugins ]: ensure => installed, }
service { nagios:
ensure => running,
enable => true,
#subscribe => File[$nagios_cfgdir],
require => Package[nagios],
}
# collect resources and populate /etc/nagios/nagios_*.cfg
Nagios_host <<||>>
Nagios_service <<||>>
}

La definición "Nagios_host <<||>>" y "Nagios_service <<||>>" indica que en el directorio "/etc/nagios" del cliente se generará la configuración definida en la clase "nagios-target".

La salida de la anterior clase ha generado los siguientes ficheros:

cat /etc/nagios/nagios_host.cfg
define host {
address 192.168.0.23
host_name cliente.dominio
use generic-host
alias cliente
hostgroups Linux Servers
}
cat /etc/nagios/nagios_service.cfg
define service {
host_name cliente
use generic-service
service_description cliente_check_ping
}