Nagios: initial configs

This commit is contained in:
Vladimir Vitkov 2017-09-20 17:26:27 +03:00
parent 3d8b4c50cc
commit ed68e7e8be
88 changed files with 5142 additions and 0 deletions

377
monitoring/nagios3/cgi.cfg Normal file
View File

@ -0,0 +1,377 @@
#################################################################
#
# CGI.CFG - Sample CGI Configuration File for Nagios
#
#################################################################
# 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=/etc/nagios3/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=/usr/share/nagios3/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=/nagios3
# 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=1
# 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.
nagios_check_command=/usr/lib/nagios/plugins/check_nagios /var/cache/nagios3/status.dat 5 '/usr/sbin/nagios3'
# 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=0
# 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/

View File

@ -0,0 +1,128 @@
###############################################################################
# COMMANDS.CFG - SAMPLE COMMAND DEFINITIONS FOR NAGIOS
###############################################################################
################################################################################
# NOTIFICATION COMMANDS
################################################################################
# '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" | /usr/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" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
}
################################################################################
# HOST CHECK COMMANDS
################################################################################
# On Debian, check-host-alive is being defined from within the
# nagios-plugins-basic package
################################################################################
# PERFORMANCE DATA COMMANDS
################################################################################
# '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/lib/nagios3/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/lib/nagios3/service-perfdata.out
}
###### custom snmp commands ######
define command {
command_name check_snmp_cisco
command_line /usr/lib/nagios/plugins/check_snmp -H $HOSTADDRESS$ -P 2c -C $USER3$ -o $ARG1$ $ARG2$ $ARG3$
}
define command {
command_name check_stream_count
command_line /usr/local/bin/count-streams.sh $ARG1$ $ARG2$
}
define command {
command_name check_rtmp
command_line /usr/lib/nagios/plugins/check_rtmp.sh -u $ARG1$ -t 5
}
define command {
command_name check_collectd
command_line /usr/bin/collectd-nagios -s /tmp/collectd.sock -H $HOSTALIAS$ -n $ARG1$ -w $ARG2$ -c $ARG3$
}
define command {
command_name notify-service-by-slack
command_line /usr/local/bin/slack_nagios.pl -field slack_channel=#noc -field HOSTALIAS="$HOSTNAME$" -field SERVICEDESC="$SERVICEDESC$" -field SERVICESTATE="$SERVICESTATE$" -field SERVICEOUTPUT="$SERVICEOUTPUT$" -field NOTIFICATIONTYPE="$NOTIFICATIONTYPE$"
}
define command {
command_name notify-host-by-slack
command_line /usr/local/bin/slack_nagios.pl -field slack_channel=#noc -field HOSTALIAS="$HOSTNAME$" -field HOSTSTATE="$HOSTSTATE$" -field HOSTOUTPUT="$HOSTOUTPUT$" -field NOTIFICATIONTYPE="$NOTIFICATIONTYPE$"
}
# check http with host and port
# check for grafana
define command {
command_name check_http_host_port
command_line /usr/lib/nagios/plugins/check_http -H $ARG1$ -I $ARG2$ -p $ARG3$
}
define command {
command_name check_tcp_port
command_line /usr/lib/nagios/plugins/check_tcp -H $HOSTADDRESS$ -p $ARG1$
}
define command {
command_name check_udp_port
command_line /usr/lib/nagios/plugins/check_udp -H $HOSTADDRESS$ -p $ARG1$
}
# for unbound
define command {
command_name custom_check_dns
command_line /usr/lib/nagios/plugins/check_dns -H openfest.org -s $HOSTADDRESS$ -a 79.98.105.21
}
# check dynamic interface status
define command {
command_name check_ifstat_snmp
command_line /etc/nagios3/commands/check-interface-up.sh $USER3$ $HOSTADDRESS$ $ARG1$
}
# uptime via snmp with warnings
define command {
command_name check_uptime_snmp
command_line /etc/nagios3/commands/check_uptime_snmp.pl -H $HOSTADDRESS$ -2 -C $USER3$ $ARG1$ $ARG2$ $ARG3$
}
# check dynamic interface status
define command {
command_name check_ifstat_snmp_ap
command_line /etc/nagios3/commands/check-interface-up.sh $USER4$ $HOSTADDRESS$ $ARG1$
}
# uptime via snmp with warnings
define command {
command_name check_uptime_snmp_ap
command_line /etc/nagios3/commands/check_uptime_snmp.pl -H $HOSTADDRESS$ -2 -C $USER4$ $ARG1$ $ARG2$ $ARG3$
}

View File

@ -0,0 +1,61 @@
#!/bin/bash
#
# Simple script to check if remote wifi if is up
#
# 2016.10.20 - Initial version
#
# copyright: 2016 Vladimir Vitkov <vvitkov@linuxbg.org>
# helpers
E_OK=0
E_WARNING="1"
E_CRITICAL="2"
E_UNKNOWN="3"
_community=${1}
_hostname=${2}
_interface=${3}
# Sanity check
if [ $# -ne 3 ]; then
echo "UNKNOWN: Missing parameters $0 <Community> <Hostname> <interface name>"
exit ${E_UNKNOWN}
fi
function find_oid() {
# oids
# .1.3.6.1.2.1.2.2.1.2 - IF-MIB::ifDescr
_oid=$(
snmpwalk \
-v2c \
-c ${_community} \
-On \
-m '' \
-t 1 \
-r 5 \
-Oqn \
${_hostname} \
.1.3.6.1.2.1.2.2.1.2 | \
egrep ${_interface} | \
awk '{print $1}'
)
echo ${_oid}
}
function check_status() {
# lets have the id please
_id=$(echo ${1} | awk -F'.' '{print $NF}')
# oids
# .1.3.6.1.2.1.2.2.1.8 - IF-MIB::ifOperStatus
/usr/lib/nagios/plugins/check_snmp \
-H ${_hostname} \
-P 2c \
-C ${_community} \
-c 1 \
-o .1.3.6.1.2.1.2.2.1.8.${_id}
exit $?
}
OID=`find_oid`
check_status ${OID}

View File

@ -0,0 +1,722 @@
#!/usr/bin/perl -w
#
# ============================== SUMMARY =====================================
#
# Program : check_uptime.pl
# Version : 0.521
# Date : Oct 4, 2012
# Authors : William Leibzon - william@leibzon.org
# Licence : GPL - summary below, full text at http://www.fsf.org/licenses/gpl.txt
#
# =========================== PROGRAM LICENSE =================================
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
# ===================== INFORMATION ABOUT THIS PLUGIN =========================
#
# This plugin returns uptime of the system returning data in text (readable)
# format as well as in minutes for performance graphing. The plugin can either
# run on local system unix system (that supports standard 'uptime' command
# or check remote system by SNMP. The plugin can report one CRITICAL or
# WARNING alert if system has been rebooted since last check.
#
# ====================== SETUP AND PLUGIN USE NOTES =========================
#
# The plugin can either retrieve information from local system (when you
# run it through check_nrpe for example) or by SNMP from remote system.
#
# On local system it will execute standard unix 'uptime' and 'uname -a'.
#
# On a remote system it'll retrieve data from sysSystem for system type
# and use that to decide if further data should be retrieved from
# sysUptime (OID 1.3.6.1.2.1.1.3.0) for windows or
# hostUptime (OID 1.3.6.1.2.1.25.1.1.0) for unix system or
# snmpEngineTime (OID 1.3.6.1.6.3.10.2.1.3) for cisco switches
#
# For information on available options please execute it with --help i.e:
# check_uptime.pl --help
#
# As I dont have time for extensive documentation below is all very brief:
#
# 1. You can also specify warning and critical thresholds which will
# give warning or critical alert if system has been up for lees then
# specified number of minutes. Example:
# check_uptime.pl -w 5
# Will give warning alert if system has been up for less then 5 minutes
#
# 2. For performance data results you can use '-f' option which will give
# total number of minutes the system has been up.
#
# 3. A special case is use of performance to feed data from previous run
# back into the plugin. This is used to cache results about what type
# of system it is (you can also directly specify this with -T option)
# and also means -w and -c threshold values are ignored and instead
# plugin will issue ONE alert (warning or critical) if system uptime
# changes from highier value to lower
#
# ============================ EXAMPLES =======================================
#
# 1. Local server (use with NRPE or on nagios host), warning on < 5 minutes:
#
# define command {
# command_name check_uptime
# command_line $USER1$/check_uptime.pl -f -w 5
# }
#
# 2. Local server (use with NRPE or on nagios host),
# one critical alert on reboot:
#
# define command {
# command_name check_uptime
# command_line $USER1$/check_uptime.pl -f -c -P "SERVICEPERFDATA$"
# }
#
# 3. Remote server SNMP v2, one warning alert on reboot,
# autodetect and cache type of server:
#
# define command {
# command_name check_snmp_uptime_v2
# command_line $USER1$/check_uptime.pl -2 -f -w -H $HOSTADDRESS$ -C $_HOSTSNMP_COMMUNITY$ -P "$SERVICEPERFDATA$"
# }
#
# 4. Remote server SNMP v3, rest as above
#
#define command {
# command_name check_snmp_uptime_v3
# command_line $USER1$/check_uptime.pl -f -w -H $HOSTADDRESS$ -l $_HOSTSNMP_V3_USER$ -x $_HOSTSNMP_V3_AUTH$ -X $_HOSTSNMP_V3_PRIV$ -L sha,aes -P "$SERVICEPERFDATA$"
# }
#
# 5. Example of service definition using above
#
# define service{
# use std-service
# hostgroup_name all_snmp_hosts
# service_description SNMP Uptime
# max_check_attempts 1
# check_command check_snmp_uptime
# }
#
# 6. And this is optional dependency definition for above which makes
# every SNMP service (service beloning to SNMP servicegroup) on
# same host dependent on this SNMP Uptime check. Then if SNMP
# daemon goes down you only receive one alert
#
# define servicedependency{
# service_description SNMP Uptime
# dependent_servicegroup_name snmp
# }
#
# ============================= VERSION HISTORY ==============================
#
# 0.1 - sometime 2006 : Simple script for tracking local system uptime
# 0.2 - sometime 2008 : Update to get uptime by SNMP, its now alike my other plugins
# 0.3 - Nov 14, 2009 : Added getting system info line and using that to decide
# format of uptime line and how to process it. Added support
# for getting uptime with SNMP from windows systems.
# Added documentation header alike my other plugins.
# Planned to release it to public, but forgot.
# 0.4 - Dec 19, 2011 : Update to support SNMP v3, released to public
# 0.41 - Jan 13, 2012 : Added bug fix by Rom_UA posted as comment on Nagios Exchange
# Added version history you're reading right now.
# 0.42 - Feb 13, 2012 : Bug fix to not report WARNING if uptime is not correct output
# 0.5 - Feb 29, 2012 : Added support for "netswitch" engine type that retrieves
# snmpEngineTime. Added proper support for sysUpTime interpreting
# it as 1/100s of a second and converting to days,hours,minutes
# Changed internal processing structure, now reported uptime
# info text is based on uptime_minutes and not separate.
# 0.51 - Jun 05, 2012 : Bug fixed for case when when snmp system info is < 3 words.
# 0.52 - Jun 19, 2012 : For switches if snmpEngineTime OID is not available,
# the plugin will revert back to checking hostUptime and
# then sysUptime. Entire logic has in fact been changed
# to support trying more than just two OIDs. Also added
# support to specify filename to '-v' option for debug
# output to go to instead of console and for '--debug'
# option as an alias to '--verbose'.
# 0.521 - Oct 4, 2012 : Small bug in one of regex, see issue #11 on github
#
# TODO:
# 0) Add '--extra-opts' to allow to read options from a file as specified
# at http://nagiosplugins.org/extra-opts. This is TODO for all my plugins
# 1) Add support for ">", "<" and other threshold qualifiers
# as done in check_snmp_temperature.pl or check_mysqld.pl
# 2) Support for more types, in particular network equipment such as cisco: [DONE]
# sysUpTime is a 32-bit counter in 1/100 of a second, it rolls over after 496 days
# snmpEngineTime (.1.3.6.1.6.3.10.2.1.3) returns the uptime in seconds and will not
# roll over, however some cisco switches (29xx) are buggy and it gets reset too.
# Routers running 12.0(3)T or higher can use the snmpEngineTime object from
# the SNMP-FRAMEWORK-MIB. This keeps track of seconds since SNMP engine started.
# 3) Add threshold into perfout as ';warn;crit'
#
# ========================== START OF PROGRAM CODE ===========================
use strict;
use Getopt::Long;
# Nagios specific
our $TIMEOUT;
our %ERRORS;
eval 'use utils qw(%ERRORS $TIMEOUT)';
if ($@) {
$TIMEOUT = 10;
%ERRORS = ('OK'=>0,'WARNING'=>1,'CRITICAL'=>2,'UNKNOWN'=>3,'DEPENDENT'=>4);
}
our $no_snmp=0;
eval 'use Net::SNMP';
if ($@) {
$no_snmp=1;
}
# Version
my $Version='0.52';
# SNMP OID
my $oid_sysSystem = '1.3.6.1.2.1.1.1.0'; # windows and some unix
my $oid_hostUptime = '1.3.6.1.2.1.25.1.1.0'; # hostUptime, usually unix systems
my $oid_sysUptime = '1.3.6.1.2.1.1.3.0'; # sysUpTime, windows
my $oid_engineTime = '1.3.6.1.6.3.10.2.1.3'; # SNMP-FRAMEWORK-MIB
my @oid_uptime_types = ( ['', '', ''], # type 0 is reserved
[ 'local', '', ''], # type 1 is local
[ 'win', 'sysUpTime', $oid_sysUptime ], # type 2 is windows
[ 'unix-host', 'hostUpTime', $oid_hostUptime ], # type 3 is unix-host
[ 'unix-sys', 'sysUpTime', $oid_sysUptime ], # type 4 is unix-sys
[ 'net', 'engineTime', $oid_engineTime ]); # type 5 is netswitch
# Not used, but perhaps later
my $oid_hrLoad = '1.3.6.1.2.1.25.3.3.1.2.1';
my $oid_sysLoadInt1 = '1.3.6.1.4.1.2021.10.1.5.1';
my $oid_sysLoadInt5 = '1.3.6.1.4.1.2021.10.1.5.2';
my $oid_sysLoadInt15 = '1.3.6.1.4.1.2021.10.1.5.3';
# Standard options
my $o_host = undef; # hostname
my $o_timeout= undef; # Timeout (Default 10)
my $o_help= undef; # wan't some help ?
my $o_verb= undef; # verbose mode
my $o_version= undef; # print version
my $o_label= undef; # change label instead of printing uptime
my $o_perf= undef; # Output performance data (uptime in minutes)
my $o_prevperf= undef; # performance data given with $SERVICEPERFDATA$ macro
my $o_warn= undef; # WARNING alert if system has been up for < specified number of minutes
my $o_crit= undef; # CRITICAL alert if system has been up for < specified number of minutes
my $o_type= undef; # type of check (local, auto, unix, win)
# Login and other options specific to SNMP
my $o_port = 161; # SNMP port
my $o_community = undef; # community
my $o_version2 = undef; # use snmp v2c
my $o_login= undef; # Login for snmpv3
my $o_passwd= undef; # Pass for snmpv3
my $v3protocols= undef; # V3 protocol list.
my $o_authproto= 'md5'; # Auth protocol
my $o_privproto= 'des'; # Priv protocol
my $o_privpass= undef; # priv password
## Additional global variables
my %prev_perf= (); # array that is populated with previous performance data
my $check_type = 0;
sub p_version { print "check_uptime version : $Version\n"; }
sub print_usage {
print "Usage: $0 [-v [debugfilename]] [-T local|unix-host|unix-sys|win|net] [-H <host> (-C <snmp_community>) [-2] | (-l login -x passwd [-X pass -L <authp>,<privp>) [-p <port>]] [-w <warn minutes> -s <crit minutes>] [-f] [-P <previous perf data from nagios \$SERVICEPERFDATA\$>] [-t <timeout>] | [-V] [--label <string>]\n";
}
sub isnnum { # Return true if arg is not a number
my $num = shift;
if ( $num =~ /^(\d+\.?\d*)|(^\.\d+)$/ ) { return 0 ;}
return 1;
}
sub div_mod { return int( $_[0]/$_[1]) , ($_[0] % $_[1]); }
sub help {
print "\nUptime Plugin for Nagios (check_uptime) v. ",$Version,"\n";
print "GPL licence, (c) 2008-2012 William Leibzon\n\n";
print_usage();
print <<EOT;
Debug & Console Options:
-v, --verbose[=FILENAME], --debug[=FILENAME]
print extra debugging information.
if filename is specified instead of STDOUT the debug data is written to that file
-h, --help
print this help message
-V, --version
prints version number
Standard Options:
-T, --type=auto|local|unix-host|unis-sys|windows|netswitch
Type of system:
local : localhost (executes 'uptime' command), default if no -C or -l
unix-host : SNMP check from hostUptime ($oid_hostUptime) OID
unix-sys : SNMP check from sysUptime ($oid_sysUptime) OID
win | windows : SNMP check from sysUptime ($oid_sysUptime) OID
net | netswitch : SNMP check from snmpEngineTime ($oid_engineTime) OID
auto : Autodetect what system by checking sysSystem OID first, default
-w, --warning[=minutes]
Report nagios WARNING alert if system has been up for less then specified
number of minutes. If no minutes are specified but previous preformance
data is fed back with -P option then alert is sent ONLY ONCE when
uptime changes from greater value to smaller
-c, --critical[=minutes]
Report nagios CRITICAL alert if system has been up for less then
specified number of minutes or ONE ALERT if -P option is used and
system's previous uptime is larger then current on
-f, --perfparse
Perfparse compatible output
-P, --prev_perfdata
Previous performance data (normally put '-P \$SERVICEPERFDATA\$' in
nagios command definition). This is recommended if you dont specify
type of system with -T so that previously checked type of system info
is reused. This is also used to decide on warning/critical condition
if number of seconds is not specified with -w or -c.
--label=[string]
Optional custom label before results prefixed to results
-t, --timeout=INTEGER
timeout for SNMP in seconds (Default: 15)
SNMP Access Options:
-H, --hostname=HOST
name or IP address of host to check (if not localhost)
-C, --community=COMMUNITY NAME
community name for the SNMP agent (used with v1 or v2c protocols)
-2, --v2c
use snmp v2c (can not be used with -l, -x)
-l, --login=LOGIN ; -x, --passwd=PASSWD
Login and auth password for snmpv3 authentication
If no priv password exists, implies AuthNoPriv
-X, --privpass=PASSWD
Priv password for snmpv3 (AuthPriv protocol)
-L, --protocols=<authproto>,<privproto>
<authproto> : Authentication protocol (md5|sha : default md5)
<privproto> : Priv protocols (des|aes : default des)
-p, --port=PORT
SNMP port (Default 161)
EOT
}
# For verbose output (updated 06/06/12 to write to debug file if specified)
sub verb {
my $t=shift;
if (defined($o_verb)) {
if ($o_verb eq "") {
print $t,"\n";
}
else {
if (!open(DEBUGFILE, ">>$o_verb")) {
print $t, "\n";
}
else {
print DEBUGFILE $t,"\n";
close DEBUGFILE;
}
}
}
}
# load previous performance data
sub process_perf {
my %pdh;
my ($nm,$dt);
foreach (split(' ',$_[0])) {
if (/(.*)=(.*)/) {
($nm,$dt)=($1,$2);
verb("prev_perf: $nm = $dt");
# in some of my plugins time_ is to profile how long execution takes for some part of plugin
# $pdh{$nm}=$dt if $nm !~ /^time_/;
$pdh{$nm}=$dt;
}
}
return %pdh;
}
sub type_from_name {
my $type=shift;
for(my $i=1; $i<scalar(@oid_uptime_types); $i++) {
if ($oid_uptime_types[$i][0] eq $type) {
return $i;
}
}
return -1;
}
sub check_options {
Getopt::Long::Configure ("bundling");
GetOptions(
'v:s' => \$o_verb, 'verbose:s' => \$o_verb, "debug:s" => \$o_verb,
'h' => \$o_help, 'help' => \$o_help,
'H:s' => \$o_host, 'hostname:s' => \$o_host,
'p:i' => \$o_port, 'port:i' => \$o_port,
'C:s' => \$o_community, 'community:s' => \$o_community,
'2' => \$o_version2, 'v2c' => \$o_version2,
'l:s' => \$o_login, 'login:s' => \$o_login,
'x:s' => \$o_passwd, 'passwd:s' => \$o_passwd,
'X:s' => \$o_privpass, 'privpass:s' => \$o_privpass,
'L:s' => \$v3protocols, 'protocols:s' => \$v3protocols,
't:i' => \$o_timeout, 'timeout:i' => \$o_timeout,
'V' => \$o_version, 'version' => \$o_version,
'f' => \$o_perf, 'perfparse' => \$o_perf,
'w:i' => \$o_warn, 'warning:i' => \$o_warn,
'c:i' => \$o_crit, 'critical:i' => \$o_crit,
'label:s' => \$o_label,
'P:s' => \$o_prevperf, 'prev_perfdata:s' => \$o_prevperf,
'T:s' => \$o_type, 'type:s' => \$o_type,
);
if (defined ($o_help) ) { help(); exit $ERRORS{"UNKNOWN"}};
if (defined($o_version)) { p_version(); exit $ERRORS{"UNKNOWN"}};
$o_type = "win" if defined($o_type) && $o_type eq 'windows';
$o_type = "net" if defined($o_type) && $o_type eq 'netswitch';
if (defined($o_type) && $o_type ne 'auto' && type_from_name($o_type)==-1) {
print "Invalid system type specified\n"; print_usage(); exit $ERRORS{"UNNKNOWN"};
}
if (!defined($o_community) && (!defined($o_login) || !defined($o_passwd)) ) {
$o_type='local' if !defined($o_type) || $o_type eq 'auto';
if ($o_type ne 'local') {
print "Put snmp login info!\n"; print_usage(); exit $ERRORS{"UNKNOWN"}
}
if (defined($o_host)) {
print "Why are you specifying hostname without SNMP parameters?\n"; print_usage(); exit $ERRORS{"UNKNOWN"};
}
}
else {
$o_type='auto' if !defined($o_type);
if ($o_type eq 'local' ) {
print "Why are you specifying SNMP login for local system???\n"; print_usage(); exit $ERRORS{"UNKNOWN"}
}
if (!defined($o_host)) {
print "Hostname required for SNMP check.\n"; print_usage(); exit $ERRORS{"UNKNOWN"};
}
if ($no_snmp) {
print "Can't locate Net/SNMP.pm\n"; print_usage(); exit $ERRORS{"UNKNOWN"};
}
}
# check snmp information
if ((defined($o_login) || defined($o_passwd)) && (defined($o_community) || defined($o_version2)) )
{ print "Can't mix snmp v1,2c,3 protocols!\n"; print_usage(); exit $ERRORS{"UNKNOWN"}}
if (defined ($v3protocols)) {
if (!defined($o_login)) { print "Put snmp V3 login info with protocols!\n"; print_usage(); exit $ERRORS{"UNKNOWN"}}
my @v3proto=split(/,/,$v3protocols);
if ((defined ($v3proto[0])) && ($v3proto[0] ne "")) {$o_authproto=$v3proto[0]; } # Auth protocol
if (defined ($v3proto[1])) {$o_privproto=$v3proto[1]; } # Priv protocol
if ((defined ($v3proto[1])) && (!defined($o_privpass)))
{ print "Put snmp V3 priv login info with priv protocols!\n"; print_usage(); exit $ERRORS{"UNKNOWN"}}
}
if (defined($o_timeout) && (isnnum($o_timeout) || ($o_timeout < 2) || ($o_timeout > 60)))
{ print "Timeout must be >1 and <60 !\n"; print_usage(); exit $ERRORS{"UNKNOWN"}}
if (!defined($o_timeout)) {$o_timeout=$TIMEOUT+5;}
if (defined($o_prevperf)) {
if (defined($o_perf)) {
%prev_perf=process_perf($o_prevperf);
$check_type = $prev_perf{type} if $o_type eq 'auto' && exists($prev_perf{tye}) && exists($oid_uptime_types[$prev_perf{type}][0]);
}
else {
print "need -f option first \n"; print_usage(); exit $ERRORS{"UNKNOWN"};
}
}
if ($o_type eq 'auto') {
$check_type=0;
}
else {
$check_type = type_from_name($o_type);
}
}
sub create_snmp_session {
my ($session,$error);
if ( defined($o_login) && defined($o_passwd)) {
# SNMPv3 login
if (!defined ($o_privpass)) {
verb("SNMPv3 AuthNoPriv login : $o_login, $o_authproto");
($session, $error) = Net::SNMP->session(
-hostname => $o_host,
-version => '3',
-port => $o_port,
-username => $o_login,
-authpassword => $o_passwd,
-authprotocol => $o_authproto,
-timeout => $o_timeout
);
} else {
verb("SNMPv3 AuthPriv login : $o_login, $o_authproto, $o_privproto");
($session, $error) = Net::SNMP->session(
-hostname => $o_host,
-version => '3',
-username => $o_login,
-port => $o_port,
-authpassword => $o_passwd,
-authprotocol => $o_authproto,
-privpassword => $o_privpass,
-privprotocol => $o_privproto,
-timeout => $o_timeout
);
}
} else {
if (defined ($o_version2)) {
# SNMPv2c Login
verb("SNMP v2c login");
($session, $error) = Net::SNMP->session(
-hostname => $o_host,
-version => 2,
-community => $o_community,
-port => $o_port,
-timeout => $o_timeout
);
} else {
# SNMPV1 login
verb("SNMP v1 login");
($session, $error) = Net::SNMP->session(
-hostname => $o_host,
-community => $o_community,
-port => $o_port,
-timeout => $o_timeout
);
}
}
if (!defined($session)) {
printf("ERROR opening session: %s.\n", $error);
exit $ERRORS{"UNKNOWN"};
}
return $session;
}
$SIG{'ALRM'} = sub {
print "Alarm timeout\n";
exit $ERRORS{"UNKNOWN"};
};
########## MAIN #######
my $system_info="";
my $uptime_info=undef;
my $uptime_minutes=undef;
my $perf_out="";
my $status=0;
my $uptime_output;
my ($days, $hrs, $mins);
check_options();
# Check gobal timeout if snmp screws up
if (defined($o_timeout)) {
verb("Alarm at $o_timeout + 5");
alarm($o_timeout+5);
}
if ($check_type==1) { # local
# Process unix uptime command output
$uptime_output=`uptime`;
verb("Local Uptime Result is: $uptime_output");
if ($uptime_output =~ /(\d+)\s+days?,\s+(\d+)\:(\d+)/) {
($days, $hrs, $mins) = ($1, $2, $3);
}
elsif ($uptime_output =~ /up\s+(\d+)\shours?\s+(\d+)/) {
($days, $hrs, $mins) = (0, $1, $2);
}
elsif ($uptime_output =~ /up\s+(\d+)\:(\d+)/) {
($days, $hrs, $mins) = (0, $1, $2);
}
elsif ($uptime_output =~ /up\s+(\d+)\s+min/) {
($days, $hrs, $mins) = (0,0,$1);
}
elsif ($uptime_output =~ /up\s+(\d+)s+days?,s+(\d+)s+min/) {
($days, $hrs, $mins) = ($1,0,$2);
}
else {
$uptime_info = "up ".$uptime_output;
}
if (defined($days) && defined($hrs) && defined($mins)) {
$uptime_minutes = $days*24*60+$hrs*60+$mins;
}
my @temp=split(' ',`uname -a`);
if (scalar(@temp)<3) {
$system_info=`uname -a`;
}
else {
$system_info=join(' ',$temp[0],$temp[1],$temp[2]);
}
}
else {
# SNMP connection
my $session=create_snmp_session();
my $result=undef;
my $oid="";
my $guessed_check_type=0;
if ($check_type==0){
$result = $session->get_request(-varbindlist=>[$oid_sysSystem]);
if (!defined($result)) {
printf("ERROR: Can not retrieve $oid_sysSystem table: %s.\n", $session->error);
$session->close;
exit $ERRORS{"UNKNOWN"};
}
verb("$o_host SysInfo Result from OID $oid_sysSystem: $result->{$oid_sysSystem}");
if ($result->{$oid_sysSystem} =~ /Windows/) {
$guessed_check_type=2;
verb('Guessing Type: 2 = windows');
}
if ($result->{$oid_sysSystem} =~ /Cisco/) {
$guessed_check_type=5;
verb('Guessing Type: 5 = netswitch');
}
if ($guessed_check_type==0) {
$guessed_check_type=3; # will try hostUptime first
}
$oid=$oid_uptime_types[$guessed_check_type][2];
}
else {
$oid=$oid_uptime_types[$check_type][2];
}
do {
$result = $session->get_request(-varbindlist=>[$oid,$oid_sysSystem]);
if (!defined($result)) {
if ($check_type!=0) {
printf("ERROR: Can not retrieve uptime OID table $oid: %s.\n", $session->error);
$session->close;
exit $ERRORS{"UNKNOWN"};
}
else {
if ($session->error =~ /noSuchName/) {
if ($guessed_check_type==4) {
verb("Received noSuchName error for sysUpTime OID $oid. Giving up.");
$guessed_check_type=0;
}
if ($guessed_check_type==3) {
verb("Received noSuchName error for hostUpTime OID $oid, will now try sysUpTime");
$guessed_check_type=4;
}
else {
verb("Received noSuchName error for OID $oid, will now try hostUpTime");
$guessed_check_type=3;
}
if ($guessed_check_type!=0) {
$oid=$oid_uptime_types[$guessed_check_type][2];
}
}
else {
printf("ERROR: Can not retrieve uptime OID table $oid: %s.\n", $session->error);
$session->close;
exit $ERRORS{"UNKNOWN"};
}
}
}
else {
if ($check_type==0) {
$check_type=$guessed_check_type;
}
}
}
while (!defined($result) && $guessed_check_type!=0);
$session->close;
if ($check_type==0 && $guessed_check_type==0) {
printf("ERROR: Can not autodetermine proper uptime OID table. Giving up.\n");
exit $ERRORS{"UNKNOWN"};
}
my ($days, $hrs, $mins);
$uptime_output=$result->{$oid};
verb("$o_host Uptime Result from OID $oid: $uptime_output");
if ($uptime_output =~ /(\d+)\s+days?,\s+(\d+)\:(\d+)/) {
($days, $hrs, $mins) = ($1, $2, $3);
}
elsif ($uptime_output =~ /(\d+)\s+hours?,\s+(\d+)\:(\d+)/) {
($days, $hrs, $mins) = (0, $1, $2);
}
elsif ($uptime_output =~ /(\d+)\s+min/) {
($days, $hrs, $mins) = (0, 0, $1);
}
if (defined($days) && defined($hrs) && defined($mins)) {
$uptime_minutes = $days*24*60+$hrs*60+$mins;
}
elsif ($uptime_output =~ /^(\d+)$/) {
my $upnum = $1;
if ($oid eq $oid_sysUptime) {
$uptime_minutes = $upnum/100/60;
}
elsif ($oid eq $oid_engineTime) {
$uptime_minutes = $upnum/60;
}
}
else {
$uptime_info = "up ".$uptime_output;
}
my @temp=split(' ',$result->{$oid_sysSystem});
if (scalar(@temp)<3) {
$system_info=$result->{$oid_sysSystem};
}
else {
$system_info=join(' ',$temp[0],$temp[1],$temp[2]);
}
}
if (defined($uptime_minutes) && !defined($uptime_info)) {
($hrs,$mins) = div_mod($uptime_minutes,60);
($days,$hrs) = div_mod($hrs,24);
$uptime_info = "up ";
$uptime_info .= "$days days " if $days>0;
$uptime_info .= "$hrs hours " if $hrs>0;
$uptime_info .= "$mins minutes";
}
verb("System Type: $check_type (".$oid_uptime_types[$check_type][0].")");
verb("System Info: $system_info") if $system_info;
verb("Uptime Text: $uptime_info") if defined($uptime_info);
verb("Uptime Minutes: $uptime_minutes") if defined($uptime_minutes);
if (!defined($uptime_info)) {
$uptime_info = "Can not determine uptime";
$status = 3;
}
if (defined($o_perf)) {
$perf_out = "type=$check_type";
$perf_out .= " uptime_minutes=$uptime_minutes" if defined($uptime_minutes);
}
if (defined($uptime_minutes)) {
if (defined($o_prevperf)) {
$status = 1 if defined($o_warn) && exists($prev_perf{uptime_minutes}) && $prev_perf{uptime_minutes} > $uptime_minutes;
$status = 2 if defined($o_crit) && exists($prev_perf{uptime_minutes}) && $prev_perf{uptime_minutes} > $uptime_minutes;
}
else {
$status = 1 if defined($o_warn) && !isnnum($o_warn) && $o_warn >= $uptime_minutes;
$status = 2 if defined($o_crit) && !isnnum($o_crit) && $o_crit >= $uptime_minutes;
}
}
alarm(0);
my $exit_status="UNKNOWN";
$exit_status="OK" if $status==0;
$exit_status="WARNING" if $status==1;
$exit_status="CRITICAL" if $status==2;
$exit_status="UNKNOWN" if $status==3;
$exit_status="$o_label $exit_status" if defined($o_label);
print "$exit_status: $system_info";
print " - $uptime_info";
print " | ",$perf_out if $perf_out;
print "\n";
exit $status;

View File

@ -0,0 +1,22 @@
define service {
use generic-service
hostgroup ap-group
service_description System uptime
check_interval 1
check_command check_uptime_snmp_ap!-T unix-host!-w 20 -c 5
}
define service {
use generic-service
hostgroup ap-group
service_description wlan0 interface UP
check_interval 1
check_command check_ifstat_snmp_ap!wlan0
}
define service {
use generic-service
hostgroup ap-group
service_description wlan1 interface UP
check_interval 1
check_command check_ifstat_snmp_ap!wlan1
}

View File

@ -0,0 +1,60 @@
define service {
use generic-service
service_description Switch uptime
check_interval 5
check_command check_uptime_snmp!-T win!-w 20 -c 5
hostgroup cisco-switches,tplink-switches
}
define service {
name SNMP_TRAP
service_description SNMP_TRAP
active_checks_enabled 1 ; Active service checks are enabled
passive_checks_enabled 1 ; Passive service checks are enabled/accepted
parallelize_check 1 ; Active service checks should be parallelized
process_perf_data 0
obsess_over_service 0 ; We should obsess over this service (if necessary)
check_freshness 0 ; Default is to NOT check service 'freshness'
notifications_enabled 1 ; Service notifications are enabled
event_handler_enabled 1 ; Service event handler is enabled
flap_detection_enabled 1 ; Flap detection is enabled
process_perf_data 1 ; Process performance data
retain_status_information 1 ; Retain status information across program restarts
retain_nonstatus_information 1 ; Retain non-status information across program restarts
check_command check-host-alive ; This will be used to reset the service to "OK"
is_volatile 1
check_period 24x7
max_check_attempts 1
normal_check_interval 1
retry_check_interval 1
notification_interval 120
notification_period 24x7
notification_options w,u,c,r
contact_groups ofnoc ; Modify this to match your Nagios contact group definitions
register
}
; define service {
; use SNMP_TRAP
; hostgroup_name cisco-switches,tplink-switches
; service_description TRAP
; check_interval 120
; flap_detection_enabled 0
;}
; Cisco IOS CPU Avg
define service {
use generic-service
hostgroup cisco-switches
service_description 5 Min CPU Average
check_interval 5
check_command check_snmp_cisco!.1.3.6.1.4.1.9.9.109.1.1.1.1.8.1!-l \"5 Minute CPU \% \" -w 50 -c 80
}
define service {
use generic-service
hostgroup cisco-switches
service_description 1 Min CPU Average
check_interval 1
check_command check_snmp_cisco!.1.3.6.1.4.1.9.9.109.1.1.1.1.7.1!-l \"1 Minute CPU \% \" -w 50 -c 80
}

View File

@ -0,0 +1,7 @@
define service {
use generic-service
hostgroup reception-equipment
service_description PING
check_interval 5
check_command check-host-alive
}

View File

@ -0,0 +1,7 @@
define service {
use generic-service
hostgroup video-equipment
service_description PING
check_interval 10
check_command check-host-alive
}

View File

@ -0,0 +1,91 @@
###############################################################################
# contacts.cfg
###############################################################################
###############################################################################
###############################################################################
#
# CONTACTS
#
###############################################################################
###############################################################################
# In this simple config file, a single contact will receive all alerts.
define contact{
contact_name root
alias Root
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,r
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
email root@localhost
# temporarily disable notifications to root to test slack integration
host_notifications_enabled 0
service_notifications_enabled 0
}
###############################################################################
###############################################################################
#
# CONTACT GROUPS
#
###############################################################################
###############################################################################
# We only have one contact in this simple configuration file, so there is
# no need to create more than one contact group.
define contactgroup{
contactgroup_name admins
alias Nagios Administrators
}
define contactgroup {
contactgroup_name ofnoc
alias OpenFest NOC Team
members slack
}
define contact {
contact_name zeridon
alias Vladimir Vitkov
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,r
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
email vvitkov@linux-bg.org
}
define contact {
contact_name lz1irq
alias Ivaylo Markov
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,r
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
email ivo@schupen.net
}
define contact {
contact_name slack
alias Slack
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,r
service_notification_commands notify-service-by-slack
host_notification_commands notify-host-by-slack
}

View File

@ -0,0 +1,94 @@
##
## Extended Host and Service Information
##
define hostextinfo{
hostgroup_name debian-servers
notes Debian GNU/Linux servers
# notes_url http://webserver.localhost.localdomain/hostinfo.pl?host=netware1
icon_image base/debian.png
icon_image_alt Debian GNU/Linux
vrml_image debian.png
statusmap_image base/debian.gd2
}
define hostextinfo {
hostgroup_name core-switches
notes Core Switch
icon_image base/switch40.png
icon_image_alt Core Switch
vrml_image switch40.png
statusmap_image base/switch40.gd2
}
#define hostextinfo {
# hostgroup_name tplink-switches
# notes TP-link Core Switch
# icon_image base/switch40.png
# icon_image_alt TP-Link Core Switch
# vrml_image switch40.png
# statusmap_image base/switch40.gd2
#}
define hostextinfo{
hostgroup_name ap-group
notes Access Points
icon_image base/ap.png
icon_image_alt Access Point
vrml_image ap.png
statusmap_image base/ap.gd2
}
define hostextinfo {
hostgroup_name overflow-group
notes RPI overflow player
icon_image custom/raspberry/raspbian.png
icon_image_alt RPI overflow player
vrml_image custom/raspberry/raspbian.png
statusmap_image custom/raspberry/raspbian.gd2
}
define hostextinfo {
hostgroup_name control-group
notes Control Laptop
icon_image custom/video/control-laptop.png
icon_image_alt Laptop
vrml_image custom/video/control-laptop.png
statusmap_image custom/video/control-laptop.gd2
}
define hostextinfo {
hostgroup_name teradek-group
notes Teradek VidiU streamers
icon_image custom/video/teradek-vidiu.png
icon_image_alt Teradek VidiU Streamer
vrml_image custom/video/teradek-vidiu.png
statusmap_image custom/video/teradek-vidiu.gd2
}
define hostextinfo {
hostgroup_name atem-group
notes BlackMagicDesign Atem Video switches
icon_image custom/video/atem-switch.png
icon_image_alt Atem Video Switch
vrml_image custom/video/atem-switch.png
statusmap_image custom/video/atem-switch.gd2
}
define hostextinfo {
hostgroup_name intercom-group
notes RPI intercom clients
icon_image custom/raspberry/raspbian.png
icon_image_alt RPI intercom
vrml_image custom/raspberry/raspbian.png
statusmap_image custom/raspberry/raspbian.gd2
}
define hostextinfo {
hostgroup_name laptop-group
notes Laptop
icon_image custom/video/control-laptop.png
icon_image_alt Laptop
vrml_image custom/video/control-laptop.png
statusmap_image custom/video/control-laptop.gd2
}

View File

@ -0,0 +1,38 @@
# Generic host definition template - This is NOT a real host, just a template!
define host{
name generic-host ; The name of this host template
notifications_enabled 1 ; Host notifications are enabled
event_handler_enabled 1 ; Host event handler is enabled
flap_detection_enabled 1 ; Flap detection is enabled
failure_prediction_enabled 1 ; Failure prediction is enabled
process_perf_data 1 ; Process performance data
retain_status_information 1 ; Retain status information across program restarts
retain_nonstatus_information 1 ; Retain non-status information across program restarts
check_command check-host-alive
max_check_attempts 10
notification_interval 0
notification_period 24x7
notification_options d,u,r
contact_groups ofnoc
register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
}
define host{
name videoteam-host ; The name of this host template
notifications_enabled 1 ; Host notifications are enabled
event_handler_enabled 1 ; Host event handler is enabled
flap_detection_enabled 1 ; Flap detection is enabled
failure_prediction_enabled 1 ; Failure prediction is enabled
process_perf_data 1 ; Process performance data
retain_status_information 1 ; Retain status information across program restarts
retain_nonstatus_information 1 ; Retain non-status information across program restarts
check_command check-host-alive
max_check_attempts 10
notification_interval 0
notification_period 24x7
notification_options d,u,r
contact_groups ofnoc
register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
check_interval 10 ; every 10 min
}

View File

@ -0,0 +1,52 @@
# generic service template definition
define service{
name generic-service ; The 'name' of this service template
active_checks_enabled 1 ; Active service checks are enabled
passive_checks_enabled 1 ; Passive service checks are enabled/accepted
parallelize_check 1 ; Active service checks should be parallelized (disabling this can lead to major performance problems)
obsess_over_service 1 ; We should obsess over this service (if necessary)
check_freshness 0 ; Default is to NOT check service 'freshness'
notifications_enabled 1 ; Service notifications are enabled
event_handler_enabled 1 ; Service event handler is enabled
flap_detection_enabled 1 ; Flap detection is enabled
failure_prediction_enabled 1 ; Failure prediction is enabled
process_perf_data 1 ; Process performance data
retain_status_information 1 ; Retain status information across program restarts
retain_nonstatus_information 1 ; Retain non-status information across program restarts
notification_interval 0 ; Only send notifications on status change by default.
is_volatile 0
check_period 24x7
normal_check_interval 5
retry_check_interval 1
max_check_attempts 4
notification_period 24x7
notification_options w,u,c,r
contact_groups ofnoc
register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!
}
define service{
name generic-nsca-service ; The 'name' of this service template
active_checks_enabled 0 ; Active service checks are enabled
passive_checks_enabled 1 ; Passive service checks are enabled/accepted
parallelize_check 1 ; Active service checks should be parallelized (disabling this can lead to major performance problems)
obsess_over_service 1 ; We should obsess over this service (if necessary)
check_freshness 0 ; Default is to NOT check service 'freshness'
notifications_enabled 1 ; Service notifications are enabled
event_handler_enabled 1 ; Service event handler is enabled
flap_detection_enabled 1 ; Flap detection is enabled
failure_prediction_enabled 1 ; Failure prediction is enabled
process_perf_data 1 ; Process performance data
retain_status_information 1 ; Retain status information across program restarts
retain_nonstatus_information 1 ; Retain non-status information across program restarts
notification_interval 120 ; Only send notifications on status change by default.
is_volatile 0
check_period 24x7
normal_check_interval 5
retry_check_interval 1
max_check_attempts 1
notification_period 24x7
notification_options w,u,c,r
contact_groups ofnoc
register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!
}

View File

@ -0,0 +1,92 @@
# Some generic hostgroup definitions
# A simple wildcard hostgroup
define hostgroup {
hostgroup_name all
alias All Servers
members *
}
define hostgroup {
hostgroup_name debian-servers
members eric
}
# A list of your web servers
define hostgroup {
hostgroup_name http-servers
alias HTTP servers
members eric
}
# A list of your ssh-accessible servers
define hostgroup {
hostgroup_name ssh-servers
alias SSH servers
hostgroup_members ap-group
members eric
}
define hostgroup {
hostgroup_name ap-group
alias Access Points
}
define hostgroup {
hostgroup_name core-switches
alias Core Switches
}
define hostgroup {
hostgroup_name cisco-switches
alias CISCO Switches
}
define hostgroup {
hostgroup_name tplink-switches
alias TPLink Switches
}
define hostgroup {
hostgroup_name intercom-group
alias Video Team Intercoms
}
define hostgroup {
hostgroup_name overflow-group
alias Overflow TV
}
define hostgroup {
hostgroup_name fosbox-group
alias FOSDEM Stream Boxes
}
define hostgroup {
hostgroup_name video-equipment
alias VOC Team equipment
}
define hostgroup {
hostgroup_name control-group
alias VOC Control Laptops
}
define hostgroup {
hostgroup_name teradek-group
alias Teradek Video Streamers
}
define hostgroup {
hostgroup_name atem-group
alias Atem Video mixers/Switchers
}
define hostgroup {
hostgroup_name reception-equipment
alias Reception related equipment
}
define hostgroup {
hostgroup_name laptop-group
alias General group for laptops
}

View File

@ -0,0 +1,17 @@
# check opsthat web services are running
define service {
hostgroup_name http-servers
service_description HTTP
check_command check_http
use generic-service
notification_interval 0 ; set > 0 if you want to be renotified
}
# check that ssh services are running
define service {
hostgroup_name ssh-servers
service_description SSH
check_command check_ssh
use generic-service
notification_interval 0 ; set > 0 if you want to be renotified
}

View File

@ -0,0 +1,50 @@
###############################################################################
# timeperiods.cfg
###############################################################################
# This defines a timeperiod where all times are valid for checks,
# notifications, etc. The classic "24x7" support nightmare. :-)
define timeperiod{
timeperiod_name 24x7
alias 24 Hours A Day, 7 Days A Week
sunday 00:00-24:00
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
}
# Here is a slightly friendlier period during work hours
define timeperiod{
timeperiod_name workhours
alias Standard Work Hours
monday 09:00-17:00
tuesday 09:00-17:00
wednesday 09:00-17:00
thursday 09:00-17:00
friday 09:00-17:00
}
# The complement of workhours
define timeperiod{
timeperiod_name nonworkhours
alias Non-Work Hours
sunday 00:00-24:00
monday 00:00-09:00,17:00-24:00
tuesday 00:00-09:00,17:00-24:00
wednesday 00:00-09:00,17:00-24:00
thursday 00:00-09:00,17:00-24:00
friday 00:00-09:00,17:00-24:00
saturday 00:00-24:00
}
# This one is a favorite: never :)
define timeperiod{
timeperiod_name never
alias Never
}
# end of file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 852 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 370 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
# A simple configuration file for monitoring the local host
# This can serve as an example for configuring other servers;
# Custom services specific to this host are added here, but services
# defined in nagios2-common_services.cfg may also apply.
#
define host{
use generic-host ; Name of host template to use
host_name encoder
alias encoder
address 10.23.0.101
hostgroups ssh-servers,debian-servers
parents coresw
}

View File

@ -0,0 +1,196 @@
# A simple configuration file for monitoring the local host
# This can serve as an example for configuring other servers;
# Custom services specific to this host are added here, but services
# defined in nagios2-common_services.cfg may also apply.
#
define host{
use generic-host ; Name of host template to use
host_name eric
alias eric
address 127.0.0.1
}
# Define a service to check the disk space of the root partition
# on the local machine. Warning if < 20% free, critical if
# < 10% free space on partition.
define service{
use generic-service ; Name of service template to use
host_name eric
service_description Disk Space
check_command check_all_disks!20%!10%
}
# Define a service to check the number of currently logged in
# users on the local machine. Warning if > 20 users, critical
# if > 50 users.
define service{
use generic-service ; Name of service template to use
host_name eric
service_description Current Users
check_command check_users!20!50
}
# Define a service to check the number of currently running procs
# on the local machine. Warning if > 250 processes, critical if
# > 400 processes.
define service{
use generic-service ; Name of service template to use
host_name eric
service_description Total Processes
check_command check_procs!250!400
}
# Define a service to check the load on the local machine.
define service{
use generic-service ; Name of service template to use
host_name eric
service_description Current Load
notifications_enabled 0
check_command check_load!7.0!6.0!5.0!7.5!7.0!6.5
}
# stream Count
define service {
use generic-service
host_name eric
service_description Stream Count
check_command check_stream_count!5!3
}
;# Bulgaria - hd
; moved to separate host
;define service {
; use generic-service
; host_name eric
; service_description Bulgaria HD stream / ERIC
; check_command check_rtmp!rtmp://127.0.0.1/st/bulgaria-hd
;}
;define service {
; use generic-service
; host_name eric
; service_description Bulgaria HD stream / MARLA
; check_command check_rtmp!rtmp://79.98.105.21/st/bulgaria-hd
;}
;define service {
; use generic-service
; host_name eric
; service_description Bulgaria HD stream / HAWK
; check_command check_rtmp!rtmp://79.124.31.206/st/bulgaria-hd
;}
;
;# Bulgaria SD
;define service {
; use generic-service
; host_name eric
; service_description Bulgaria stream / ERIC
; check_command check_rtmp!rtmp://127.0.0.1/st/bulgaria
;}
;define service {
; use generic-service
; host_name eric
; service_description Bulgaria stream / MARLA
; check_command check_rtmp!rtmp://79.98.105.21/st/bulgaria
;}
;define service {
; use generic-service
; host_name eric
; service_description Bulgaria stream / HAWK
; check_command check_rtmp!rtmp://79.124.31.206/st/bulgaria
;}
;
;# Chambler SD
;define service {
; use generic-service
; host_name eric
; service_description CHAMBER stream / ERIC
; check_command check_rtmp!rtmp://127.0.0.1/st/chamber
;}
;define service {
; use generic-service
; host_name eric
; service_description CHAMBER stream / MARLA
; check_command check_rtmp!rtmp://79.98.105.21/st/chamber
;}
;define service {
; use generic-service
; host_name eric
; service_description CHAMBER stream / HAWK
; check_command check_rtmp!rtmp://79.124.31.206/st/chamber
;}
# Grafana
define service {
use generic-service
host_name eric
service_description Grafana
check_command check_http_host_port!eric.openfest.org!127.0.0.1!3000
}
# Graphite - web
define service {
use generic-service
host_name eric
service_description Graphite - web
check_command check_http_host_port!eric.openfest.org!127.0.0.1!8080
}
# carbon - aggregator
define service {
use generic-service
host_name eric
service_description Graphite - carbon-aggregator-line
check_command check_tcp_port!10001
}
define service {
use generic-service
host_name eric
service_description Graphite - carbon-aggregator-pickle
check_command check_tcp_port!10101
}
# carbon - cache
define service {
use generic-service
host_name eric
service_description Graphite - carbon-cache-line
check_command check_tcp_port!2003
}
define service {
use generic-service
host_name eric
service_description Graphite - carbon-cache-pickle
check_command check_tcp_port!2004
}
define service {
use generic-service
host_name eric
service_description Graphite - carbon-cache-cache
check_command check_tcp_port!2005
}
# Unbound
define service {
use generic-service
host_name eric
service_description DNS - unbound
check_command custom_check_dns
}
# memcached
define service {
use generic-service
host_name eric
service_description Memcached
check_command check_tcp_port!11211
}

View File

@ -0,0 +1,75 @@
define host{
use generic-host ; Name of host template to use
host_name streamers
alias streamers
address 127.0.0.1
parents eric
}
# stream Count
define service {
use generic-service
host_name streamers
service_description Stream Count
check_command check_stream_count!4!2
}
# Bulgaria - hd
define service {
use generic-service
host_name streamers
service_description Bulgaria HD stream / ERIC
check_command check_rtmp!rtmp://127.0.0.1/st/r1-hd
}
define service {
use generic-service
host_name streamers
service_description Bulgaria HD stream / MARLA
check_command check_rtmp!rtmp://79.98.105.21/st/r1-hd
}
define service {
use generic-service
host_name streamers
service_description Bulgaria HD stream / HAWK
check_command check_rtmp!rtmp://79.124.31.206/st/r1-hd
}
# Bulgaria SD
define service {
use generic-service
host_name streamers
service_description Bulgaria stream / ERIC
check_command check_rtmp!rtmp://127.0.0.1/st/r1
}
define service {
use generic-service
host_name streamers
service_description Bulgaria stream / MARLA
check_command check_rtmp!rtmp://79.98.105.21/st/r1
}
define service {
use generic-service
host_name streamers
service_description Bulgaria stream / HAWK
check_command check_rtmp!rtmp://79.124.31.206/st/r1
}
# Chambler SD
define service {
use generic-service
host_name streamers
service_description CHAMBER stream / ERIC
check_command check_rtmp!rtmp://127.0.0.1/st/r2
}
define service {
use generic-service
host_name streamers
service_description CHAMBER stream / MARLA
check_command check_rtmp!rtmp://79.98.105.21/st/r2
}
define service {
use generic-service
host_name streamers
service_description CHAMBER stream / HAWK
check_command check_rtmp!rtmp://79.124.31.206/st/r2
}

View File

@ -0,0 +1,8 @@
define host {
host_name overflow-tv
use generic-host
alias overflow-tv
address 10.24.0.11
hostgroups overflow-group,ssh-servers
parents coresw
}

View File

@ -0,0 +1,9 @@
define host {
host_name reception-laptop
use generic-host
alias reception-laptop
address 10.21.0.51
hostgroups reception-equipment,laptop-group
parents receptionsw
}

View File

@ -0,0 +1,6 @@
define service{
use generic-service
service_description Telnet
check_command check_telnet_4!
hostgroup_name core-switches
}

View File

@ -0,0 +1,22 @@
define host {
host_name coresw
use generic-host
alias coresw
address 10.20.0.11
hostgroups cisco-switches,core-switches
parents eric
}
define service {
use generic-service
hosts coresw
service_description Vlan1
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.1!-r 2!-l ifOperStatus
}
define service {
use generic-service
hosts coresw
service_description Vlan20
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.20!-r 1!-l ifOperStatus
}

View File

@ -0,0 +1,86 @@
define host {
host_name mrvocsw
use generic-host
alias mrvocsw
address 10.20.0.21
hostgroups core-switches,tplink-switches
parents eric
}
define service {
use generic-service
hosts mrvocsw
service_description Gi1/0/01 - coresw
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.1!-r 1!-l ifOperStatus
}
define service {
use generic-service
hosts mrvocsw
service_description Gi1/0/02 - UNUSED
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.2!-r 2!-l ifOperStatus
}
define service {
use generic-service
hosts mrvocsw
service_description Gi1/0/03 - UNUSED
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.3!-r 2!-l ifOperStatus
}
define service {
use generic-service
hosts mrvocsw
service_description Gi1/0/04 - UNUSED
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.4!-r 2!-l ifOperStatus
}
define service {
use generic-service
hosts mrvocsw
service_description Gi1/0/05 - AP1
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.5!-r 1!-l ifOperStatus
}
define service {
use generic-service
hosts mrvocsw
service_description Gi1/0/06 - UNUSED
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.6!-r 2!-l ifOperStatus
}
define service {
use generic-service
hosts mrvocsw
service_description Gi1/0/07 - unused
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.7!-r 2!-l ifOperStatus
}
define service {
use generic-service
hosts mrvocsw
service_description Gi1/0/08 - UNUSED
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.8!-r 2!-l ifOperStatus
notifications_enabled 0
}
define service {
use generic-service
hosts mrvocsw
service_description Gi1/0/09 - UNUSED
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.9!-r 2!-l ifOperStatus
}
define service {
use generic-service
hosts mrvocsw
service_description Gi1/0/10 - UNUSED
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.10!-r 2!-l ifOperStatus
}
define service {
use generic-service
hosts mrvocsw
service_description Vlan20
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.52802!-r 1!-l ifOperStatus
}

View File

@ -0,0 +1,86 @@
define host {
host_name srvocsw
use generic-host
alias srvocsw
address 10.20.0.22
hostgroups core-switches,tplink-switches
parents eric
}
define service {
use generic-service
hosts srvocsw
service_description Gi1/0/01 - coresw
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.1!-r 1!-l ifOperStatus
}
define service {
use generic-service
hosts srvocsw
service_description Gi1/0/02 - UNUSED
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.2!-r 2!-l ifOperStatus
}
define service {
use generic-service
hosts srvocsw
service_description Gi1/0/03 - UNUSED
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.3!-r 2!-l ifOperStatus
}
define service {
use generic-service
hosts srvocsw
service_description Gi1/0/04 - UNUSED
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.4!-r 2!-l ifOperStatus
}
define service {
use generic-service
hosts srvocsw
service_description Gi1/0/05 - AP1
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.5!-r 1!-l ifOperStatus
}
define service {
use generic-service
hosts srvocsw
service_description Gi1/0/06 - UNUSED
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.6!-r 2!-l ifOperStatus
}
define service {
use generic-service
hosts srvocsw
service_description Gi1/0/07 - unused
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.7!-r 2!-l ifOperStatus
}
define service {
use generic-service
hosts srvocsw
service_description Gi1/0/08 - UNUSED
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.8!-r 2!-l ifOperStatus
notifications_enabled 0
}
define service {
use generic-service
hosts srvocsw
service_description Gi1/0/09 - UNUSED
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.9!-r 2!-l ifOperStatus
}
define service {
use generic-service
hosts srvocsw
service_description Gi1/0/10 - UNUSED
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.10!-r 2!-l ifOperStatus
}
define service {
use generic-service
hosts srvocsw
service_description Vlan20
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.52802!-r 1!-l ifOperStatus
}

View File

@ -0,0 +1,86 @@
define host {
host_name receptionsw
use generic-host
alias receptionsw
address 10.20.0.21
hostgroups core-switches,tplink-switches
parents eric
}
define service {
use generic-service
hosts receptionsw
service_description Gi1/0/01 - coresw
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.1!-r 1!-l ifOperStatus
}
define service {
use generic-service
hosts receptionsw
service_description Gi1/0/02 - UNUSED
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.2!-r 2!-l ifOperStatus
}
define service {
use generic-service
hosts receptionsw
service_description Gi1/0/03 - UNUSED
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.3!-r 2!-l ifOperStatus
}
define service {
use generic-service
hosts receptionsw
service_description Gi1/0/04 - UNUSED
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.4!-r 2!-l ifOperStatus
}
define service {
use generic-service
hosts receptionsw
service_description Gi1/0/05 - UNUSED
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.5!-r 2!-l ifOperStatus
}
define service {
use generic-service
hosts receptionsw
service_description Gi1/0/06 - UNUSED
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.6!-r 2!-l ifOperStatus
}
define service {
use generic-service
hosts receptionsw
service_description Gi1/0/07 - wired/laptop
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.7!-r " (1|2)$"!-l ifOperStatus
}
define service {
use generic-service
hosts receptionsw
service_description Gi1/0/08 - wired/PRINTER
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.8!-r 1!-l ifOperStatus
notifications_enabled 0
}
define service {
use generic-service
hosts receptionsw
service_description Gi1/0/09 - UNUSED
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.9!-r 2!-l ifOperStatus
}
define service {
use generic-service
hosts receptionsw
service_description Gi1/0/10 - UNUSED
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.10!-r 2!-l ifOperStatus
}
define service {
use generic-service
hosts receptionsw
service_description Vlan20
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.52802!-r 1!-l ifOperStatus
}

View File

@ -0,0 +1,8 @@
define host {
host_name wssw1
use generic-host
alias wssw1
address 10.20.0.24
hostgroups core-switches,cisco-switches
parents eric
}

View File

@ -0,0 +1,8 @@
define host {
host_name wssw2
use generic-host
alias wssw2
address 10.20.0.25
hostgroups core-switches,cisco-switches
parents eric
}

View File

@ -0,0 +1,218 @@
define host {
host_name nocsw
use generic-host
alias nocsw
address 10.20.0.23
hostgroups core-switches,cisco-switches
parents coresw
}
define service {
use generic-service
hosts nocsw
service_description Vlan1
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.1!-r 2!-l ifOperStatus
}
define service {
use generic-service
hosts nocsw
service_description Vlan20
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.20!-r " (1|2)$"!-l ifOperStatus
}
define service {
use generic-service
hosts nocsw
service_description Gi0/01 - UNUSED
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.10101!-r " (1|2)$"!-l ifOperStatus
}
define service {
use generic-service
hosts nocsw
service_description Gi0/02 - UNUSED
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.10102!-r " (1|2)$"!-l ifOperStatus
}
define service {
use generic-service
hosts nocsw
service_description Gi0/03 - uplink
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.10103!-r " (1|2)$"!-l ifOperStatus
}
define service {
use generic-service
hosts nocsw
service_description Gi0/04 - uplink
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.10104!-r " (1|2)$"!-l ifOperStatus
}
define service {
use generic-service
hosts nocsw
service_description Gi0/05 - mgmt
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.10105!-r " (1|2)$"!-l ifOperStatus
}
define service {
use generic-service
hosts nocsw
service_description Gi0/06 - mgmt
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.10106!-r " (1|2)$"!-l ifOperStatus
}
define service {
use generic-service
hosts nocsw
service_description Gi0/07 - mgmt
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.10107!-r " (1|2)$"!-l ifOperStatus
}
define service {
use generic-service
hosts nocsw
service_description Gi0/08 - mgmt
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.10108!-r " (1|2)$"!-l ifOperStatus
}
define service {
use generic-service
hosts nocsw
service_description Gi0/09 - wired
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.10109!-r " (1|2)$"!-l ifOperStatus
}
define service {
use generic-service
hosts nocsw
service_description Gi0/10 - wired
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.10110!-r " (1|2)$"!-l ifOperStatus
}
define service {
use generic-service
hosts nocsw
service_description Gi0/11 - wired
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.10111!-r " (1|2)$"!-l ifOperStatus
}
define service {
use generic-service
hosts nocsw
service_description Gi0/12 - wired
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.10112!-r " (1|2)$"!-l ifOperStatus
}
define service {
use generic-service
hosts nocsw
service_description Gi0/13 - wireless
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.10113!-r " (1|2)$"!-l ifOperStatus
}
define service {
use generic-service
hosts nocsw
service_description Gi0/14 - wireless
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.10114!-r " (1|2)$"!-l ifOperStatus
}
define service {
use generic-service
hosts nocsw
service_description Gi0/15 - wireless
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.10115!-r " (1|2)$"!-l ifOperStatus
}
define service {
use generic-service
hosts nocsw
service_description Gi0/16 - wireless
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.10116!-r " (1|2)$"!-l ifOperStatus
}
define service {
use generic-service
hosts nocsw
service_description Gi0/17 - video
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.10117!-r " (1|2)$"!-l ifOperStatus
}
define service {
use generic-service
hosts nocsw
service_description Gi0/18 - video
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.10118!-r " (1|2)$"!-l ifOperStatus
}
define service {
use generic-service
hosts nocsw
service_description Gi0/19 - video
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.10119!-r " (1|2)$"!-l ifOperStatus
}
define service {
use generic-service
hosts nocsw
service_description Gi0/20 - video
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.10120!-r " (1|2)$"!-l ifOperStatus
}
define service {
use generic-service
hosts nocsw
service_description Gi0/21 - overflow
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.10121!-r " (1|2)$"!-l ifOperStatus
}
define service {
use generic-service
hosts nocsw
service_description Gi0/22 - overflow
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.10122!-r " (1|2)$"!-l ifOperStatus
}
define service {
use generic-service
hosts nocsw
service_description Gi0/23
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.10123!-r 1!-l ifOperStatus
}
define service {
use generic-service
hosts nocsw
service_description Gi0/24
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.10124!-r " (1|2)$"!-l ifOperStatus
}
define service {
use generic-service
hosts nocsw
service_description Gi0/25
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.10125!-r 2!-l ifOperStatus
}
define service {
use generic-service
hosts nocsw
service_description Gi0/26
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.10126!-r 2!-l ifOperStatus
}
define service {
use generic-service
hosts nocsw
service_description Gi0/27
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.10127!-r 2!-l ifOperStatus
}
define service {
use generic-service
hosts nocsw
service_description Gi0/28
check_command check_snmp_cisco!.1.3.6.1.2.1.2.2.1.8.10128!-r 2!-l ifOperStatus
}

View File

@ -0,0 +1,17 @@
define host {
host_name control-m-1
use videoteam-host
alias control-m-1
address 10.23.0.31
hostgroups video-equipment,control-group
parents mrvocsw
}
define host {
host_name control-m-2
use videoteam-host
alias control-m-2
address 10.23.0.32
hostgroups video-equipment,control-group
parents mrvocsw
}

View File

@ -0,0 +1,17 @@
define host {
host_name control-s-1
use videoteam-host
alias control-s-1
address 10.23.0.41
hostgroups video-equipment,control-group
parents srvocsw
}
define host {
host_name control-s-2
use videoteam-host
alias control-s-2
address 10.23.0.42
hostgroups video-equipment,control-group
parents srvocsw
}

View File

@ -0,0 +1,26 @@
define host {
host_name icom-m-1
use generic-host
alias icom-m-1
address 10.23.0.35
hostgroups intercom-group,ssh-servers
parents mrvocsw
}
define host {
host_name icom-m-2
use generic-host
alias icom-m-2
address 10.23.0.36
hostgroups intercom-group,ssh-servers
parents mrvocsw
}
define host {
host_name icom-m-3
use generic-host
alias icom-m-3
address 10.23.0.37
hostgroups intercom-group,ssh-servers
parents mrvocsw
}

View File

@ -0,0 +1,26 @@
define host {
host_name icom-s-1
use generic-host
alias icom-s-1
address 10.23.0.45
hostgroups intercom-group,ssh-servers
parents srvocsw
}
define host {
host_name icom-s-2
use generic-host
alias icom-s-2
address 10.23.0.46
hostgroups intercom-group,ssh-servers
parents srvocsw
}
define host {
host_name icom-s-3
use generic-host
alias icom-s-3
address 10.23.0.47
hostgroups intercom-group,ssh-servers
parents srvocsw
}

View File

@ -0,0 +1,8 @@
define host {
host_name teradek-mr
use videoteam-host
alias teradek-bulgaria
address 10.23.0.21
hostgroups video-equipment,teradek-group
parents mrvocsw
}

View File

@ -0,0 +1,8 @@
define host {
host_name teradek-sr
use videoteam-host
alias teradek-bulgaria
address 10.23.0.22
hostgroups video-equipment,teradek-group
parents srvocsw
}

View File

@ -0,0 +1,8 @@
define host {
host_name atem-mr
use videoteam-host
alias atem-mr
address 10.23.0.11
hostgroups video-equipment,atem-group
parents mrvocsw
}

View File

@ -0,0 +1,8 @@
define host {
host_name atem-sr
use videoteam-host
alias atem-sr
address 10.23.0.12
hostgroups video-equipment,atem-group
parents srvocsw
}

View File

@ -0,0 +1,8 @@
define host {
host_name ap-cf-ch
use generic-host
alias ap-cf-ch
address 10.20.0.58
hostgroups ap-group
parents coresw
}

View File

@ -0,0 +1,8 @@
define host {
host_name ap-cf-f-l
use generic-host
alias ap-cf-f-l
address 10.20.0.50
hostgroups ap-group
parents coresw
}

View File

@ -0,0 +1,8 @@
define host {
host_name ap-cf-f-r
use generic-host
alias ap-cf-f-r
address 10.20.0.51
hostgroups ap-group
parents coresw
}

View File

@ -0,0 +1,8 @@
define host {
host_name ap-cf-mr-1
use generic-host
alias ap-cf-mr-1
address 10.20.0.52
hostgroups ap-group
parents coresw
}

View File

@ -0,0 +1,8 @@
define host {
host_name ap-cf-mr-2
use generic-host
alias ap-cf-mr-2
address 10.20.0.53
hostgroups ap-group
parents coresw
}

View File

@ -0,0 +1,8 @@
define host {
host_name ap-cf-mr-3
use generic-host
alias ap-cf-mr-3
address 10.20.0.54
hostgroups ap-group
parents coresw
}

View File

@ -0,0 +1,8 @@
define host {
host_name ap-cf-mr-4
use generic-host
alias ap-cf-mr-4
address 10.20.0.55
hostgroups ap-group
parents coresw
}

View File

@ -0,0 +1,8 @@
define host {
host_name ap-cf-qws
use generic-host
alias ap-cf-qws
address 10.20.0.59
hostgroups ap-group
parents coresw
}

View File

@ -0,0 +1,8 @@
define host {
host_name ap-cf-sr-1
use generic-host
alias ap-cf-sr-1
address 10.20.0.56
hostgroups ap-group
parents coresw
}

View File

@ -0,0 +1,8 @@
define host {
host_name ap-cf-sr-2
use generic-host
alias ap-cf-sr-2
address 10.20.0.57
hostgroups ap-group
parents coresw
}

View File

@ -0,0 +1,8 @@
define host {
host_name ap-ws-noc
use generic-host
alias ap-ws-noc
address 10.20.0.62
hostgroups ap-group
parents nocsw
}

View File

@ -0,0 +1,8 @@
define host {
host_name ap-ws-ws1
use generic-host
alias ap-ws-ws1
address 10.20.0.60
hostgroups ap-group
parents coresw
}

View File

@ -0,0 +1,8 @@
define host {
host_name ap-ws-ws2
use generic-host
alias ap-ws-ws2
address 10.20.0.61
hostgroups ap-group
parents coresw
}

View File

@ -0,0 +1,33 @@
###########################################################################
#
# RESOURCE.CFG - Resource File for Nagios
#
# You can define $USERx$ macros in this file, which can in turn be used
# in command definitions in your host config file(s). $USERx$ macros are
# useful for storing sensitive information such as usernames, passwords,
# etc. They are also handy for specifying the path to plugins and
# event handlers - if you decide to move the plugins or event handlers to
# a different directory in the future, you can just update one or two
# $USERx$ macros, instead of modifying a lot of command definitions.
#
# The CGIs will not attempt to read the contents of resource files, so
# you can set restrictive permissions (600 or 660) on them.
#
# Nagios supports up to 32 $USERx$ macros ($USER1$ through $USER32$)
#
# Resource files may also be used to store configuration directives for
# external data sources like MySQL...
#
###########################################################################
# Sets $USER1$ to be the path to the plugins
$USER1$=/usr/lib/nagios/plugins
# Sets $USER2$ to be the path to event handlers
#$USER2$=/usr/lib/nagios/plugins/eventhandlers
# Store some usernames and passwords (hidden from the CGIs)
#$USER3$=someuser
#$USER4$=somepassword
$USER3$=changeme
$USER4$=changeme

View File

@ -0,0 +1,35 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.avail { }
.data { font-size: 9pt; }
.hostUP { background-color: #cce8cc; padding: 0 4 0 4; }
.hostDOWN { background-color: #ffdddd; padding: 0 4 0 4; }
.hostUNREACHABLE { background-color: #ffddaa; padding: 0 4 0 4; }
.serviceOK { background-color: #cce8cc; padding: 0 4 0 4; }
.serviceWARNING { background-color: #feffc1; padding: 0 4 0 4; }
.serviceUNKNOWN { background-color: #ffddaa; padding: 0 4 0 4; }
.serviceCRITICAL { background-color: #ffdddd; padding: 0 4 0 4; }
table.logEntries { font-size: 9pt; padding: 5 0 0 0; }
th.logEntries { font-size: 9pt; text-align: left; padding: 0 3px 0 3px; border-bottom: 1px solid #777777; color: #333333; }
.logEntriesOdd { background-color: #e7e7e7; padding: 0 4 0 4; }
.logEntriesEven { background-color: #f4f2f2; padding: 0 4 0 4; }
.logEntriesOK { background-color: #cce8cc; padding: 0 4 0 4; }
.logEntriesUNKNOWN { background-color: #ffddaa; padding: 0 4 0 4; }
.logEntriesWARNING { background-color: #feffc1; padding: 0 4 0 4; }
.logEntriesCRITICAL { background-color: #ffdddd; padding: 0 4 0 4; }
.logEntriesUP { background-color: #cce8cc; padding: 0 4 0 4; }
.logEntriesDOWN { background-color: #ffdddd; padding: 0 4 0 4; }
.logEntriesUNREACHABLE { background-color: #ffddaa; padding: 0 4 0 4; }
.logEntriesINDETERMINATE { background-color: #ddccff; padding: 0 4 0 4; }
.infoMessage { font-size: 9pt; }

View File

@ -0,0 +1,27 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.extinfo { }
.Title { font-size: 12pt; text-align: center; font-weight: bold; }
.SectionTitle { font-size: 12pt; text-align: center; font-weight: bold; }
.DynamicData { font-size: 10pt; padding: 2; }
.StaticData { font-size: 10pt; padding: 2; }
.TableHeader { font-size: 10pt; background-color: #d0d0d0; font-weight: bold; }
.Item { font-size: 10pt; background-color: #f4f2f2; font-weight: bold; }
.DataSource { font-size: 10pt; background-color: #f4f2f2; }
.Number { font-size: 10pt; background-color: #f4f2f2; }
.Value { font-size: 10pt; background-color: #f4f2f2; font-weight: bold; }
.ValueOk { font-size: 10pt; background-color: #88d066; font-weight: bold; }
.ValueError { font-size: 10pt; background-color: #f88888; font-weight: bold; }

View File

@ -0,0 +1,14 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.cmd { }
.cmdType { font-size: 12pt; font-weight: bold; color: #aa0000; padding-bottom: 40; }
.commandDescription { font-size: 8pt; background-color: #f4f2f2; border: 1px solid #d0d0d0; margin: 4 0 0 0; padding: 4 4 4 4; }
.descriptionTitle { font-size: 10pt; font-weight: bold; }
.infoMessage { font-size: 8pt; background-color: #efefaa; border: 1px solid #777777; margin: 40 20% 0 20%; padding: 5 5 5 5; }
.optBox { font-size: 9pt; padding: 5 5 5 5; }

View File

@ -0,0 +1,370 @@
/* exfoliation: a nagios makeover */
/* version: 0.7 */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
/* thanks to jacob.laack for nagiosneat */
/* thanks to nagios authors for a solid base */
/* these are reference colors for the color scheme:
color dark light border
OK: green 88d066 cce8cc 777777
WARNING: yellow ffff00 feffc1 777777
CRITICAL: red f88888 ffdddd 777777
PENDING: grey acacac fefefe 777777
UNKNOWN: orange ffbb55 ffddaa 777777
UNREACHABLE: orange ffbb55 ffddaa 777777
INDETERMINATE: purple ddccff 777777
PROBLEMS: blue aaccff 777777
ACK: aaaaaa
CUSTOM: 778899
important: blue 99aacc 777777
not important: blue aaccff 777777
table header: d0d0d0
odd rows: e7e7e7
even rows: f4f2f2
titles: 12pt
body: 10pt
table headings: 9pt
controls: 9pt
data in tables: 8pt or 9pt
*/
body {
margin: 0em;
margin: 0.8em 0.8em 2em 0.8em;
color: black;
background-color: white;
font-family: arial, verdana, serif;
font-weight: normal;
font-size: 10pt;
}
table {
border: none;
margin: 0;
}
th, td {
border: none;
padding: 0 2px 0 2px;
}
form {
margin: 0;
padding: 0;
}
a img {
border: none;
}
a {
text-decoration: none;
color: #40529b;
}
a:hover {
text-decoration: underline;
color: #3f5bcd;
}
a:active {
color: #496aef;
}
a:visited {
color: #2c3763;
}
div.navbarlogo {
margin: 0 0 10px 0;
}
div.navsection {
margin: 5px 0 10px 0;
}
div.navsectiontitle {
font-size: 9pt;
font-weight: bold;
padding: 2px;
background-color: #efefef;
border:1px solid #dddddd;
}
div.navsectionlinks {
margin: 3px 0 0 0;
}
ul.navsectionlinks {
margin: 0;
padding: 0;
list-style: none;
}
ul.navsectionlinks li { }
ul.navsectionlinks li a {
font-weight: bold;
font-size: 9pt;
text-decoration: none;
padding: 0 0 0 15px;
/* background: transparent url(../images/greendot.gif) no-repeat scroll 0 0; */
}
ul.navsectionlinks li ul {
margin: 0px;
padding: 0 0 0 30px;
list-style: none;
}
ul.navsectionlinks li ul li { }
ul.navsectionlinks li a:hover {
/* background: transparent url(../images/orangedot.gif) no-repeat scroll 0 0; */
color: #8391cd;
}
ul.navsectionlinks li ul li a {
background: none;
padding: 0;
font-weight: normal;
}
ul.navsectionlinks li ul li a:hover {
background: none;
}
ul.navsectionlinks li ul li ul {
margin: 0px;
padding: 0 0 0 15px;
list-style: none;
}
.navbarsearch {
margin: 5px 0 0 0;
}
.navbarsearch fieldset {
border: none;
}
.navbarsearch fieldset legend {
font-size: 8pt;
}
.navbarsearch input{
font-size: 9pt;
}
#splashpage{
text-align: center;
}
#mainbrandsplash{
font-size: 12pt;
font-weight: bold;
margin: 0 0 35px 0;
}
#maincopy{
margin: 0 0 15px 0;
}
#currentversioninfo{
font-size: 12pt;
}
#currentversioninfo .product{
font-size: 14pt;
font-weight: bold;
}
#currentversioninfo .version{
font-size: 14pt;
font-weight: bold;
}
#currentversioninfo .releasedate{
font-size: 11pt;
margin: 5px 0 0 0;
}
#currentversioninfo .checkforupdates{
font-size: 11pt;
font-weight: bold;
}
#currentversioninfo .whatsnew{
font-size: 11pt;
font-weight: bold;
margin: 50px 0 0 0;
}
#updateversioninfo{
margin: 15px auto 35px auto;
width: 400px;
}
.updatechecksdisabled{
background-color: #FF9F9F;
border: 1px solid red;
padding: 10px;
}
.updatechecksdisabled div.warningmessage{
font-weight: bold;
}
#updateversioninfo div.submessage{
clear: left;
}
.updateavailable{
background-color: #9FD4FF;
border: 1px solid blue;
padding: 10px;
}
.updateavailable div.updatemessage{
font-size: 12pt;
font-weight: bold;
}
#splashpage #mainfooter{
/*margin: 100px 0 0 0;*/
clear: both;
font-size: 8pt;
padding-top: 35px;
}
#splashpage #mainfooter .disclaimer{
/*width: 80%;*/
margin: auto;
}
#splashpage #mainfooter .logos{
margin: 15px 0 0 0;
}
table.infoBox { width: 100%; }
td.infoBox { font-size: 8pt; padding: 0 0 1em 0; white-space: nowrap; }
div.infoBoxTitle { font-size: 10pt; font-weight: bold; }
div.infoBoxBadProcStatus { font-size: 8pt; font-weight: bold; color: red; }
.linkBox { font-size: 8pt; padding: 1; }
table.linkBox td { white-space: nowrap; }
.filter { font-size: 8pt; padding: 1; }
.filterTitle { font-size: 9pt; font-weight: bold; }
.filterName { font-size: 8pt; text-align: right; font-weight: bold; }
.filterValue { font-size: 8pt; }
.errorDescription { font-size: 10pt; text-align: center; font-weight: bold; }
.errorMessage { font-size: 10pt; text-align: center; font-weight: bold; color: red; }
.warningMessage { font-size: 10pt; text-align: center; font-weight: bold; color: red; }
.statusTitle { text-align: center; font-weight: bold; font-size: 12pt; white-space: nowrap; }
.statusSort { font-size: 8pt; }
table.data { padding: 0; }
th.data { font-size: 9pt; text-align: left; padding: 0 3px 0 3px; border-bottom: 1px solid #777777; color: #333333; }
.dataOdd { font-size: 8pt; background-color: #e7e7e7; padding: 0 4 0 4; }
.dataEven { font-size: 8pt; background-color: #f4f2f2; padding: 0 4 0 4; }
.dataTitle { font-size: 12pt; text-align: center; font-weight: bold; }
.dataSubTitle { font-size: 10pt; text-align: center; font-weight: bold; }
.optBox { font-size: 9pt; white-space: nowrap; padding: 2 0 0 0; }
.optBoxTitle { font-size: 10pt; font-weight: bold; text-align: center; }
.optBoxRequiredItem { font-size: 9pt; text-align: right; padding: 0 5 0 5; color: red; }
.optBoxItem { font-size: 9pt; text-align: right; padding: 0 5 0 5; }
.optBoxValue { font-size: 9pt; }
.optionBoxTitle { font-size: 10pt; text-align: center; font-weight: bold; }
.optionBox { font-size: 10pt; padding: 2; }
.navBoxTitle { font-size: 10pt; font-weight: bold; white-space: nowrap; }
.navBoxItem { font-size: 8pt; }
.navBoxDate { font-size: 8pt; white-space: nowrap; }
.navBoxFile { font-size: 8pt; text-align: center; }
.helpfulHint { font-size: 8pt; font-style: italic; text-align: center; }
.logEntries { font-size: 8pt; white-space: nowrap; }
.dateTimeBreak { font-size: 9pt; font-weight: bold; }
.reportRange { font-size: 10pt; white-space: nowrap; }
.reportDuration { font-size: 8pt; white-space: nowrap; }
.reportTime { font-size: 8pt; white-space: nowrap; text-align: right; font-style: italic; }
.reportSelectTitle { font-size: 12pt; text-align: center; font-weight: bold; }
.reportSelectSubTitle { font-size: 9pt; text-align: right; }
.reportSelectItem { font-size: 9pt; }
.reportSelectTip { font-size: 8pt; font-style: italic; }
.dateSelectTitle { font-size: 12pt; text-align: center; font-weight: bold; }
.dateSelectSubTitle { font-size: 9pt; text-align: right; }
.dateSelectItem { font-size: 9pt; }
.popupText { font-size: 8pt; background-color: #eeeeaa; border: 1px solid #777777; padding: 10 10 10 10; }
.hostImportantProblem { font-size: 8pt; background-color: #88aadd; border: 1px solid #aaaaaa; padding: 0 5 0 5; }
.hostUnimportantProblem { font-size: 8pt; background-color: #aaccff; border: 1px solid #888888; padding: 0 5 0 5; }
.serviceImportantProblem { font-size: 8pt; background-color: #88aadd; border: 1px solid #aaaaaa; padding: 0 5 0 5; }
.serviceUnimportantProblem { font-size: 8pt; background-color: #aaccff; border: 1px solid #888888; padding: 0 5 0 5; }
.outageImportantProblem { font-size: 8pt; background-color: #88aadd; border: 1px solid #aaaaaa; padding: 0 5 0 5; }
.outageUnimportantProblem { font-size: 8pt; background-color: #aaccff; border: 1px solid #888888; padding: 0 5 0 5; }
/* Some nagios configurations have side.html rather than side.php and define */
/* a slightly different set of nav elements. */
.NavBarTitle {
font-size: 9pt;
font-weight: bold;
margin: 5px 0 10px 0;
padding: 2px;
background-color: #efefef;
border:v1px solid #dddddd;
}
.NavBarItem {
font-size: 9pt;
font-weight: bold;
list-style: none;
text-decoration: none;
margin: 0;
padding: 0 0 0 0;
}
.NavBarSearchItem {
font-size: 9pt;
}
#splashboxes {
/*border: 1px solid blue;*/
margin: auto;
width: 90%;
}
.splashbox{
padding: 5px;
margin: 5px 5px 5px;
border: 1px solid #AAAAAA;
float: left;
text-align: left;
height: 140px;
}
.splashbox h2{
margin: 0px;
font-size: 12pt;
}
.splashbox ul{
margin: 0;
padding: 5px 5px 5px 15px;
}
.splashbox ul li{
clear: both;
}
#splashbox1 {
width: 250px;
}
#splashbox2 {
width: 500px;
}
#splashbox3 {
width: 250px;
clear: both;
}
#splashbox4 {
width: 500px;
}

View File

@ -0,0 +1,11 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.config { }
.reportSelectSubTitle { font-size: 9pt; text-align: left; }
.reportSelectItem { font-size: 9pt; }

View File

@ -0,0 +1,84 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.extinfo { }
.perfTypeTitle { font-size: 10pt; text-align: right; font-weight: bold; }
.stateInfoPanel { font-size: 9pt; }
.stateStatisticsPanel { }
.stateInfoTable1 { background-color: #f4f2f2; border: 1px solid #d0d0d0; }
.stateInfoTable2 { background-color: #f4f2f2; border: 1px solid #d0d0d0; }
.dataVar { font-size: 9pt; font-weight: bold; }
.dataVal { font-size: 9pt; }
/* FIXME: override the defaults until php/html is fixed */
/* .data { font-size: 10pt; font-weight: bold; } */
div.data { font-size: 10pt; font-weight: normal; }
.dataTitle { font-size: 10pt; font-weight: bold; padding-bottom: 5; }
.commandTitle { font-size: 10pt; text-align: center; font-weight: bold; padding-bottom: 5; }
TABLE.command { background-color: #f4f2f2; border: 1px solid #d0d0d0; }
.command { font-size: 9pt; }
.commandPanel { }
.commentPanel { }
.commentTitle { font-size: 10pt; text-align: center; font-weight: bold; }
DIV.commentNav { font-size: 10pt; text-align: center; }
A.commentNav { font-size: 10pt; }
TABLE.comment { font-size: 10pt; background-color: white; padding: 2; }
TH.comment { font-size: 9pt; text-align: left; padding: 0 3px 0 3px; border-bottom: 1px solid #777777; color: #333333; }
.commentOdd { font-size: 9pt; background-color: #e7e7e7; }
.commentEven { font-size: 9pt; background-color: #f4f2f2; }
DIV.comment,A.comment { font-size: 10pt; background-color: white; text-align: center; }
.downtimeTitle { font-size: 12pt; text-align: center; font-weight: bold; }
DIV.downtimeNav { font-size: 10pt; text-align: center; }
A.downtimeNav { font-size: 10pt; }
TABLE.downtime { font-size: 10pt; background-color: white; padding: 2; }
TH.downtime { font-size: 9pt; text-align: left; padding: 0 3px 0 3px; border-bottom: 1px solid #777777; color: #333333; }
.downtimeOdd { font-size: 9pt; background-color: #e7e7e7; }
.downtimeEven { font-size: 9pt; background-color: #f4f2f2; }
.notflapping { background-color: #88d066; border: 1px solid #777777; font-weight: bold; float: left; }
.flapping { background-color: #f88888; border: 1px solid #777777; font-weight: bold; float: left; }
.notificationsENABLED { background-color: #88d066; border: 1px solid #777777; font-weight: bold; }
.notificationsDISABLED { background-color: #f88888; border: 1px solid #777777; font-weight: bold; }
.checksENABLED { background-color: #88d066; border: 1px solid #777777; font-weight: bold; }
.checksDISABLED { background-color: #f88888; border: 1px solid #777777; font-weight: bold; }
.eventhandlersENABLED { background-color: #88d066; border: 1px solid #777777; font-weight: bold; }
.eventhandlersDISABLED { background-color: #f88888; border: 1px solid #777777; font-weight: bold; }
.flapdetectionENABLED { background-color: #88d066; border: 1px solid #777777; font-weight: bold; }
.flapdetectionDISABLED { background-color: #f88888; border: 1px solid #777777; font-weight: bold; }
.downtimeACTIVE { background-color: #f88888; border: 1px solid #777777; font-weight: bold; float: left; }
.downtimeINACTIVE { background-color: #88d066; border: 1px solid #777777; font-weight: bold; float: left; }
.processOK { background-color: #88d066; border: 1px solid #777777; font-weight: bold; }
.processUNKNOWN { background-color: #ffbb55; border: 1px solid #777777; font-weight: bold; }
.processWARNING { background-color: #ffff00; border: 1px solid #777777; font-weight: bold; }
.processCRITICAL { background-color: #f88888; border: 1px solid #777777; font-weight: bold; }
.modeACTIVE { background-color: #88d066; border: 1px solid #777777; font-weight: bold; }
.modeSTANDBY { background-color: #ffff00; border: 1px solid #777777; font-weight: bold; }
.hostUP { background-color: #88d066; border: 1px solid #777777; font-weight: bold; float: left; }
.hostDOWN { background-color: #f88888; border: 1px solid #777777; font-weight: bold; float: left; }
.hostUNREACHABLE { background-color: #f88888; border: 1px solid #777777; font-weight: bold; float: left; }
.serviceOK { background-color: #88d066; border: 1px solid #777777; font-weight: bold; float: left; }
.serviceWARNING { background-color: #ffff00; border: 1px solid #777777; font-weight: bold; float: left; }
.serviceUNKNOWN { background-color: #ffbb55; border: 1px solid #777777; font-weight: bold; float: left; }
.serviceCRITICAL { background-color: #f88888; border: 1px solid #777777; font-weight: bold; float: left; }
.queueTitle { font-size: 12pt; text-align: center; font-weight: bold; }
TABLE.queue { font-size: 9pt; padding: 0; }
TH.queue { font-size: 9pt; text-align: left; padding: 0 3px 0 3px; border-bottom: 1px solid #777777; color: #333333; }
.queueOdd { font-size: 9pt; background-color: #e7e7e7; padding: 0 4 0 4; }
.queueEven { font-size: 9pt; background-color: #f4f2f2; padding: 0 4 0 4; }
.queueENABLED { font-size: 9pt; background-color: #88d066; border: 1px solid #777777; padding: 0 4 0 4; }
.queueDISABLED { font-size: 9pt; background-color: #f88888; border: 1px solid #777777; padding: 0 4 0 4; }

View File

@ -0,0 +1,10 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.histogram { }
.helpfulHints { font-size: 10pt; font-style: italic; text-align: center; }

View File

@ -0,0 +1,8 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.history { }

View File

@ -0,0 +1,64 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.status { }
TABLE.status { font-size: 9pt; padding: 2; }
TH.status { font-size: 9pt; text-align: left; padding: 0 3px 0 3px; border-bottom: 1px solid #777777; color: #333333; }
DIV.status { font-size: 10pt; text-align: center; }
.statusOdd { font-size: 9pt; background-color: #e7e7e7; }
.statusEven { font-size: 9pt; background-color: #f4f2f2; }
.statusPENDING { font-size: 9pt; background-color: #acacac; }
.statusOK { font-size: 9pt; background-color: #88d066; }
.statusRECOVERY { font-size: 9pt; background-color: #88d066; }
.statusUNKNOWN { font-size: 9pt; background-color: #ffbb55; }
.statusWARNING { font-size: 9pt; background-color: #ffff00; }
.statusCRITICAL { font-size: 9pt; background-color: #f88888; }
.statusHOSTPENDING { font-size: 9pt; background-color: #acacac; }
.statusHOSTUP { font-size: 9pt; background-color: #88d066; }
.statusHOSTDOWN { font-size: 9pt; background-color: #f88888; }
.statusHOSTUNREACHABLE { font-size: 9pt; background-color: #ffbb55; }
.statusBGUNKNOWN { font-size: 9pt; background-color: #ffddaa; }
.statusBGWARNING { font-size: 9pt; background-color: #feffc1; }
.statusBGCRITICAL { font-size: 9pt; background-color: #ffdddd; }
.statusBGDOWN { font-size: 9pt; background-color: #ffdddd; }
.statusBGUNREACHABLE { font-size: 9pt; background-color: #ffbb55; }
DIV.serviceTotals { font-size: 10pt; text-align: center; font-weight: bold; }
TABLE.serviceTotals { font-size: 10pt; font-weight: bold; }
TH.serviceTotals,A.serviceTotals { font-size: 9pt; }
TD.serviceTotals { font-size: 9pt; text-align: center; background-color: #e0e0e0; border: 1px solid #777777; padding: 2 4 2 4; }
.serviceTotalsOK { font-size: 9pt; text-align: center; background-color: #88d066; border: 1px solid #777777; padding: 2 4 2 4; }
.serviceTotalsWARNING { font-size: 9pt; text-align: center; background-color: #ffff00; border: 1px solid #777777; padding: 2 4 2 4; }
.serviceTotalsUNKNOWN { font-size: 9pt; text-align: center; background-color: #ffbb55; border: 1px solid #777777; padding: 2 4 2 4; }
.serviceTotalsCRITICAL { font-size: 9pt; text-align: center; background-color: #f88888; border: 1px solid #777777; padding: 2 4 2 4; }
.serviceTotalsPENDING { font-size: 9pt; text-align: center; background-color: #acacac; border: 1px solid #777777; padding: 2 4 2 4; }
.serviceTotalsPROBLEMS { font-size: 9pt; text-align: center; background-color: #aaccff; border: 1px solid #777777; padding: 2 4 2 4; }
DIV.hostTotals { font-size: 10pt; text-align: center; font-weight: bold; }
TABLE.hostTotals { font-size: 10pt; font-weight: bold; }
TH.hostTotals,A.hostTotals { font-size: 9pt; }
TD.hostTotals { font-size: 9pt; text-align: center; background-color: #e4e4e4; }
.hostTotalsUP { font-size: 9pt; text-align: center; background-color: #88d066; }
.hostTotalsDOWN { font-size: 9pt; text-align: center; background-color: #f88888; }
.hostTotalsUNREACHABLE { font-size: 9pt; text-align: center; background-color: #ffbb55; }
.hostTotalsPENDING { font-size: 9pt; text-align: center; background-color: #acacac; }
.hostTotalsPROBLEMS { font-size: 9pt; text-align: center; background-color: #aaccff; }
.miniStatusPENDING { font-size: 9pt; background-color: #acacac; text-align: center; }
.miniStatusOK { font-size: 9pt; background-color: #66ffee; text-align: center; }
.miniStatusUNKNOWN { font-size: 9pt; background-color: #ffbb55; text-align: center; }
.miniStatusWARNING { font-size: 9pt; background-color: #ffff00; text-align: center; }
.miniStatusCRITICAL { font-size: 9pt; background-color: #f88888; text-align: center; }
.miniStatusUP { font-size: 9pt; background-color: #66ffee; text-align: center; }
.miniStatusDOWN { font-size: 9pt; background-color: #f88888; text-align: center; }
.miniStatusUNREACHABLE { font-size: 9pt; background-color: #ffbb55; text-align: center; }

View File

@ -0,0 +1,29 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.notifications { }
TABLE.notifications { padding: 0; margin: 0; }
TH.notifications { font-size: 9pt; text-align: left; padding: 0 3px 0 3px; border-bottom: 1px solid #777777; color: #333333; }
.notificationsOdd { font-size: 8pt; background-color: #e7e7e7; padding: 0 4 0 4; }
.notificationsEven { font-size: 8pt; background-color: #f4f2f2; padding: 0 4 0 4; }
/* these are dark colors */
.notificationsOK { background-color: #88d066; border: 1px solid #777777; padding: 0 4 0 4; }
.notificationsUNKNOWN { background-color: #ffbb55; border: 1px solid #777777; padding: 0 4 0 4; }
.notificationsWARNING { background-color: #ffff00; border: 1px solid #777777; padding: 0 4 0 4; }
.notificationsCRITICAL { background-color: #f88888; border: 1px solid #777777; padding: 0 4 0 4; }
.notificationsACKNOWLEDGEMENT { background-color: #aaaaaa; border: 1px solid #777777; padding: 0 4 0 4; }
.notificationsCUSTOM { background-color: #778899; border: 1px solid #777777; padding: 0 4 0 4; }
/* these are dark colors */
.notificationsHOSTUP { background-color: #88d066; border: 1px solid #777777; padding: 0 4 0 4; }
.notificationsHOSTDOWN { background-color: #f88888; border: 1px solid #777777; padding: 0 4 0 4; }
.notificationsHOSTUNREACHABLE { background-color: #ffbb55; border: 1px solid #777777; padding: 0 4 0 4; }
.notificationsHOSTACKNOWLEDGEMENT { background-color: #aaaaaa; border: 1px solid #777777; padding: 0 4 0 4; }
.notificationsHOSTCUSTOM { background-color: #778899; border: 1px solid #777777; padding: 0 4 0 4; }

View File

@ -0,0 +1,15 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.outages { }
.itemTotalsTitle { font-size: 8pt; text-align: center; }
.hostUP { background-color: #88d066; font-weight: bold; }
.hostDOWN { background-color: #f88888; font-weight: bold; }
.hostUNREACHABLE { background-color: #ffbb55; font-weight: bold; }

View File

@ -0,0 +1,8 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.showlog { }

View File

@ -0,0 +1,88 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.status { }
.itemTotalsTitle { font-size: 8pt; font-style: italic; clear:both;}
table.status { font-size: 9pt; padding: 0 0 10 0; }
th.status { font-size: 9pt; text-align: left; padding: 0 3px 0 3px; border-bottom: 1px solid #777777; color: #333333; }
div.status { font-size: 10pt; text-align: center; }
.statusOdd { font-size: 8pt; background-color: #e7e7e7; line-height: 150%; padding: 0 4 0 4; }
.statusEven { font-size: 8pt; background-color: #f4f2f2; line-height: 150%; padding: 0 4 0 4; }
.statusPENDING { font-size: 8pt; background-color: #acacac; border: 1px solid #777777; padding: 0 5 0 5; }
.statusOK { font-size: 8pt; background-color: #88d066; border: 1px solid #777777; padding: 0 5 0 5; }
.statusRECOVERY { font-size: 8pt; background-color: #88d066; border: 1px solid #777777; padding: 0 5 0 5; }
.statusUNKNOWN { font-size: 8pt; background-color: #ffbb55; border: 1px solid #777777; padding: 0 5 0 5; }
.statusWARNING { font-size: 8pt; background-color: #ffff00; border: 1px solid #777777; padding: 0 5 0 5; }
.statusCRITICAL { font-size: 8pt; background-color: #f88888; border: 1px solid #777777; padding: 0 5 0 5; }
.statusHOSTPENDING { font-size: 8pt; background-color: #acacac; line-height: 150%; padding: 0 4 0 4; }
.statusHOSTUP { font-size: 8pt; background-color: #cce8cc; line-height: 150%; padding: 0 4 0 4; }
.statusHOSTDOWN { font-size: 8pt; background-color: #ffdddd; line-height: 150%; padding: 0 4 0 4; }
.statusHOSTDOWNACK { font-size: 8pt; background-color: #ffdddd; line-height: 150%; padding: 0 4 0 4; }
.statusHOSTDOWNSCHED { font-size: 8pt; background-color: #ffdddd; line-height: 150%; padding: 0 4 0 4; }
.statusHOSTUNREACHABLE { font-size: 8pt; background-color: #ffddaa; line-height: 150%; padding: 0 4 0 4; }
.statusHOSTUNREACHABLEACK { font-size: 8pt; background-color: #ffddaa; line-height: 150%; padding: 0 4 0 4; }
.statusHOSTUNREACHABLESCHED { font-size: 8pt; background-color: #ffddaa; line-height: 150%; padding: 0 4 0 4; }
.statusBGUNKNOWN { font-size: 8pt; background-color: #ffddaa; }
.statusBGUNKNOWNACK { font-size: 8pt; background-color: #ffddaa; }
.statusBGUNKNOWNSCHED { font-size: 8pt; background-color: #ffddaa; }
.statusBGWARNING { font-size: 8pt; background-color: #feffc1; }
.statusBGWARNINGACK { font-size: 8pt; background-color: #feffc1; }
.statusBGWARNINGSCHED { font-size: 8pt; background-color: #feffc1; }
.statusBGCRITICAL { font-size: 8pt; background-color: #ffdddd; }
.statusBGCRITICALACK { font-size: 8pt; background-color: #ffdddd; }
.statusBGCRITICALSCHED { font-size: 8pt; background-color: #ffdddd; }
.statusBGDOWN { font-size: 8pt; background-color: #ffdddd; }
.statusBGDOWNACK { font-size: 8pt; background-color: #ffdddd; }
.statusBGDOWNSCHED { font-size: 8pt; background-color: #ffdddd; }
.statusBGUNREACHABLE { font-size: 8pt; background-color: #ffddaa; }
.statusBGUNREACHABLEACK { font-size: 8pt; background-color: #ffddaa; }
.statusBGUNREACHABLESCHED { font-size: 8pt; background-color: #ffddaa; }
div.serviceTotals { font-size: 10pt; text-align: center; font-weight: bold; }
table.serviceTotals { font-size: 10pt; font-weight: bold; }
th.serviceTotals,a.serviceTotals { font-size: 8pt; }
td.serviceTotals { font-size: 8pt; text-align: center; background-color: #e0e0e0; border: 1px solid #777777; padding: 2 4 2 4; }
.serviceTotalsOK { font-size: 8pt; text-align: center; background-color: #88d066; border: 1px solid #777777; padding: 2 4 2 4; }
.serviceTotalsWARNING { font-size: 8pt; text-align: center; background-color: #ffff00; border: 1px solid #777777; padding: 2 4 2 4; }
.serviceTotalsUNKNOWN { font-size: 8pt; text-align: center; background-color: #ffbb55; border: 1px solid #777777; padding: 2 4 2 4; }
.serviceTotalsCRITICAL { font-size: 8pt; text-align: center; background-color: #f88888; border: 1px solid #777777; padding: 2 4 2 4; }
.serviceTotalsPENDING { font-size: 8pt; text-align: center; background-color: #acacac; border: 1px solid #777777; padding: 2 4 2 4; }
.serviceTotalsPROBLEMS { font-size: 8pt; text-align: center; background-color: #aaccff; border: 1px solid #777777; padding: 2 4 2 4; }
div.hostTotals { font-size: 10pt; text-align: center; font-weight: bold; }
table.hostTotals { font-size: 10pt; font-weight: bold; }
th.hostTotals,a.hostTotals { font-size: 8pt; }
td.hostTotals { font-size: 8pt; text-align: center; background-color: #e0e0e0; border: 1px solid #777777; padding: 2 4 2 4; }
.hostTotalsUP { font-size: 8pt; text-align: center; background-color: #88d066; border: 1px solid #777777; padding: 2 4 2 4; }
.hostTotalsDOWN { font-size: 8pt; text-align: center; background-color: #f88888; border: 1px solid #777777; padding: 2 4 2 4; }
.hostTotalsUNREACHABLE { font-size: 8pt; text-align: center; background-color: #ffbb55; border: 1px solid #777777; padding: 2 4 2 4; }
.hostTotalsPENDING { font-size: 8pt; text-align: center; background-color: #acacac; border: 1px solid #777777; padding: 2 4 2 4; }
.hostTotalsPROBLEMS { font-size: 8pt; text-align: center; background-color: #aaccff; border: 1px solid #777777; padding: 2 4 2 4; }
.miniStatusPENDING { font-size: 8pt; text-align: center; background-color: #acacac; border: 1px solid #777777; padding: 0 5 0 5; }
.miniStatusOK { font-size: 8pt; text-align: center; background-color: #88d066; border: 1px solid #777777; padding: 0 5 0 5; }
.miniStatusUNKNOWN { font-size: 8pt; text-align: center; background-color: #ffbb55; border: 1px solid #777777; padding: 0 5 0 5; }
.miniStatusWARNING { font-size: 8pt; text-align: center; background-color: #ffff00; border: 1px solid #777777; padding: 0 5 0 5; }
.miniStatusCRITICAL { font-size: 8pt; text-align: center; background-color: #f88888; border: 1px solid #777777; padding: 0 5 0 5; }
.miniStatusUP { font-size: 8pt; text-align: center; background-color: #88d066; border: 1px solid #777777; padding: 0 5 0 5; }
.miniStatusDOWN { font-size: 8pt; text-align: center; background-color: #f88888; border: 1px solid #777777; padding: 0 5 0 5; }
.miniStatusUNREACHABLE { font-size: 8pt; text-align: center; background-color: #ffbb55; border: 1px solid #777777; padding: 0 5 0 5; }
/* page number styles, added 2/01/2012 -MG */
#top_page_numbers { float:right;}
#result_limit { display:inline;}
.pagenumber { display: block; float:left; border: 1px solid #AAAAAA; padding: 0 2px 0 2px; margin: 1px;text-align:center; height:15px; }
a.pagenumber:hover { background-color: #EFEFEF;text-decoration:none;}
.current_page { color: #AAA; }
#inner_numbers { clear:right;}
#pagelimit,#bottom_page_numbers { font-size:8pt;}

View File

@ -0,0 +1,14 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.statusmap { }
.imageInfo { font-size: 8pt; font-weight: bold; text-align: center; }
.zoomTitle { font-size: 8pt; font-weight: bold; }
.popupText { font-size: 8pt; background-color: #eeeeaa; border: 1px solid #777777; padding: 0 5 0 5; }

View File

@ -0,0 +1,30 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.summary { }
/* override to match filter table style */
.optBoxItem { font-size: 8pt; font-weight: bold; }
.optBoxValue { font-size: 8pt; }
/* override to match query info style */
.dataSubTitle { font-size: 8pt; text-align: center; font-weight: normal; }
/* override so we get a bit of whitespace */
table.data { padding-top: 15; }
.reportDataOdd { font-size: 9pt; background-color: #e7e7e7; padding: 0 4 0 4; }
.reportDataEven { font-size: 9pt; background-color: #f4f2f2; padding: 0 4 0 4; }
.hostUP { font-size: 9pt; background-color: #88d066; border: 1px solid #777777; padding: 0 4 0 4; }
.hostDOWN { font-size: 9pt; background-color: #f88888; border: 1px solid #777777; padding: 0 4 0 4; }
.hostUNREACHABLE { font-size: 9pt; background-color: #ffbb55; border: 1px solid #777777; padding: 0 4 0 4; }
.serviceOK { font-size: 9pt; background-color: #88d066; border: 1px solid #777777; padding: 0 4 0 4; }
.serviceWARNING { font-size: 9pt; background-color: #ffff00; border: 1px solid #777777; padding: 0 4 0 4; }
.serviceUNKNOWN { font-size: 9pt; background-color: #ffbb55; border: 1px solid #777777; padding: 0 4 0 4; }
.serviceCRITICAL { font-size: 9pt; background-color: #f88888; border: 1px solid #777777; padding: 0 4 0 4; }

View File

@ -0,0 +1,75 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.tac { font-size: 10pt; }
.title { font-weight: bold; }
.titleItem { font-size: 8pt; font-weight: bold; }
td.perfTitle { font-size: 10pt; font-weight: bold; background-color: #d0d0d0; border: 1px solid #aaaaaa; }
.perfBox { background-color: #eeeeee; border: 1px solid #cccccc; }
.perfItem { font-size: 8pt; font-weight: bold; }
.perfValue { font-size: 8pt; }
.healthTitle { font-weight: bold; font-size: 10pt; background-color: #d0d0d0; border: 1px solid #aaaaaa; }
.healthBox { }
.healthItem { font-size: 10pt; font-weight: bold; }
.healthBar { background-color: grey; padding: 2 4 2 4; }
.outageTitle { font-weight: bold; background-color: #d0d0d0; border: 1px solid #aaaaaa; }
.outageHeader { font-weight: bold; border-bottom: 1px solid #aaaaaa; }
.hostTitle { font-weight: bold; background-color: #d0d0d0; border: 1px solid #aaaaaa; }
td.hostHeader { font-weight: bold; border-bottom: 1px solid #aaaaaa; }
.serviceTitle { font-weight: bold; background-color: #d0d0d0; border: 1px solid #aaaaaa; }
td.serviceHeader { font-weight: bold; border-bottom: 1px solid #aaaaaa; }
.featureTitle { font-weight: bold; background-color: #d0d0d0; border: 1px solid #aaaaaa; }
td.featureHeader { font-weight: bold; border-bottom: 1px solid #aaaaaa; }
.featureEnabled { text-align: center; background-color: #ccffcc; }
.featureDisabled { text-align: center; background-color: #ffcccc; }
.featureEnabledFlapDetection { text-align: center; font-weight: bold; }
.featureDisabledFlapDetection { text-align: center; font-weight: bold; }
.featureItemEnabledServiceFlapDetection { font-size: 8pt; background-color: #88d066; border: 1px solid #777777; }
.featureItemDisabledServiceFlapDetection { font-size: 8pt; background-color: #f88888; border: 1px solid #777777; }
.featureItemEnabledHostFlapDetection { font-size: 8pt; background-color: #88d066; border: 1px solid #777777; }
.featureItemDisabledHostFlapDetection { font-size: 8pt; background-color: #f88888; border: 1px solid #777777; }
.featureItemServicesNotFlapping { font-size: 8pt; background-color: #88d066; border: 1px solid #777777; }
.featureItemServicesFlapping { font-size: 8pt; background-color: #f88888; border: 1px solid #777777; }
.featureItemHostsNotFlapping { font-size: 8pt; background-color: #88d066; border: 1px solid #777777; }
.featureItemHostsFlapping { font-size: 8pt; background-color: #f88888; border: 1px solid #777777; }
.featureEnabledNotifications { text-align: center; font-weight: bold; }
.featureDisabledNotifications { text-align: center; font-weight: bold; }
.featureItemEnabledServiceNotifications { font-size: 8pt; background-color: #88d066; border: 1px solid #777777; }
.featureItemDisabledServiceNotifications { font-size: 8pt; background-color: #f88888; border: 1px solid #777777; }
.featureItemEnabledHostNotifications { font-size: 8pt; background-color: #88d066; border: 1px solid #777777; }
.featureItemDisabledHostNotifications { font-size: 8pt; background-color: #f88888; border: 1px solid #777777; }
.featureEnabledHandlers { text-align: center; font-weight: bold; }
.featureDisabledHandlers { text-align: center; font-weight: bold; }
.featureItemEnabledServiceHandlers { font-size: 8pt; background-color: #88d066; border: 1px solid #777777; }
.featureItemDisabledServiceHandlers { font-size: 8pt; background-color: #f88888; border: 1px solid #777777; }
.featureItemEnabledHostHandlers { font-size: 8pt; background-color: #88d066; border: 1px solid #777777; }
.featureItemDisabledHostHandlers { font-size: 8pt; background-color: #f88888; }
.featureEnabledActiveChecks { text-align: center; font-weight: bold; }
.featureDisabledActiveChecks { text-align: center; font-weight: bold; }
.featureItemEnabledActiveServiceChecks { font-size: 8pt; background-color: #88d066; border: 1px solid #777777; }
.featureItemDisabledActiveServiceChecks { font-size: 8pt; background-color: #f88888; border: 1px solid #777777; }
.featureItemEnabledActiveHostChecks { font-size: 8pt; background-color: #88d066; border: 1px solid #777777; }
.featureItemDisabledActiveHostChecks { font-size: 8pt; background-color: #f88888; border: 1px solid #777777; }
.featureEnabledPassiveChecks { text-align: center; font-weight: bold; }
.featureDisabledPassiveChecks { text-align: center; font-weight: bold; }
.featureItemEnabledPassiveServiceChecks { font-size: 8pt; background-color: #88d066; border: 1px solid #777777; }
.featureItemDisabledPassiveServiceChecks { font-size: 8pt; background-color: #f88888; border: 1px solid #777777; }
.featureItemEnabledPassiveHostChecks { font-size: 8pt; background-color: #88d066; border: 1px solid #777777; }
.featureItemDisabledPassiveHostChecks { font-size: 8pt; background-color: #f88888; border: 1px solid #777777; }

View File

@ -0,0 +1,8 @@
/* exfoliation: a nagios makeover */
/* Copyright 2010 Matthew Wall, all rights reserved */
/* */
/* Permission to use, copy, modify, and distribute this software for any */
/* purpose with or without fee is hereby granted, provided that the above */
/* copyright notice and this permission notice appear in all copies. */
.trends { }