Added nagios module
This commit is contained in:
parent
eaa42c7398
commit
0f4bbae2e9
8 changed files with 3694 additions and 0 deletions
247
nagios/files/commands.cfg
Normal file
247
nagios/files/commands.cfg
Normal file
|
@ -0,0 +1,247 @@
|
|||
###############################################################################
|
||||
# COMMANDS.CFG - SAMPLE COMMAND DEFINITIONS FOR NAGIOS 3.4.1
|
||||
#
|
||||
# Last Modified: 05-31-2007
|
||||
#
|
||||
# NOTES: This config file provides you with some example command definitions
|
||||
# that you can reference in host, service, and contact definitions.
|
||||
#
|
||||
# You don't need to keep commands in a separate file from your other
|
||||
# object definitions. This has been done just to make things easier to
|
||||
# understand.
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# SAMPLE NOTIFICATION COMMANDS
|
||||
#
|
||||
# These are some example notification commands. They may or may not work on
|
||||
# your system without modification. As an example, some systems will require
|
||||
# you to use "/usr/bin/mailx" instead of "/usr/bin/mail" in the commands below.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
|
||||
# 'notify-host-by-email' command definition
|
||||
define command{
|
||||
command_name notify-host-by-email
|
||||
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$
|
||||
}
|
||||
|
||||
# 'notify-service-by-email' command definition
|
||||
define command{
|
||||
command_name notify-service-by-email
|
||||
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# SAMPLE HOST CHECK COMMANDS
|
||||
#
|
||||
################################################################################
|
||||
|
||||
|
||||
# This command checks to see if a host is "alive" by pinging it
|
||||
# The check must result in a 100% packet loss or 5 second (5000ms) round trip
|
||||
# average time to produce a critical error.
|
||||
# Note: Five ICMP echo packets are sent (determined by the '-p 5' argument)
|
||||
|
||||
# 'check-host-alive' command definition
|
||||
define command{
|
||||
command_name check-host-alive
|
||||
command_line $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# SAMPLE SERVICE CHECK COMMANDS
|
||||
#
|
||||
# These are some example service check commands. They may or may not work on
|
||||
# your system, as they must be modified for your plugins. See the HTML
|
||||
# documentation on the plugins for examples of how to configure command definitions.
|
||||
#
|
||||
# NOTE: The following 'check_local_...' functions are designed to monitor
|
||||
# various metrics on the host that Nagios is running on (i.e. this one).
|
||||
################################################################################
|
||||
|
||||
# 'check_local_disk' command definition
|
||||
define command{
|
||||
command_name check_local_disk
|
||||
command_line $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
|
||||
}
|
||||
|
||||
|
||||
# 'check_local_load' command definition
|
||||
define command{
|
||||
command_name check_local_load
|
||||
command_line $USER1$/check_load -w $ARG1$ -c $ARG2$
|
||||
}
|
||||
|
||||
|
||||
# 'check_local_procs' command definition
|
||||
define command{
|
||||
command_name check_local_procs
|
||||
command_line $USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$
|
||||
}
|
||||
|
||||
|
||||
# 'check_local_users' command definition
|
||||
define command{
|
||||
command_name check_local_users
|
||||
command_line $USER1$/check_users -w $ARG1$ -c $ARG2$
|
||||
}
|
||||
|
||||
|
||||
# 'check_local_swap' command definition
|
||||
define command{
|
||||
command_name check_local_swap
|
||||
command_line $USER1$/check_swap -w $ARG1$ -c $ARG2$
|
||||
}
|
||||
|
||||
|
||||
# 'check_local_mrtgtraf' command definition
|
||||
define command{
|
||||
command_name check_local_mrtgtraf
|
||||
command_line $USER1$/check_mrtgtraf -F $ARG1$ -a $ARG2$ -w $ARG3$ -c $ARG4$ -e $ARG5$
|
||||
}
|
||||
|
||||
|
||||
################################################################################
|
||||
# NOTE: The following 'check_...' commands are used to monitor services on
|
||||
# both local and remote hosts.
|
||||
################################################################################
|
||||
|
||||
# 'check_ftp' command definition
|
||||
define command{
|
||||
command_name check_ftp
|
||||
command_line $USER1$/check_ftp -H $HOSTADDRESS$ $ARG1$
|
||||
}
|
||||
|
||||
|
||||
# 'check_hpjd' command definition
|
||||
define command{
|
||||
command_name check_hpjd
|
||||
command_line $USER1$/check_hpjd -H $HOSTADDRESS$ $ARG1$
|
||||
}
|
||||
|
||||
|
||||
# 'check_snmp' command definition
|
||||
define command{
|
||||
command_name check_snmp
|
||||
command_line $USER1$/check_snmp -H $HOSTADDRESS$ $ARG1$
|
||||
}
|
||||
|
||||
|
||||
# 'check_http' command definition
|
||||
define command{
|
||||
command_name check_http
|
||||
command_line $USER1$/check_http -I $HOSTADDRESS$ $ARG1$
|
||||
}
|
||||
|
||||
|
||||
# 'check_ssh' command definition
|
||||
define command{
|
||||
command_name check_ssh
|
||||
command_line $USER1$/check_ssh $ARG1$ $HOSTADDRESS$
|
||||
}
|
||||
|
||||
|
||||
# 'check_dhcp' command definition
|
||||
define command{
|
||||
command_name check_dhcp
|
||||
command_line $USER1$/check_dhcp $ARG1$
|
||||
}
|
||||
|
||||
|
||||
# 'check_ping' command definition
|
||||
define command{
|
||||
command_name check_ping
|
||||
command_line $USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5
|
||||
}
|
||||
|
||||
|
||||
# 'check_pop' command definition
|
||||
define command{
|
||||
command_name check_pop
|
||||
command_line $USER1$/check_pop -H $HOSTADDRESS$ $ARG1$
|
||||
}
|
||||
|
||||
|
||||
# 'check_imap' command definition
|
||||
define command{
|
||||
command_name check_imap
|
||||
command_line $USER1$/check_imap -H $HOSTADDRESS$ $ARG1$
|
||||
}
|
||||
|
||||
|
||||
# 'check_smtp' command definition
|
||||
define command{
|
||||
command_name check_smtp
|
||||
command_line $USER1$/check_smtp -H $HOSTADDRESS$ $ARG1$
|
||||
}
|
||||
|
||||
|
||||
# 'check_tcp' command definition
|
||||
define command{
|
||||
command_name check_tcp
|
||||
command_line $USER1$/check_tcp -H $HOSTADDRESS$ -p $ARG1$ $ARG2$
|
||||
}
|
||||
|
||||
|
||||
# 'check_udp' command definition
|
||||
define command{
|
||||
command_name check_udp
|
||||
command_line $USER1$/check_udp -H $HOSTADDRESS$ -p $ARG1$ $ARG2$
|
||||
}
|
||||
|
||||
|
||||
# 'check_nt' command definition
|
||||
define command{
|
||||
command_name check_nt
|
||||
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$
|
||||
}
|
||||
|
||||
|
||||
# 'check_nrpe' command definition
|
||||
define command{
|
||||
command_name check_nrpe
|
||||
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
|
||||
}
|
||||
|
||||
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# SAMPLE PERFORMANCE DATA COMMANDS
|
||||
#
|
||||
# These are sample performance data commands that can be used to send performance
|
||||
# data output to two text files (one for hosts, another for services). If you
|
||||
# plan on simply writing performance data out to a file, consider using the
|
||||
# host_perfdata_file and service_perfdata_file options in the main config file.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
|
||||
# 'process-host-perfdata' command definition
|
||||
define command{
|
||||
command_name process-host-perfdata
|
||||
command_line /usr/bin/printf "%b" "$LASTHOSTCHECK$\t$HOSTNAME$\t$HOSTSTATE$\t$HOSTATTEMPT$\t$HOSTSTATETYPE$\t$HOSTEXECUTIONTIME$\t$HOSTOUTPUT$\t$HOSTPERFDATA$\n" >> /var/log/nagios/host-perfdata.out
|
||||
}
|
||||
|
||||
|
||||
# 'process-service-perfdata' command definition
|
||||
define command{
|
||||
command_name process-service-perfdata
|
||||
command_line /usr/bin/printf "%b" "$LASTSERVICECHECK$\t$HOSTNAME$\t$SERVICEDESC$\t$SERVICESTATE$\t$SERVICEATTEMPT$\t$SERVICESTATETYPE$\t$SERVICEEXECUTIONTIME$\t$SERVICELATENCY$\t$SERVICEOUTPUT$\t$SERVICEPERFDATA$\n" >> /var/log/nagios/service-perfdata.out
|
||||
}
|
||||
|
||||
|
5
nagios/files/htaccess.Debian
Normal file
5
nagios/files/htaccess.Debian
Normal file
|
@ -0,0 +1,5 @@
|
|||
AuthType Basic
|
||||
AuthName "Nagios"
|
||||
AuthUserFile /etc/nagios3/htpasswd.users
|
||||
|
||||
require valid-user
|
5
nagios/files/htaccess.RedHat
Normal file
5
nagios/files/htaccess.RedHat
Normal file
|
@ -0,0 +1,5 @@
|
|||
AuthType Basic
|
||||
AuthName "Nagios"
|
||||
AuthUserFile /etc/nagios/passwd
|
||||
|
||||
require valid-user
|
1313
nagios/files/nagios.cfg.Debian
Normal file
1313
nagios/files/nagios.cfg.Debian
Normal file
File diff suppressed because it is too large
Load diff
1330
nagios/files/nagios.cfg.RedHat
Normal file
1330
nagios/files/nagios.cfg.RedHat
Normal file
File diff suppressed because it is too large
Load diff
395
nagios/manifests/init.pp
Normal file
395
nagios/manifests/init.pp
Normal file
|
@ -0,0 +1,395 @@
|
|||
class nagios::server {
|
||||
|
||||
case $operatingsystem {
|
||||
"centos","redhat","fedora": {
|
||||
$etcdir = "/etc/nagios"
|
||||
$confdir = "${etcdir}/conf.d"
|
||||
$package = "nagios"
|
||||
$service = "nagios"
|
||||
$scriptalias = "/nagios/cgi-bin/"
|
||||
$cgibin = $architecture ? {
|
||||
"x86_64" => "/usr/lib64/nagios/cgi-bin",
|
||||
default => "/usr/lib/nagios/cgi-bin",
|
||||
}
|
||||
$htdocs = "/usr/share/nagios/html"
|
||||
}
|
||||
"ubuntu","debian": {
|
||||
$etcdir = "/etc/nagios3"
|
||||
$confdir = "${etcdir}/conf.d"
|
||||
$package = "nagios3"
|
||||
$service = "nagios3"
|
||||
$scriptalias = "/cgi-bin/nagios3/"
|
||||
$cgibin = "/usr/lib/cgi-bin/nagios3"
|
||||
$htdocs = "/usr/share/nagios3/htdocs"
|
||||
}
|
||||
default: {
|
||||
fail("nagios::server not supported on ${::operatingsystem}")
|
||||
}
|
||||
}
|
||||
|
||||
package { "nagios":
|
||||
name => $package,
|
||||
ensure => installed,
|
||||
}
|
||||
|
||||
case $operatingsystem {
|
||||
"centos","redhat","fedora": {
|
||||
package { [ "nagios-plugins-all",
|
||||
"nagios-plugins-nrpe", ]:
|
||||
ensure => installed,
|
||||
}
|
||||
}
|
||||
"ubuntu","debian": {
|
||||
package { [ "nagios-plugins",
|
||||
"nagios-nrpe-plugin", ]:
|
||||
ensure => installed,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
service { "nagios":
|
||||
name => $service,
|
||||
ensure => running,
|
||||
enable => true,
|
||||
}
|
||||
|
||||
apache::configfile { "nagios.conf":
|
||||
content => template("nagios/nagios-httpd.conf.erb"),
|
||||
}
|
||||
|
||||
file { [ "${htdocs}/.htaccess", "${cgibin}/.htaccess" ]:
|
||||
ensure => present,
|
||||
mode => "0644",
|
||||
owner => "root",
|
||||
group => "root",
|
||||
source => [ "puppet:///files/nagios/htaccess",
|
||||
"puppet:///modules/nagios/htaccess.${osfamily}", ],
|
||||
require => Package["nagios"],
|
||||
}
|
||||
|
||||
file { "/etc/nagios/nagios.cfg":
|
||||
name => "${etcdir}/nagios.cfg",
|
||||
ensure => present,
|
||||
mode => "0644",
|
||||
owner => "root",
|
||||
group => "root",
|
||||
source => "puppet:///modules/nagios/nagios.cfg.${osfamily}",
|
||||
require => Package["nagios"],
|
||||
notify => Service["nagios"],
|
||||
}
|
||||
|
||||
file { "/etc/nagios/cgi.cfg":
|
||||
name => "${etcdir}/cgi.cfg",
|
||||
ensure => present,
|
||||
mode => "0644",
|
||||
owner => "root",
|
||||
group => "root",
|
||||
content => template("nagios/cgi.cfg.erb"),
|
||||
require => Package["nagios"],
|
||||
notify => Service["nagios"],
|
||||
}
|
||||
|
||||
file { "/etc/nagios/commands.cfg":
|
||||
name => "${etcdir}/commands.cfg",
|
||||
ensure => present,
|
||||
mode => "0644",
|
||||
owner => "root",
|
||||
group => "root",
|
||||
source => "puppet:///modules/nagios/commands.cfg",
|
||||
require => Package["nagios"],
|
||||
notify => Service["nagios"],
|
||||
}
|
||||
|
||||
file { "/etc/nagios/conf.d":
|
||||
name => $confdir,
|
||||
ensure => directory,
|
||||
purge => true,
|
||||
force => true,
|
||||
recurse => true,
|
||||
owner => "root",
|
||||
group => "root",
|
||||
mode => "0644",
|
||||
source => "puppet:///modules/custom/empty",
|
||||
require => Package["nagios"],
|
||||
notify => Service["nagios"],
|
||||
}
|
||||
|
||||
file { "${confdir}/contactgroup_all.cfg":
|
||||
ensure => present,
|
||||
mode => "0644",
|
||||
owner => "root",
|
||||
group => "root",
|
||||
before => Nagios_Contactgroup["all"],
|
||||
}
|
||||
nagios_contactgroup { "all":
|
||||
target => "${confdir}/contactgroup_all.cfg",
|
||||
members => "*",
|
||||
notify => Service["nagios"],
|
||||
}
|
||||
|
||||
file { "${confdir}/host_default.cfg":
|
||||
ensure => present,
|
||||
mode => "0644",
|
||||
owner => "root",
|
||||
group => "root",
|
||||
before => Nagios_Host["default"],
|
||||
}
|
||||
nagios_host { "default":
|
||||
target => "${confdir}/host_default.cfg",
|
||||
register => "0",
|
||||
notifications_enabled => "1",
|
||||
event_handler_enabled => "1",
|
||||
flap_detection_enabled => "1",
|
||||
failure_prediction_enabled => "1",
|
||||
process_perf_data => "1",
|
||||
retain_status_information => "1",
|
||||
retain_nonstatus_information => "1",
|
||||
check_command => "check-host-alive",
|
||||
max_check_attempts => "5",
|
||||
notification_interval => "0",
|
||||
notification_period => "24x7",
|
||||
notification_options => "d,u,r",
|
||||
contact_groups => "all",
|
||||
notify => Service["nagios"],
|
||||
}
|
||||
|
||||
file { "${confdir}/service_default.cfg":
|
||||
ensure => present,
|
||||
mode => "0644",
|
||||
owner => "root",
|
||||
group => "root",
|
||||
before => Nagios_Service["default"],
|
||||
}
|
||||
nagios_service { "default":
|
||||
target => "${confdir}/service_default.cfg",
|
||||
register => "0",
|
||||
active_checks_enabled => "1",
|
||||
passive_checks_enabled => "1",
|
||||
parallelize_check => "1",
|
||||
obsess_over_service => "1",
|
||||
check_freshness => "0",
|
||||
notifications_enabled => "1",
|
||||
event_handler_enabled => "1",
|
||||
flap_detection_enabled => "1",
|
||||
failure_prediction_enabled => "1",
|
||||
process_perf_data => "1",
|
||||
retain_status_information => "1",
|
||||
retain_nonstatus_information => "1",
|
||||
notification_interval => "0",
|
||||
is_volatile => "0",
|
||||
check_period => "24x7",
|
||||
normal_check_interval => "5",
|
||||
retry_check_interval => "1",
|
||||
max_check_attempts => "2",
|
||||
notification_period => "24x7",
|
||||
notification_options => "w,u,c,r",
|
||||
contact_groups => "all",
|
||||
notify => Service["nagios"],
|
||||
}
|
||||
|
||||
file { "${confdir}/timeperiod_24x7.cfg":
|
||||
ensure => present,
|
||||
mode => "0644",
|
||||
owner => "root",
|
||||
group => "root",
|
||||
before => Nagios_Timeperiod["24x7"],
|
||||
}
|
||||
nagios_timeperiod { "24x7":
|
||||
target => "${confdir}/timeperiod_24x7.cfg",
|
||||
alias => "24x7",
|
||||
monday => "00:00-24:00",
|
||||
tuesday => "00:00-24:00",
|
||||
wednesday => "00:00-24:00",
|
||||
thursday => "00:00-24:00",
|
||||
friday => "00:00-24:00",
|
||||
saturday => "00:00-24:00",
|
||||
sunday => "00:00-24:00",
|
||||
notify => Service["nagios"],
|
||||
}
|
||||
|
||||
Nagios::Host <<||>> {
|
||||
confdir => $confdir,
|
||||
notify => Service["nagios"],
|
||||
}
|
||||
Nagios::Service <<||>> {
|
||||
confdir => $confdir,
|
||||
notify => Service["nagios"],
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
define nagios::contact::email($confdir=$nagios::server::confdir) {
|
||||
|
||||
file { "${confdir}/contact_${name}.cfg":
|
||||
ensure => present,
|
||||
mode => "0644",
|
||||
owner => "root",
|
||||
group => "root",
|
||||
before => Nagios_Contact[$name],
|
||||
}
|
||||
nagios_contact { $name:
|
||||
target => "${confdir}/contact_${name}.cfg",
|
||||
host_notification_commands => "notify-host-by-email",
|
||||
host_notification_options => "d,r",
|
||||
host_notification_period => "24x7",
|
||||
service_notification_commands => "notify-service-by-email",
|
||||
service_notification_options => "w,u,c,r",
|
||||
service_notification_period => "24x7",
|
||||
email => $name,
|
||||
notify => Service["nagios"],
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
define nagios::host($confdir, $operatingsystem) {
|
||||
|
||||
file { "${confdir}/host_${name}.cfg":
|
||||
ensure => present,
|
||||
mode => "0644",
|
||||
owner => "root",
|
||||
group => "root",
|
||||
before => Nagios_Host[$name],
|
||||
}
|
||||
nagios_host { $name:
|
||||
ensure => present,
|
||||
use => "default",
|
||||
target => "${confdir}/host_${name}.cfg"
|
||||
}
|
||||
|
||||
# file { "${confdir}/hostextinfo_${name}.cfg":
|
||||
# ensure => present,
|
||||
# mode => "0644",
|
||||
# owner => "root",
|
||||
# group => "root",
|
||||
# before => Nagios_Hostextinfo[$name],
|
||||
# }
|
||||
# nagios_hostextinfo { $name:
|
||||
# ensure => present,
|
||||
# icon_image_alt => $operatingsystem,
|
||||
# icon_image => "base/${operatingsystem}.png",
|
||||
# statusmap_image => "base/${operatingsystem}.gd2",
|
||||
# target => "${confdir}/hostextinfo_${name}.cfg"
|
||||
# }
|
||||
|
||||
}
|
||||
|
||||
|
||||
define nagios::service($confdir, $host, $command, $description) {
|
||||
|
||||
file { "${confdir}/service_${name}.cfg":
|
||||
ensure => present,
|
||||
mode => "0644",
|
||||
owner => "root",
|
||||
group => "root",
|
||||
before => Nagios_Service[$name],
|
||||
}
|
||||
nagios_service { $name:
|
||||
host_name => $host,
|
||||
check_command => $command,
|
||||
service_description => $description,
|
||||
use => "default",
|
||||
target => "${confdir}/service_${name}.cfg"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
class nagios::target {
|
||||
|
||||
@@nagios::host { $fqdn:
|
||||
operatingsystem => inline_template("<%= operatingsystem.downcase %>")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
class nagios::target::nrpe {
|
||||
|
||||
if !$nagios_allow {
|
||||
$nagios_allow = "127.0.0.1"
|
||||
}
|
||||
|
||||
include nagios::target
|
||||
|
||||
case $operatingsystem {
|
||||
"centos","redhat","fedora": {
|
||||
package { [ "nrpe",
|
||||
"nagios-plugins-disk",
|
||||
"nagios-plugins-load",
|
||||
"nagios-plugins-procs",
|
||||
"nagios-plugins-users", ]:
|
||||
ensure => installed,
|
||||
before => [ Augeas["nrpe-allow"], Service["nrpe"] ],
|
||||
}
|
||||
$service = "nrpe"
|
||||
}
|
||||
"ubuntu","debian": {
|
||||
package { [ "nagios-nrpe-server",
|
||||
"nagios-plugins-basic", ]:
|
||||
ensure => installed,
|
||||
before => [ Augeas["nrpe-allow"], Service["nrpe"] ],
|
||||
}
|
||||
$service = "nagios-nrpe-server"
|
||||
}
|
||||
}
|
||||
|
||||
service { "nrpe":
|
||||
name => $service,
|
||||
ensure => running,
|
||||
enable => true,
|
||||
}
|
||||
|
||||
augeas { "nrpe-allow":
|
||||
context => "/files/etc/nagios/nrpe.cfg",
|
||||
changes => "set allowed_hosts '${nagios_allow}'",
|
||||
notify => Service["nrpe"],
|
||||
}
|
||||
|
||||
@@nagios::service { "${fqdn}_load":
|
||||
host => $fqdn,
|
||||
command => "check_nrpe!check_load",
|
||||
description => "Load",
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
class nagios::target::ssh {
|
||||
|
||||
include nagios::target
|
||||
|
||||
@@nagios::service { "${fqdn}_ssh":
|
||||
host => $fqdn,
|
||||
command => "check_ssh",
|
||||
description => "SSH",
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
class nagios::target::http {
|
||||
|
||||
include nagios::target
|
||||
|
||||
@@nagios::service { "${fqdn}_http":
|
||||
host => $fqdn,
|
||||
command => "check_http",
|
||||
description => "HTTP",
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
class nagios::target::https {
|
||||
|
||||
include nagios::target
|
||||
|
||||
@@nagios::service { "${fqdn}_https":
|
||||
host => $fqdn,
|
||||
command => "check_http!--ssl",
|
||||
description => "HTTPS",
|
||||
}
|
||||
|
||||
}
|
387
nagios/templates/cgi.cfg.erb
Normal file
387
nagios/templates/cgi.cfg.erb
Normal file
|
@ -0,0 +1,387 @@
|
|||
#################################################################
|
||||
#
|
||||
# CGI.CFG - Sample CGI Configuration File for Nagios 3.4.1
|
||||
#
|
||||
# Last Modified: 06-17-2009
|
||||
#
|
||||
#################################################################
|
||||
|
||||
|
||||
# MAIN CONFIGURATION FILE
|
||||
# This tells the CGIs where to find your main configuration file.
|
||||
# The CGIs will read the main and host config files for any other
|
||||
# data they might need.
|
||||
|
||||
main_config_file=<%= etcdir %>/nagios.cfg
|
||||
|
||||
|
||||
|
||||
# PHYSICAL HTML PATH
|
||||
# This is the path where the HTML files for Nagios reside. This
|
||||
# value is used to locate the logo images needed by the statusmap
|
||||
# and statuswrl CGIs.
|
||||
|
||||
physical_html_path=<%= htdocs %>
|
||||
|
||||
|
||||
|
||||
# URL HTML PATH
|
||||
# This is the path portion of the URL that corresponds to the
|
||||
# physical location of the Nagios HTML files (as defined above).
|
||||
# This value is used by the CGIs to locate the online documentation
|
||||
# and graphics. If you access the Nagios pages with an URL like
|
||||
# http://www.myhost.com/nagios, this value should be '/nagios'
|
||||
# (without the quotes).
|
||||
|
||||
url_html_path=/nagios
|
||||
|
||||
|
||||
|
||||
# CONTEXT-SENSITIVE HELP
|
||||
# This option determines whether or not a context-sensitive
|
||||
# help icon will be displayed for most of the CGIs.
|
||||
# Values: 0 = disables context-sensitive help
|
||||
# 1 = enables context-sensitive help
|
||||
|
||||
show_context_help=0
|
||||
|
||||
|
||||
|
||||
# PENDING STATES OPTION
|
||||
# This option determines what states should be displayed in the web
|
||||
# interface for hosts/services that have not yet been checked.
|
||||
# Values: 0 = leave hosts/services that have not been check yet in their original state
|
||||
# 1 = mark hosts/services that have not been checked yet as PENDING
|
||||
|
||||
use_pending_states=1
|
||||
|
||||
# NAGIOS PROCESS CHECK COMMAND
|
||||
# This is the full path and filename of the program used to check
|
||||
# the status of the Nagios process. It is used only by the CGIs
|
||||
# and is completely optional. However, if you don't use it, you'll
|
||||
# see warning messages in the CGIs about the Nagios process
|
||||
# not running and you won't be able to execute any commands from
|
||||
# the web interface. The program should follow the same rules
|
||||
# as plugins; the return codes are the same as for the plugins,
|
||||
# it should have timeout protection, it should output something
|
||||
# to STDIO, etc.
|
||||
#
|
||||
# Note: The command line for the check_nagios plugin below may
|
||||
# have to be tweaked a bit, as different versions of the plugin
|
||||
# use different command line arguments/syntaxes.
|
||||
|
||||
<% if osfamily == 'Debian' -%>
|
||||
nagios_check_command=/usr/lib/nagios/plugins/check_nagios /var/cache/nagios3/status.dat 5 '/usr/sbin/nagios3'
|
||||
<% else -%>
|
||||
<% if architecture == 'x86_64' %>
|
||||
nagios_check_command=/usr/lib64/nagios/plugins/check_nagios /var/log/nagios/status.dat 5 '/usr/sbin/nagios'
|
||||
<% else -%>
|
||||
nagios_check_command=/usr/lib/nagios/plugins/check_nagios /var/log/nagios/status.dat 5 '/usr/sbin/nagios'
|
||||
<% end -%>
|
||||
<% end -%>
|
||||
|
||||
|
||||
# AUTHENTICATION USAGE
|
||||
# This option controls whether or not the CGIs will use any
|
||||
# authentication when displaying host and service information, as
|
||||
# well as committing commands to Nagios for processing.
|
||||
#
|
||||
# Read the HTML documentation to learn how the authorization works!
|
||||
#
|
||||
# NOTE: It is a really *bad* idea to disable authorization, unless
|
||||
# you plan on removing the command CGI (cmd.cgi)! Failure to do
|
||||
# so will leave you wide open to kiddies messing with Nagios and
|
||||
# possibly hitting you with a denial of service attack by filling up
|
||||
# your drive by continuously writing to your command file!
|
||||
#
|
||||
# Setting this value to 0 will cause the CGIs to *not* use
|
||||
# authentication (bad idea), while any other value will make them
|
||||
# use the authentication functions (the default).
|
||||
|
||||
use_authentication=1
|
||||
|
||||
|
||||
|
||||
|
||||
# x509 CERT AUTHENTICATION
|
||||
# When enabled, this option allows you to use x509 cert (SSL)
|
||||
# authentication in the CGIs. This is an advanced option and should
|
||||
# not be enabled unless you know what you're doing.
|
||||
|
||||
use_ssl_authentication=0
|
||||
|
||||
|
||||
|
||||
|
||||
# DEFAULT USER
|
||||
# Setting this variable will define a default user name that can
|
||||
# access pages without authentication. This allows people within a
|
||||
# secure domain (i.e., behind a firewall) to see the current status
|
||||
# without authenticating. You may want to use this to avoid basic
|
||||
# authentication if you are not using a secure server since basic
|
||||
# authentication transmits passwords in the clear.
|
||||
#
|
||||
# Important: Do not define a default username unless you are
|
||||
# running a secure web server and are sure that everyone who has
|
||||
# access to the CGIs has been authenticated in some manner! If you
|
||||
# define this variable, anyone who has not authenticated to the web
|
||||
# server will inherit all rights you assign to this user!
|
||||
|
||||
#default_user_name=guest
|
||||
|
||||
|
||||
|
||||
# SYSTEM/PROCESS INFORMATION ACCESS
|
||||
# This option is a comma-delimited list of all usernames that
|
||||
# have access to viewing the Nagios process information as
|
||||
# provided by the Extended Information CGI (extinfo.cgi). By
|
||||
# default, *no one* has access to this unless you choose to
|
||||
# not use authorization. You may use an asterisk (*) to
|
||||
# authorize any user who has authenticated to the web server.
|
||||
|
||||
authorized_for_system_information=*
|
||||
|
||||
|
||||
|
||||
# CONFIGURATION INFORMATION ACCESS
|
||||
# This option is a comma-delimited list of all usernames that
|
||||
# can view ALL configuration information (hosts, commands, etc).
|
||||
# By default, users can only view configuration information
|
||||
# for the hosts and services they are contacts for. You may use
|
||||
# an asterisk (*) to authorize any user who has authenticated
|
||||
# to the web server.
|
||||
|
||||
authorized_for_configuration_information=*
|
||||
|
||||
|
||||
|
||||
# SYSTEM/PROCESS COMMAND ACCESS
|
||||
# This option is a comma-delimited list of all usernames that
|
||||
# can issue shutdown and restart commands to Nagios via the
|
||||
# command CGI (cmd.cgi). Users in this list can also change
|
||||
# the program mode to active or standby. By default, *no one*
|
||||
# has access to this unless you choose to not use authorization.
|
||||
# You may use an asterisk (*) to authorize any user who has
|
||||
# authenticated to the web server.
|
||||
|
||||
authorized_for_system_commands=
|
||||
|
||||
|
||||
|
||||
# GLOBAL HOST/SERVICE VIEW ACCESS
|
||||
# These two options are comma-delimited lists of all usernames that
|
||||
# can view information for all hosts and services that are being
|
||||
# monitored. By default, users can only view information
|
||||
# for hosts or services that they are contacts for (unless you
|
||||
# you choose to not use authorization). You may use an asterisk (*)
|
||||
# to authorize any user who has authenticated to the web server.
|
||||
|
||||
|
||||
authorized_for_all_services=*
|
||||
authorized_for_all_hosts=*
|
||||
|
||||
|
||||
|
||||
# GLOBAL HOST/SERVICE COMMAND ACCESS
|
||||
# These two options are comma-delimited lists of all usernames that
|
||||
# can issue host or service related commands via the command
|
||||
# CGI (cmd.cgi) for all hosts and services that are being monitored.
|
||||
# By default, users can only issue commands for hosts or services
|
||||
# that they are contacts for (unless you you choose to not use
|
||||
# authorization). You may use an asterisk (*) to authorize any
|
||||
# user who has authenticated to the web server.
|
||||
|
||||
authorized_for_all_service_commands=
|
||||
authorized_for_all_host_commands=
|
||||
|
||||
|
||||
|
||||
# READ-ONLY USERS
|
||||
# A comma-delimited list of usernames that have read-only rights in
|
||||
# the CGIs. This will block any service or host commands normally shown
|
||||
# on the extinfo CGI pages. It will also block comments from being shown
|
||||
# to read-only users.
|
||||
|
||||
#authorized_for_read_only=user1,user2
|
||||
|
||||
|
||||
|
||||
|
||||
# STATUSMAP BACKGROUND IMAGE
|
||||
# This option allows you to specify an image to be used as a
|
||||
# background in the statusmap CGI. It is assumed that the image
|
||||
# resides in the HTML images path (i.e. /usr/local/nagios/share/images).
|
||||
# This path is automatically determined by appending "/images"
|
||||
# to the path specified by the 'physical_html_path' directive.
|
||||
# Note: The image file may be in GIF, PNG, JPEG, or GD2 format.
|
||||
# However, I recommend that you convert your image to GD2 format
|
||||
# (uncompressed), as this will cause less CPU load when the CGI
|
||||
# generates the image.
|
||||
|
||||
#statusmap_background_image=smbackground.gd2
|
||||
|
||||
|
||||
|
||||
|
||||
# STATUSMAP TRANSPARENCY INDEX COLOR
|
||||
# These options set the r,g,b values of the background color used the statusmap CGI,
|
||||
# so normal browsers that can't show real png transparency set the desired color as
|
||||
# a background color instead (to make it look pretty).
|
||||
# Defaults to white: (R,G,B) = (255,255,255).
|
||||
|
||||
#color_transparency_index_r=255
|
||||
#color_transparency_index_g=255
|
||||
#color_transparency_index_b=255
|
||||
|
||||
|
||||
|
||||
|
||||
# DEFAULT STATUSMAP LAYOUT METHOD
|
||||
# This option allows you to specify the default layout method
|
||||
# the statusmap CGI should use for drawing hosts. If you do
|
||||
# not use this option, the default is to use user-defined
|
||||
# coordinates. Valid options are as follows:
|
||||
# 0 = User-defined coordinates
|
||||
# 1 = Depth layers
|
||||
# 2 = Collapsed tree
|
||||
# 3 = Balanced tree
|
||||
# 4 = Circular
|
||||
# 5 = Circular (Marked Up)
|
||||
|
||||
default_statusmap_layout=5
|
||||
|
||||
|
||||
|
||||
# DEFAULT STATUSWRL LAYOUT METHOD
|
||||
# This option allows you to specify the default layout method
|
||||
# the statuswrl (VRML) CGI should use for drawing hosts. If you
|
||||
# do not use this option, the default is to use user-defined
|
||||
# coordinates. Valid options are as follows:
|
||||
# 0 = User-defined coordinates
|
||||
# 2 = Collapsed tree
|
||||
# 3 = Balanced tree
|
||||
# 4 = Circular
|
||||
|
||||
default_statuswrl_layout=4
|
||||
|
||||
|
||||
|
||||
# STATUSWRL INCLUDE
|
||||
# This option allows you to include your own objects in the
|
||||
# generated VRML world. It is assumed that the file
|
||||
# resides in the HTML path (i.e. /usr/local/nagios/share).
|
||||
|
||||
#statuswrl_include=myworld.wrl
|
||||
|
||||
|
||||
|
||||
# PING SYNTAX
|
||||
# This option determines what syntax should be used when
|
||||
# attempting to ping a host from the WAP interface (using
|
||||
# the statuswml CGI. You must include the full path to
|
||||
# the ping binary, along with all required options. The
|
||||
# $HOSTADDRESS$ macro is substituted with the address of
|
||||
# the host before the command is executed.
|
||||
# Please note that the syntax for the ping binary is
|
||||
# notorious for being different on virtually ever *NIX
|
||||
# OS and distribution, so you may have to tweak this to
|
||||
# work on your system.
|
||||
|
||||
ping_syntax=/bin/ping -n -U -c 5 $HOSTADDRESS$
|
||||
|
||||
|
||||
|
||||
# REFRESH RATE
|
||||
# This option allows you to specify the refresh rate in seconds
|
||||
# of various CGIs (status, statusmap, extinfo, and outages).
|
||||
|
||||
refresh_rate=90
|
||||
|
||||
# DEFAULT PAGE LIMIT
|
||||
# This option allows you to specify the default number of results
|
||||
# displayed on the status.cgi. This number can be adjusted from
|
||||
# within the UI after the initial page load. Setting this to 0
|
||||
# will show all results.
|
||||
|
||||
result_limit=100
|
||||
|
||||
|
||||
# ESCAPE HTML TAGS
|
||||
# This option determines whether HTML tags in host and service
|
||||
# status output is escaped in the web interface. If enabled,
|
||||
# your plugin output will not be able to contain clickable links.
|
||||
|
||||
escape_html_tags=1
|
||||
|
||||
|
||||
|
||||
|
||||
# SOUND OPTIONS
|
||||
# These options allow you to specify an optional audio file
|
||||
# that should be played in your browser window when there are
|
||||
# problems on the network. The audio files are used only in
|
||||
# the status CGI. Only the sound for the most critical problem
|
||||
# will be played. Order of importance (higher to lower) is as
|
||||
# follows: unreachable hosts, down hosts, critical services,
|
||||
# warning services, and unknown services. If there are no
|
||||
# visible problems, the sound file optionally specified by
|
||||
# 'normal_sound' variable will be played.
|
||||
#
|
||||
#
|
||||
# <varname>=<sound_file>
|
||||
#
|
||||
# Note: All audio files must be placed in the /media subdirectory
|
||||
# under the HTML path (i.e. /usr/local/nagios/share/media/).
|
||||
|
||||
#host_unreachable_sound=hostdown.wav
|
||||
#host_down_sound=hostdown.wav
|
||||
#service_critical_sound=critical.wav
|
||||
#service_warning_sound=warning.wav
|
||||
#service_unknown_sound=warning.wav
|
||||
#normal_sound=noproblem.wav
|
||||
|
||||
|
||||
|
||||
# URL TARGET FRAMES
|
||||
# These options determine the target frames in which notes and
|
||||
# action URLs will open.
|
||||
|
||||
action_url_target=_blank
|
||||
notes_url_target=_blank
|
||||
|
||||
|
||||
|
||||
|
||||
# LOCK AUTHOR NAMES OPTION
|
||||
# This option determines whether users can change the author name
|
||||
# when submitting comments, scheduling downtime. If disabled, the
|
||||
# author names will be locked into their contact name, as defined in Nagios.
|
||||
# Values: 0 = allow editing author names
|
||||
# 1 = lock author names (disallow editing)
|
||||
|
||||
lock_author_names=1
|
||||
|
||||
|
||||
|
||||
|
||||
# SPLUNK INTEGRATION OPTIONS
|
||||
# These options allow you to enable integration with Splunk
|
||||
# in the web interface. If enabled, you'll be presented with
|
||||
# "Splunk It" links in various places in the CGIs (log file,
|
||||
# alert history, host/service detail, etc). Useful if you're
|
||||
# trying to research why a particular problem occurred.
|
||||
# For more information on Splunk, visit http://www.splunk.com/
|
||||
|
||||
# This option determines whether the Splunk integration is enabled
|
||||
# Values: 0 = disable Splunk integration
|
||||
# 1 = enable Splunk integration
|
||||
|
||||
#enable_splunk_integration=1
|
||||
|
||||
|
||||
# This option should be the URL used to access your instance of Splunk
|
||||
|
||||
#splunk_url=http://127.0.0.1:8000/
|
||||
|
||||
|
||||
|
12
nagios/templates/nagios-httpd.conf.erb
Normal file
12
nagios/templates/nagios-httpd.conf.erb
Normal file
|
@ -0,0 +1,12 @@
|
|||
ScriptAlias <%= scriptalias %> <%= cgibin %>/
|
||||
Alias /nagios <%= htdocs %>
|
||||
|
||||
<Directory "<%= cgibin %>">
|
||||
Options ExecCGI
|
||||
AllowOverride AuthConfig
|
||||
</Directory>
|
||||
|
||||
<Directory "<%= htdocs %>">
|
||||
Options FollowSymLinks
|
||||
AllowOverride AuthConfig
|
||||
</Directory>
|
Loading…
Add table
Reference in a new issue