Gestione di Nagios in Puppet

From RVM Wiki
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

Riferimenti