#210: Set Up Nagios Monitoring Using Puppet Module - Rmhibbert/oe2-group-c GitHub Wiki
Link to ticket: https://rt.dataraster.com/Ticket/Display.html?id=210&results=0836e74e5a0cf44f72cac717b03f453a
Step by step for Install class
Text Change directories
Description: Change into the modules directory
Command: /etc/puppetlabs/code/modules
Create the module set up
Description:
Command: To create folder sudo mkdir nagios, To create file sudo touch init.pp
Nagios install class
Description: the install class installs the nagios package
Command: class nagios::install { package { "nagios4": ensure => present, require => User["nagios"], } user { "nagios": ensure => present, comment => "Nagios user", gid => "nagios", shell => "/bin/false", require => Group["nagios"], } group { "nagios": ensure => present, } }
Nagios service class
Description: The config class manages Nagios configuration files and resources.
Command: class nagios::service { service { 'nagios4': ensure => running, enable => true, hasstatus => true, hasrestart => true, } }
Nagios config class
Description: service class should enable the nagios4 service
Command: class nagios::config { package { 'apache2': ensure => installed, }
file { '/etc/nagios4/nagios.cfg': ensure => file, owner => 'nagios', group => 'nagios', mode => '0644', source => 'puppet:///modules/nagios/nagios.cfg', require => Package['nagios4'], }
file { '/etc/nagios4/htpasswd.users': ensure => file, owner => 'nagios', group => 'nagios', mode => '0640', source => 'puppet:///modules/nagios/htpasswd.users', require => Package['apache2'], }
exec { 'create-htpasswd': command => '/usr/bin/htpasswd -c /etc/nagios4/htpasswd.users nagiosadmin', creates => '/etc/nagios4/htpasswd.users', path => ['/usr/bin', '/bin'], require => File['/etc/nagios4/htpasswd.users'], }
file { '/etc/nagios4/conf.d': ensure => directory, owner => 'nagios', group => 'puppet', mode => '0775', require => Package['nagios4'], }
nagios_host { 'db-c': target => '/etc/nagios4/conf.d/ppt_hosts.cfg', alias => 'db', check_period => '24x7', max_check_attempts => 3, check_command => 'check-host-alive', notification_interval => 30, notification_period => '24x7', notification_options => 'd,u,r', mode => '0644', } }
Create combine class in init.pp file
Description: add the install class to init.pp
Command: class nagios {include nagios::install}
Apply the module
Description: Add the module to site.pp
Command: cd /etc/puppetlabs/code/environments/production/manifests
then add include nagios under mgmt server
Update install.pp
Description: Add in a nagios plugin to my install file
Command:
exec { "nagios_plugin": command => '/opt/puppetlabs/bin/puppet module install puppetlabs-nagios_core', creates => '/etc/puppetlabs/code/enviroments/production/modules/nagios_core', require => Package['nagios4'], }
Apply the module
Description: Run Puppet Agent on the Node
Command: sudo puppet agent --test
Restart the Nagios
Description: Restart the Nagios server
Command: sudo systemctl restart nagios4
Run the server
Description: Open browser and navigate to http://13.75.228.175/nagios4/
Verify the modules
Description: Should have 5 modules in your module list. This includes the Puppet Nagios Plugin module.
Command: sudo puppet module list