#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/

image


Verify the modules

Description: Should have 5 modules in your module list. This includes the Puppet Nagios Plugin module.

Command: sudo puppet module list

image