Gestione di Nagios in Puppet
Jump to navigation
Jump to search
- Installare puppet con puppet-db
- Entrare nelal directry del prpoprio environment puppet:
cd /etc/puppet/environments/testing
Configurazione server Nagios
- Creare il modulo nagios, che servirà per il server ed i client:
sudo mkdir -p modules/nagios/manifests
- Installare il modulo di support per il file htpassd:
sudo puppet module install leinaddm-htpasswd
- Creare la classe monitor, che installa il server nagios:
sudoedit modules/nagios/manifests/monitor.pp
class nagios::monitor{
package { [
nagios3,
nagios-nrpe-plugin,
nagios-plugins,
nagios-plugins-basic,
nagios-plugins-common,
nagios-plugins-contrib,
nagios-plugins-standard,
nagios-snmp-plugins,
]: ensure => installed, }
file { '/etc/nagios3/conf.d/puppet-hosts.cfg':
owner => 'root',
group => 'root',
mode => '0644',
}
file { '/etc/nagios3/conf.d/puppet-services.cfg':
owner => 'root',
group => 'root',
mode => '0644',
}
service { nagios3:
ensure => running,
enable => true,
subscribe => [
File['/etc/nagios3/conf.d/puppet-hosts.cfg'],
File['/etc/nagios3/conf.d/puppet-services.cfg'],
],
require => Package[nagios3],
}
htpasswd { 'nagiosadmin':
cryptpasswd => 'B/IHaTdJ/m1AU',
target => '/etc/nagios3/htpasswd.users',
}
file {'/etc/nagios3/htpasswd.users':
owner => 'nagios',
group => 'www-data',
mode => '0640',
}
# collect resources and populate /etc/nagios/nagios_*.cfg
Nagios_host <<||>> {
notify => Service['nagios3']
}
Nagios_service <<||>> {
notify => Service['nagios3']
}
}
- Installare nagios definendo l'appartenenza alla classe
sudoedit manifests/site.pp
node 'server.example.priv' {
include nagios::monitor
}
Configurazione client
- Definiamo la classe che conterrà gli host ed i servizi dinamicamente generati:
sudoedit modules/nagios/manifests/target.pp
class nagios::target {
@@nagios_host { $fqdn:
ensure => present,
alias => $hostname,
address => $ipaddress,
use => "generic-host",
target => '/etc/nagios3/conf.d/puppet-hosts.cfg',
}
@@nagios_service { "check_ping_${hostname}":
check_command => "check_ping!100.0,20%!500.0,60%",
use => "generic-service",
host_name => "$fqdn",
notification_period => "24x7",
service_description => "PING",
target => '/etc/nagios3/conf.d/puppet-services.cfg',
}
}
- Aggiungere la classe al nodo da monitorare:
include nagios::target
- Far girare puppet prima sul nodo client e poi sul server: in nagios dovrebbe apparire.
Gestione NRPE
- Creare la classe per installarlo sul server e definire il comando:
sudoedit modules/nagios/manifests/nrpe-monitor.pp