Nagios: initial configs
|
@ -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/
|
||||
|
||||
|
||||
|
|
@ -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$
|
||||
}
|
|
@ -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}
|
|
@ -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;
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
define service {
|
||||
use generic-service
|
||||
hostgroup reception-equipment
|
||||
service_description PING
|
||||
check_interval 5
|
||||
check_command check-host-alive
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
define service {
|
||||
use generic-service
|
||||
hostgroup video-equipment
|
||||
service_description PING
|
||||
check_interval 10
|
||||
check_command check-host-alive
|
||||
}
|
|
@ -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
|
||||
}
|
||||
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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!
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 852 B |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 370 B |
After Width: | Height: | Size: 1.3 KiB |
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
define service{
|
||||
use generic-service
|
||||
service_description Telnet
|
||||
check_command check_telnet_4!
|
||||
hostgroup_name core-switches
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
|
@ -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; }
|
|
@ -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; }
|
||||
|
||||
|
||||
|
||||
|
|
@ -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; }
|
|
@ -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;
|
||||
}
|
|
@ -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; }
|
|
@ -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; }
|
|
@ -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; }
|
|
@ -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 { }
|
|
@ -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; }
|
|
@ -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; }
|
||||
|
|
@ -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; }
|
||||
|
|
@ -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 { }
|
|
@ -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;}
|
|
@ -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; }
|
|
@ -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; }
|
|
@ -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; }
|
|
@ -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 { }
|