zulip/puppet/zulip_internal/manifests/nagios.pp

85 lines
2.4 KiB
ObjectPascal
Raw Normal View History

class zulip_internal::nagios {
include zulip_internal::base
include zulip_internal::apache
$nagios_packages = [# Packages needed for Nagios
"nagios3",
"autossh",
# Packages needed for munin
"munin",
# Needed for check_website_response
"netcat",
]
package { $nagios_packages: ensure => "installed" }
apache2site { 'nagios':
require => [File['/etc/apache2/sites-available/'],
Apache2mod['headers'], Apache2mod['ssl'],
],
ensure => present,
}
file { "/etc/nagios3/":
recurse => true,
purge => false,
require => Package[nagios3],
owner => "root",
group => "root",
mode => 644,
source => "puppet:///modules/zulip_internal/nagios3/",
notify => Service["nagios3"],
}
service { "nagios3":
ensure => running,
}
file { '/usr/local/bin/pagerduty_nagios.pl':
ensure => file,
mode => 755,
owner => "root",
group => "root",
source => 'puppet:///modules/zulip_internal/pagerduty_nagios.pl',
}
file { '/etc/nagios3/conf.d/zulip_nagios.cfg':
ensure => file,
mode => 644,
owner => "root",
group => "root",
source => '/root/zulip/api/integrations/nagios/zulip_nagios.cfg',
}
file { '/etc/nagios3/zuliprc':
ensure => file,
mode => 644,
owner => "root",
group => "root",
source => '/root/zulip/bots/zuliprc.nagios',
}
exec { "fix_nagios_permissions":
command => "dpkg-statoverride --update --add nagios www-data 2710 /var/lib/nagios3/rw",
unless => "bash -c 'ls -ld /var/lib/nagios3/rw | grep ^drwx--s--- -q'",
notify => Service["nagios3"],
}
exec { "fix_nagios_permissions2":
command => "dpkg-statoverride --update --add nagios nagios 751 /var/lib/nagios3",
unless => "bash -c 'ls -ld /var/lib/nagios3 | grep ^drwxr-x--x -q'",
notify => Service["nagios3"],
}
# I feel like installing this here is an abstraction violation; we
# should probably move this to cron.d
file { "/var/spool/cron/crontabs/nagios":
require => Package[nagios3],
owner => "nagios",
group => "crontab",
mode => 600,
source => "puppet:///modules/zulip_internal/nagios_crontab",
}
# TODO: Install our API
# TODO: Add munin configuration
}