Initial commit
This commit is contained in:
parent
8cc48163cd
commit
75a3363a1d
|
@ -0,0 +1,250 @@
|
|||
FROM ubuntu:16.04
|
||||
MAINTAINER Jason Rivers <jason@jasonrivers.co.uk>
|
||||
|
||||
ENV NAGIOS_HOME /opt/nagios
|
||||
ENV NAGIOS_USER nagios
|
||||
ENV NAGIOS_GROUP nagios
|
||||
ENV NAGIOS_CMDUSER nagios
|
||||
ENV NAGIOS_CMDGROUP nagios
|
||||
ENV NAGIOS_FQDN nagios.example.com
|
||||
ENV NAGIOSADMIN_USER nagiosadmin
|
||||
ENV NAGIOSADMIN_PASS nagios
|
||||
ENV APACHE_RUN_USER nagios
|
||||
ENV APACHE_RUN_GROUP nagios
|
||||
ENV NAGIOS_TIMEZONE UTC
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
ENV NG_NAGIOS_CONFIG_FILE ${NAGIOS_HOME}/etc/nagios.cfg
|
||||
ENV NG_CGI_DIR ${NAGIOS_HOME}/sbin
|
||||
ENV NG_WWW_DIR ${NAGIOS_HOME}/share/nagiosgraph
|
||||
ENV NG_CGI_URL /cgi-bin
|
||||
ENV NAGIOS_BRANCH nagios-4.4.4
|
||||
ENV NAGIOS_PLUGINS_BRANCH release-2.2.1
|
||||
ENV NRPE_BRANCH nrpe-3.2.1
|
||||
|
||||
|
||||
RUN echo postfix postfix/main_mailer_type string "'Internet Site'" | debconf-set-selections && \
|
||||
echo postfix postfix/mynetworks string "127.0.0.0/8" | debconf-set-selections && \
|
||||
echo postfix postfix/mailname string ${NAGIOS_FQDN} | debconf-set-selections && \
|
||||
apt-get update && apt-get install -y \
|
||||
apache2 \
|
||||
apache2-utils \
|
||||
autoconf \
|
||||
automake \
|
||||
bc \
|
||||
bsd-mailx \
|
||||
build-essential \
|
||||
dnsutils \
|
||||
fping \
|
||||
gettext \
|
||||
git \
|
||||
gperf \
|
||||
iputils-ping \
|
||||
jq \
|
||||
libapache2-mod-php \
|
||||
libcache-memcached-perl \
|
||||
libcgi-pm-perl \
|
||||
libdbd-mysql-perl \
|
||||
libdbi-dev \
|
||||
libdbi-perl \
|
||||
libfreeradius-client-dev \
|
||||
libgd2-xpm-dev \
|
||||
libgd-gd2-perl \
|
||||
libjson-perl \
|
||||
libldap2-dev \
|
||||
libmysqlclient-dev \
|
||||
libnagios-object-perl \
|
||||
libnagios-plugin-perl \
|
||||
libnet-snmp-perl \
|
||||
libnet-snmp-perl \
|
||||
libnet-tftp-perl \
|
||||
libnet-xmpp-perl \
|
||||
libpq-dev \
|
||||
libredis-perl \
|
||||
librrds-perl \
|
||||
libssl-dev \
|
||||
libswitch-perl \
|
||||
libwww-perl \
|
||||
m4 \
|
||||
netcat \
|
||||
parallel \
|
||||
php-cli \
|
||||
php-gd \
|
||||
postfix \
|
||||
python-pip \
|
||||
rsyslog \
|
||||
runit \
|
||||
smbclient \
|
||||
snmp \
|
||||
snmpd \
|
||||
snmp-mibs-downloader \
|
||||
unzip \
|
||||
python \
|
||||
&& \
|
||||
apt-get clean && rm -Rf /var/lib/apt/lists/*
|
||||
|
||||
RUN ( egrep -i "^${NAGIOS_GROUP}" /etc/group || groupadd $NAGIOS_GROUP ) && \
|
||||
( egrep -i "^${NAGIOS_CMDGROUP}" /etc/group || groupadd $NAGIOS_CMDGROUP )
|
||||
RUN ( id -u $NAGIOS_USER || useradd --system -d $NAGIOS_HOME -g $NAGIOS_GROUP $NAGIOS_USER ) && \
|
||||
( id -u $NAGIOS_CMDUSER || useradd --system -d $NAGIOS_HOME -g $NAGIOS_CMDGROUP $NAGIOS_CMDUSER )
|
||||
|
||||
RUN cd /tmp && \
|
||||
git clone https://github.com/multiplay/qstat.git && \
|
||||
cd qstat && \
|
||||
./autogen.sh && \
|
||||
./configure && \
|
||||
make && \
|
||||
make install && \
|
||||
make clean && \
|
||||
cd /tmp && rm -Rf qstat
|
||||
|
||||
RUN cd /tmp && \
|
||||
git clone https://github.com/NagiosEnterprises/nagioscore.git -b $NAGIOS_BRANCH && \
|
||||
cd nagioscore && \
|
||||
./configure \
|
||||
--prefix=${NAGIOS_HOME} \
|
||||
--exec-prefix=${NAGIOS_HOME} \
|
||||
--enable-event-broker \
|
||||
--with-command-user=${NAGIOS_CMDUSER} \
|
||||
--with-command-group=${NAGIOS_CMDGROUP} \
|
||||
--with-nagios-user=${NAGIOS_USER} \
|
||||
--with-nagios-group=${NAGIOS_GROUP} \
|
||||
&& \
|
||||
make all && \
|
||||
make install && \
|
||||
make install-config && \
|
||||
make install-commandmode && \
|
||||
make install-webconf && \
|
||||
#make clean && \
|
||||
cd /tmp && rm -Rf nagioscore
|
||||
|
||||
RUN cd /tmp && \
|
||||
git clone https://github.com/nagios-plugins/nagios-plugins.git -b $NAGIOS_PLUGINS_BRANCH && \
|
||||
cd nagios-plugins && \
|
||||
./tools/setup && \
|
||||
./configure \
|
||||
--prefix=${NAGIOS_HOME} \
|
||||
--with-ipv6 \
|
||||
--with-ping6-command="/bin/ping6 -n -U -W %d -c %d %s" \
|
||||
&& \
|
||||
make && \
|
||||
make install && \
|
||||
make clean && \
|
||||
mkdir -p /usr/lib/nagios/plugins && \
|
||||
ln -sf ${NAGIOS_HOME}/libexec/utils.pm /usr/lib/nagios/plugins && \
|
||||
cd /tmp && rm -Rf nagios-plugins
|
||||
|
||||
RUN wget -O ${NAGIOS_HOME}/libexec/check_ncpa.py https://raw.githubusercontent.com/NagiosEnterprises/ncpa/v2.0.5/client/check_ncpa.py && \
|
||||
chmod +x ${NAGIOS_HOME}/libexec/check_ncpa.py
|
||||
|
||||
RUN cd /tmp && \
|
||||
git clone https://github.com/NagiosEnterprises/nrpe.git -b $NRPE_BRANCH && \
|
||||
cd nrpe && \
|
||||
./configure \
|
||||
--with-ssl=/usr/bin/openssl \
|
||||
--with-ssl-lib=/usr/lib/arm-linux-gnueabihf \
|
||||
&& \
|
||||
make check_nrpe && \
|
||||
cp src/check_nrpe ${NAGIOS_HOME}/libexec/ && \
|
||||
make clean && \
|
||||
cd /tmp && rm -Rf nrpe
|
||||
|
||||
RUN cd /tmp && \
|
||||
git clone https://git.code.sf.net/p/nagiosgraph/git nagiosgraph && \
|
||||
cd nagiosgraph && \
|
||||
./install.pl --install \
|
||||
--prefix /opt/nagiosgraph \
|
||||
--nagios-user ${NAGIOS_USER} \
|
||||
--www-user ${NAGIOS_USER} \
|
||||
--nagios-perfdata-file ${NAGIOS_HOME}/var/perfdata.log \
|
||||
--nagios-cgi-url /cgi-bin \
|
||||
&& \
|
||||
cp share/nagiosgraph.ssi ${NAGIOS_HOME}/share/ssi/common-header.ssi && \
|
||||
echo
|
||||
# cd /tmp && rm -Rf nagiosgraph
|
||||
|
||||
RUN cd /opt && \
|
||||
# pip install pymssql && \
|
||||
git clone https://github.com/willixix/naglio-plugins.git WL-Nagios-Plugins && \
|
||||
git clone https://github.com/JasonRivers/nagios-plugins.git JR-Nagios-Plugins && \
|
||||
git clone https://github.com/justintime/nagios-plugins.git JE-Nagios-Plugins && \
|
||||
git clone https://github.com/nagiosenterprises/check_mssql_collection.git nagios-mssql && \
|
||||
chmod +x /opt/WL-Nagios-Plugins/check* && \
|
||||
chmod +x /opt/JE-Nagios-Plugins/check_mem/check_mem.pl && \
|
||||
cp /opt/JE-Nagios-Plugins/check_mem/check_mem.pl ${NAGIOS_HOME}/libexec/ && \
|
||||
cp /opt/nagios-mssql/check_mssql_database.py ${NAGIOS_HOME}/libexec/ && \
|
||||
cp /opt/nagios-mssql/check_mssql_server.py ${NAGIOS_HOME}/libexec/
|
||||
|
||||
|
||||
RUN sed -i.bak 's/.*\=www\-data//g' /etc/apache2/envvars
|
||||
RUN export DOC_ROOT="DocumentRoot $(echo $NAGIOS_HOME/share)" && \
|
||||
sed -i "s,DocumentRoot.*,$DOC_ROOT," /etc/apache2/sites-enabled/000-default.conf && \
|
||||
sed -i "s,</VirtualHost>,<IfDefine ENABLE_USR_LIB_CGI_BIN>\nScriptAlias /cgi-bin/ ${NAGIOS_HOME}/sbin/\n</IfDefine>\n</VirtualHost>," /etc/apache2/sites-enabled/000-default.conf && \
|
||||
ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/cgi.load
|
||||
|
||||
RUN mkdir -p -m 0755 /usr/share/snmp/mibs && \
|
||||
mkdir -p ${NAGIOS_HOME}/etc/conf.d && \
|
||||
mkdir -p ${NAGIOS_HOME}/etc/monitor && \
|
||||
mkdir -p -m 700 ${NAGIOS_HOME}/.ssh && \
|
||||
chown ${NAGIOS_USER}:${NAGIOS_GROUP} ${NAGIOS_HOME}/.ssh && \
|
||||
touch /usr/share/snmp/mibs/.foo && \
|
||||
ln -s /usr/share/snmp/mibs ${NAGIOS_HOME}/libexec/mibs && \
|
||||
ln -s ${NAGIOS_HOME}/bin/nagios /usr/local/bin/nagios && \
|
||||
download-mibs && echo "mibs +ALL" > /etc/snmp/snmp.conf
|
||||
|
||||
RUN sed -i 's,/bin/mail,/usr/bin/mail,' ${NAGIOS_HOME}/etc/objects/commands.cfg && \
|
||||
sed -i 's,/usr/usr,/usr,' ${NAGIOS_HOME}/etc/objects/commands.cfg
|
||||
|
||||
RUN cp /etc/services /var/spool/postfix/etc/ && \
|
||||
echo "smtp_address_preference = ipv4" >> /etc/postfix/main.cf
|
||||
|
||||
RUN rm -rf /etc/rsyslog.d /etc/rsyslog.conf
|
||||
|
||||
RUN rm -rf /etc/sv/getty-5
|
||||
|
||||
ADD overlay /
|
||||
|
||||
RUN echo "use_timezone=${NAGIOS_TIMEZONE}" >> ${NAGIOS_HOME}/etc/nagios.cfg
|
||||
|
||||
# Copy example config in-case the user has started with empty var or etc
|
||||
|
||||
RUN mkdir -p /orig/var && mkdir -p /orig/etc && \
|
||||
cp -Rp ${NAGIOS_HOME}/var/* /orig/var/ && \
|
||||
cp -Rp ${NAGIOS_HOME}/etc/* /orig/etc/
|
||||
|
||||
RUN a2enmod session && \
|
||||
a2enmod session_cookie && \
|
||||
a2enmod session_crypto && \
|
||||
a2enmod auth_form && \
|
||||
a2enmod request
|
||||
|
||||
RUN chmod +x /usr/local/bin/start_nagios && \
|
||||
chmod +x /etc/sv/apache/run && \
|
||||
chmod +x /etc/sv/nagios/run && \
|
||||
chmod +x /etc/sv/postfix/run && \
|
||||
chmod +x /etc/sv/rsyslog/run && \
|
||||
chmod +x /opt/nagiosgraph/etc/fix-nagiosgraph-multiple-selection.sh
|
||||
|
||||
RUN cd /opt/nagiosgraph/etc && \
|
||||
sh fix-nagiosgraph-multiple-selection.sh
|
||||
|
||||
RUN rm /opt/nagiosgraph/etc/fix-nagiosgraph-multiple-selection.sh
|
||||
|
||||
# enable all runit services
|
||||
RUN ln -s /etc/sv/* /etc/service
|
||||
|
||||
ENV APACHE_LOCK_DIR /var/run
|
||||
ENV APACHE_LOG_DIR /var/log/apache2
|
||||
|
||||
#Set ServerName and timezone for Apache
|
||||
RUN echo "ServerName ${NAGIOS_FQDN}" > /etc/apache2/conf-available/servername.conf && \
|
||||
echo "PassEnv TZ" > /etc/apache2/conf-available/timezone.conf && \
|
||||
ln -s /etc/apache2/conf-available/servername.conf /etc/apache2/conf-enabled/servername.conf && \
|
||||
ln -s /etc/apache2/conf-available/timezone.conf /etc/apache2/conf-enabled/timezone.conf
|
||||
|
||||
EXPOSE 80
|
||||
|
||||
RUN pip install speedtest-cli
|
||||
|
||||
VOLUME "${NAGIOS_HOME}/var" "${NAGIOS_HOME}/etc" "/var/log/apache2" "/opt/Custom-Nagios-Plugins" "/opt/nagiosgraph/var" "/opt/nagiosgraph/etc"
|
||||
|
||||
CMD [ "/usr/local/bin/start_nagios" ]
|
|
@ -0,0 +1,9 @@
|
|||
MIT License
|
||||
|
||||
Copyright 2017 Jason Rivers
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@ -0,0 +1 @@
|
|||
theme: jekyll-theme-hacker
|
|
@ -0,0 +1,10 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
DOCKER_RUN_IMAGE=nagios
|
||||
|
||||
docker build -t "${DOCKER_RUN_IMAGE}" .
|
||||
|
||||
docker images
|
||||
docker run -d --rm --name "${DOCKER_RUN_IMAGE}" -p 8080:80 -t "${DOCKER_RUN_IMAGE}"
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
---
|
||||
|
||||
# This compose file acts as an example on using docker volumes for nagios
|
||||
# configuration. As nagios configurations are different for each site they are
|
||||
# not concidered part of the container image. The best way to deal with the
|
||||
# configurations is to store them in a volume allowing the user to upgrade the
|
||||
# image without the need to extract the site configuration from the container.
|
||||
|
||||
version: '3'
|
||||
services:
|
||||
nagios:
|
||||
image: jasonrivers/nagios:latest
|
||||
volumes:
|
||||
- nagiosetc:/opt/nagios/etc
|
||||
- nagiosvar:/opt/nagios/var
|
||||
- customplugins:/opt/Custom-Nagios-Plugins
|
||||
- nagiosgraphvar:/opt/nagiosgraph/var
|
||||
- nagiosgraphetc:/opt/nagiosgraph/etc
|
||||
|
||||
volumes:
|
||||
nagiosetc:
|
||||
nagiosvar:
|
||||
customplugins:
|
||||
nagiosgraphvar:
|
||||
nagiosgraphetc:
|
|
@ -0,0 +1,7 @@
|
|||
# redirect /var/log/syslog to stdout
|
||||
$ModLoad imuxsock
|
||||
# log only tag and message
|
||||
$template noTimestampFormat,"%syslogtag%%msg%\n"
|
||||
$ActionFileDefaultTemplate noTimestampFormat
|
||||
$WorkDirectory /var/spool/rsyslog
|
||||
*.*;auth,authpriv.none /dev/stdout
|
|
@ -0,0 +1,8 @@
|
|||
#!/bin/bash
|
||||
. /etc/apache2/envvars
|
||||
|
||||
. /etc/default/apache-htcacheclean
|
||||
|
||||
export TZ="${NAGIOS_TIMEZONE}"
|
||||
|
||||
exec /usr/sbin/apache2 -D NO_DETACH
|
|
@ -0,0 +1,19 @@
|
|||
#!/bin/bash
|
||||
|
||||
echo "checking permissions for nagios & nagiosgraph"
|
||||
find /opt/nagios \! -user ${NAGIOS_USER} -exec chown ${NAGIOS_USER}:${NAGIOS_GROUP} '{}' +
|
||||
find /opt/nagiosgraph \! -user ${NAGIOS_USER} -exec chown ${NAGIOS_USER}:${NAGIOS_GROUP} '{}' +
|
||||
if ! [ -f /opt/nagiosgraph/etc/ngshared.pm ]; then
|
||||
echo "Configuring Nagiosgraph"
|
||||
|
||||
cd /tmp/nagiosgraph && \
|
||||
./install.pl --install \
|
||||
--prefix /opt/nagiosgraph \
|
||||
--nagios-user ${NAGIOS_USER} \
|
||||
--www-user ${NAGIOS_USER} \
|
||||
--nagios-perfdata-file ${NAGIOS_HOME}/var/perfdata.log \
|
||||
--nagios-cgi-url /cgi-bin >/dev/null
|
||||
echo "done"
|
||||
fi
|
||||
|
||||
exec "${NAGIOS_HOME}/bin/nagios" "${NAGIOS_HOME}/etc/nagios.cfg"
|
|
@ -0,0 +1,19 @@
|
|||
#!/bin/bash
|
||||
|
||||
|
||||
if ! [ "${MAIL_RELAY_HOST}" = "" ]; then
|
||||
sed -i "s/relayhost =.*/relayhost = ${MAIL_RELAY_HOST}/" /etc/postfix/main.cf
|
||||
fi
|
||||
if ! [ "${MAIL_INET_PROTOCOLS}" = "" ]; then
|
||||
sed -i "s/inet_protocols =.*/inet_protocols = ${MAIL_INET_PROTOCOLS}/" /etc/postfix/main.cf
|
||||
fi
|
||||
sed -i "s/myhostname =.*/myhostname = $(hostname)/" /etc/postfix/main.cf
|
||||
sed -i "s/mydestination =.*/mydestination = ${NAGIOS_FQDN}, \$myhostname, localhost.localdomain, localhost/" /etc/postfix/main.cf
|
||||
|
||||
sed -i "/^myorigin =.*/d" /etc/postfix/main.cf
|
||||
echo "${NAGIOS_FQDN}" > /etc/mailname
|
||||
|
||||
#postfix runs in a chroot and needs resolv.conf to resolve hostnames
|
||||
cp /etc/resolv.conf /var/spool/postfix/etc/resolv.conf
|
||||
|
||||
exec /usr/lib/postfix/sbin/master -d -c /etc/postfix
|
|
@ -0,0 +1,3 @@
|
|||
#!/bin/bash
|
||||
|
||||
exec rsyslogd -n -f /etc/rsyslog.conf
|
|
@ -0,0 +1,364 @@
|
|||
#################################################################
|
||||
#
|
||||
# CGI.CFG - Sample CGI Configuration File for Nagios 3.5.1
|
||||
#
|
||||
# Last Modified: 06-17-2009
|
||||
#
|
||||
#################################################################
|
||||
|
||||
|
||||
# MAIN CONFIGURATION FILE
|
||||
# This tells the CGIs where to find your main configuration file.
|
||||
# The CGIs will read the main and host config files for any other
|
||||
# data they might need.
|
||||
|
||||
main_config_file=/opt/nagios/etc/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=/opt/nagios/share
|
||||
|
||||
|
||||
|
||||
# URL HTML PATH
|
||||
# This is the path portion of the URL that corresponds to the
|
||||
# physical location of the Nagios HTML files (as defined above).
|
||||
# This value is used by the CGIs to locate the online documentation
|
||||
# and graphics. If you access the Nagios pages with an URL like
|
||||
# http://www.myhost.com/nagios, this value should be '/nagios'
|
||||
# (without the quotes).
|
||||
|
||||
url_html_path=/nagios
|
||||
|
||||
|
||||
|
||||
# CONTEXT-SENSITIVE HELP
|
||||
# This option determines whether or not a context-sensitive
|
||||
# help icon will be displayed for most of the CGIs.
|
||||
# Values: 0 = disables context-sensitive help
|
||||
# 1 = enables context-sensitive help
|
||||
|
||||
show_context_help=0
|
||||
|
||||
|
||||
|
||||
# PENDING STATES OPTION
|
||||
# This option determines what states should be displayed in the web
|
||||
# interface for hosts/services that have not yet been checked.
|
||||
# Values: 0 = leave hosts/services that have not been check yet in their original state
|
||||
# 1 = mark hosts/services that have not been checked yet as PENDING
|
||||
|
||||
use_pending_states=1
|
||||
|
||||
|
||||
|
||||
|
||||
# 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=nagiosadmin
|
||||
|
||||
|
||||
|
||||
# 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=nagiosadmin
|
||||
|
||||
|
||||
|
||||
# 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=nagiosadmin
|
||||
|
||||
|
||||
|
||||
# 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=nagiosadmin
|
||||
authorized_for_all_hosts=nagiosadmin
|
||||
|
||||
|
||||
|
||||
# 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=nagiosadmin
|
||||
authorized_for_all_host_commands=nagiosadmin
|
||||
|
||||
|
||||
|
||||
# READ-ONLY USERS
|
||||
# A comma-delimited list of usernames that have read-only rights in
|
||||
# the CGIs. This will block any service or host commands normally shown
|
||||
# on the extinfo CGI pages. It will also block comments from being shown
|
||||
# to read-only users.
|
||||
|
||||
#authorized_for_read_only=user1,user2
|
||||
|
||||
|
||||
|
||||
|
||||
# STATUSMAP BACKGROUND IMAGE
|
||||
# This option allows you to specify an image to be used as a
|
||||
# background in the statusmap CGI. It is assumed that the image
|
||||
# resides in the HTML images path (i.e. /usr/local/nagios/share/images).
|
||||
# This path is automatically determined by appending "/images"
|
||||
# to the path specified by the 'physical_html_path' directive.
|
||||
# Note: The image file may be in GIF, PNG, JPEG, or GD2 format.
|
||||
# However, I recommend that you convert your image to GD2 format
|
||||
# (uncompressed), as this will cause less CPU load when the CGI
|
||||
# generates the image.
|
||||
|
||||
#statusmap_background_image=smbackground.gd2
|
||||
|
||||
|
||||
|
||||
|
||||
# STATUSMAP TRANSPARENCY INDEX COLOR
|
||||
# These options set the r,g,b values of the background color used the statusmap CGI,
|
||||
# so normal browsers that can't show real png transparency set the desired color as
|
||||
# a background color instead (to make it look pretty).
|
||||
# Defaults to white: (R,G,B) = (255,255,255).
|
||||
|
||||
#color_transparency_index_r=255
|
||||
#color_transparency_index_g=255
|
||||
#color_transparency_index_b=255
|
||||
|
||||
|
||||
|
||||
|
||||
# DEFAULT STATUSMAP LAYOUT METHOD
|
||||
# This option allows you to specify the default layout method
|
||||
# the statusmap CGI should use for drawing hosts. If you do
|
||||
# not use this option, the default is to use user-defined
|
||||
# coordinates. Valid options are as follows:
|
||||
# 0 = User-defined coordinates
|
||||
# 1 = Depth layers
|
||||
# 2 = Collapsed tree
|
||||
# 3 = Balanced tree
|
||||
# 4 = Circular
|
||||
# 5 = Circular (Marked Up)
|
||||
|
||||
default_statusmap_layout=5
|
||||
|
||||
|
||||
|
||||
# DEFAULT STATUSWRL LAYOUT METHOD
|
||||
# This option allows you to specify the default layout method
|
||||
# the statuswrl (VRML) CGI should use for drawing hosts. If you
|
||||
# do not use this option, the default is to use user-defined
|
||||
# coordinates. Valid options are as follows:
|
||||
# 0 = User-defined coordinates
|
||||
# 2 = Collapsed tree
|
||||
# 3 = Balanced tree
|
||||
# 4 = Circular
|
||||
|
||||
default_statuswrl_layout=4
|
||||
|
||||
|
||||
|
||||
# STATUSWRL INCLUDE
|
||||
# This option allows you to include your own objects in the
|
||||
# generated VRML world. It is assumed that the file
|
||||
# resides in the HTML path (i.e. /usr/local/nagios/share).
|
||||
|
||||
#statuswrl_include=myworld.wrl
|
||||
|
||||
|
||||
|
||||
# PING SYNTAX
|
||||
# This option determines what syntax should be used when
|
||||
# attempting to ping a host from the WAP interface (using
|
||||
# the statuswml CGI. You must include the full path to
|
||||
# the ping binary, along with all required options. The
|
||||
# $HOSTADDRESS$ macro is substituted with the address of
|
||||
# the host before the command is executed.
|
||||
# Please note that the syntax for the ping binary is
|
||||
# notorious for being different on virtually ever *NIX
|
||||
# OS and distribution, so you may have to tweak this to
|
||||
# work on your system.
|
||||
|
||||
ping_syntax=/bin/ping -n -U -c 5 $HOSTADDRESS$
|
||||
|
||||
|
||||
|
||||
# REFRESH RATE
|
||||
# This option allows you to specify the refresh rate in seconds
|
||||
# of various CGIs (status, statusmap, extinfo, and outages).
|
||||
|
||||
refresh_rate=90
|
||||
|
||||
# DEFAULT PAGE LIMIT
|
||||
# This option allows you to specify the default number of results
|
||||
# displayed on the status.cgi. This number can be adjusted from
|
||||
# within the UI after the initial page load. Setting this to 0
|
||||
# will show all results.
|
||||
|
||||
result_limit=100
|
||||
|
||||
|
||||
# ESCAPE HTML TAGS
|
||||
# This option determines whether HTML tags in host and service
|
||||
# status output is escaped in the web interface. If enabled,
|
||||
# your plugin output will not be able to contain clickable links.
|
||||
|
||||
escape_html_tags=1
|
||||
|
||||
|
||||
|
||||
|
||||
# SOUND OPTIONS
|
||||
# These options allow you to specify an optional audio file
|
||||
# that should be played in your browser window when there are
|
||||
# problems on the network. The audio files are used only in
|
||||
# the status CGI. Only the sound for the most critical problem
|
||||
# will be played. Order of importance (higher to lower) is as
|
||||
# follows: unreachable hosts, down hosts, critical services,
|
||||
# warning services, and unknown services. If there are no
|
||||
# visible problems, the sound file optionally specified by
|
||||
# 'normal_sound' variable will be played.
|
||||
#
|
||||
#
|
||||
# <varname>=<sound_file>
|
||||
#
|
||||
# Note: All audio files must be placed in the /media subdirectory
|
||||
# under the HTML path (i.e. /usr/local/nagios/share/media/).
|
||||
|
||||
#host_unreachable_sound=hostdown.wav
|
||||
#host_down_sound=hostdown.wav
|
||||
#service_critical_sound=critical.wav
|
||||
#service_warning_sound=warning.wav
|
||||
#service_unknown_sound=warning.wav
|
||||
#normal_sound=noproblem.wav
|
||||
|
||||
|
||||
|
||||
# URL TARGET FRAMES
|
||||
# These options determine the target frames in which notes and
|
||||
# action URLs will open.
|
||||
|
||||
action_url_target=_self
|
||||
notes_url_target=_self
|
||||
|
||||
|
||||
|
||||
|
||||
# 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/
|
||||
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,238 @@
|
|||
###############################################################################
|
||||
# COMMANDS.CFG - SAMPLE COMMAND DEFINITIONS FOR NAGIOS 4.1.1
|
||||
#
|
||||
#
|
||||
# NOTES: This config file provides you with some example command definitions
|
||||
# that you can reference in host, service, and contact definitions.
|
||||
#
|
||||
# You don't need to keep commands in a separate file from your other
|
||||
# object definitions. This has been done just to make things easier to
|
||||
# understand.
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# SAMPLE NOTIFICATION COMMANDS
|
||||
#
|
||||
# These are some example notification commands. They may or may not work on
|
||||
# your system without modification. As an example, some systems will require
|
||||
# you to use "/usr/bin/mailx" instead of "/usr/bin/mail" in the commands below.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
|
||||
# 'notify-host-by-email' command definition
|
||||
define command{
|
||||
command_name notify-host-by-email
|
||||
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /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$
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# SAMPLE HOST CHECK COMMANDS
|
||||
#
|
||||
################################################################################
|
||||
|
||||
|
||||
# This command checks to see if a host is "alive" by pinging it
|
||||
# The check must result in a 100% packet loss or 5 second (5000ms) round trip
|
||||
# average time to produce a critical error.
|
||||
# Note: Five ICMP echo packets are sent (determined by the '-p 5' argument)
|
||||
|
||||
# 'check-host-alive' command definition
|
||||
define command{
|
||||
command_name check-host-alive
|
||||
command_line $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# SAMPLE SERVICE CHECK COMMANDS
|
||||
#
|
||||
# These are some example service check commands. They may or may not work on
|
||||
# your system, as they must be modified for your plugins. See the HTML
|
||||
# documentation on the plugins for examples of how to configure command definitions.
|
||||
#
|
||||
# NOTE: The following 'check_local_...' functions are designed to monitor
|
||||
# various metrics on the host that Nagios is running on (i.e. this one).
|
||||
################################################################################
|
||||
|
||||
# 'check_local_disk' command definition
|
||||
define command{
|
||||
command_name check_local_disk
|
||||
command_line $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
|
||||
}
|
||||
|
||||
|
||||
# 'check_local_load' command definition
|
||||
define command{
|
||||
command_name check_local_load
|
||||
command_line $USER1$/check_load -w $ARG1$ -c $ARG2$
|
||||
}
|
||||
|
||||
|
||||
# 'check_local_procs' command definition
|
||||
define command{
|
||||
command_name check_local_procs
|
||||
command_line $USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$
|
||||
}
|
||||
|
||||
|
||||
# 'check_local_users' command definition
|
||||
define command{
|
||||
command_name check_local_users
|
||||
command_line $USER1$/check_users -w $ARG1$ -c $ARG2$
|
||||
}
|
||||
|
||||
|
||||
# 'check_local_swap' command definition
|
||||
define command{
|
||||
command_name check_local_swap
|
||||
command_line $USER1$/check_swap -w $ARG1$ -c $ARG2$
|
||||
}
|
||||
|
||||
|
||||
# 'check_local_mrtgtraf' command definition
|
||||
define command{
|
||||
command_name check_local_mrtgtraf
|
||||
command_line $USER1$/check_mrtgtraf -F $ARG1$ -a $ARG2$ -w $ARG3$ -c $ARG4$ -e $ARG5$
|
||||
}
|
||||
|
||||
|
||||
################################################################################
|
||||
# NOTE: The following 'check_...' commands are used to monitor services on
|
||||
# both local and remote hosts.
|
||||
################################################################################
|
||||
|
||||
# 'check_ftp' command definition
|
||||
define command{
|
||||
command_name check_ftp
|
||||
command_line $USER1$/check_ftp -H $HOSTADDRESS$ $ARG1$
|
||||
}
|
||||
|
||||
|
||||
# 'check_hpjd' command definition
|
||||
define command{
|
||||
command_name check_hpjd
|
||||
command_line $USER1$/check_hpjd -H $HOSTADDRESS$ $ARG1$
|
||||
}
|
||||
|
||||
|
||||
# 'check_snmp' command definition
|
||||
define command{
|
||||
command_name check_snmp
|
||||
command_line $USER1$/check_snmp -H $HOSTADDRESS$ $ARG1$
|
||||
}
|
||||
|
||||
|
||||
# 'check_http' command definition
|
||||
define command{
|
||||
command_name check_http
|
||||
command_line $USER1$/check_http -I $HOSTADDRESS$ $ARG1$
|
||||
}
|
||||
|
||||
|
||||
# 'check_ssh' command definition
|
||||
define command{
|
||||
command_name check_ssh
|
||||
command_line $USER1$/check_ssh $ARG1$ $HOSTADDRESS$
|
||||
}
|
||||
|
||||
|
||||
# 'check_dhcp' command definition
|
||||
define command{
|
||||
command_name check_dhcp
|
||||
command_line $USER1$/check_dhcp $ARG1$
|
||||
}
|
||||
|
||||
|
||||
# 'check_ping' command definition
|
||||
define command{
|
||||
command_name check_ping
|
||||
command_line $USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5
|
||||
}
|
||||
|
||||
|
||||
# 'check_pop' command definition
|
||||
define command{
|
||||
command_name check_pop
|
||||
command_line $USER1$/check_pop -H $HOSTADDRESS$ $ARG1$
|
||||
}
|
||||
|
||||
|
||||
# 'check_imap' command definition
|
||||
define command{
|
||||
command_name check_imap
|
||||
command_line $USER1$/check_imap -H $HOSTADDRESS$ $ARG1$
|
||||
}
|
||||
|
||||
|
||||
# 'check_smtp' command definition
|
||||
define command{
|
||||
command_name check_smtp
|
||||
command_line $USER1$/check_smtp -H $HOSTADDRESS$ $ARG1$
|
||||
}
|
||||
|
||||
|
||||
# 'check_tcp' command definition
|
||||
define command{
|
||||
command_name check_tcp
|
||||
command_line $USER1$/check_tcp -H $HOSTADDRESS$ -p $ARG1$ $ARG2$
|
||||
}
|
||||
|
||||
|
||||
# 'check_udp' command definition
|
||||
define command{
|
||||
command_name check_udp
|
||||
command_line $USER1$/check_udp -H $HOSTADDRESS$ -p $ARG1$ $ARG2$
|
||||
}
|
||||
|
||||
|
||||
# 'check_nt' command definition
|
||||
define command{
|
||||
command_name check_nt
|
||||
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$
|
||||
}
|
||||
|
||||
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# SAMPLE PERFORMANCE DATA COMMANDS
|
||||
#
|
||||
# These are sample performance data commands that can be used to send performance
|
||||
# data output to two text files (one for hosts, another for services). If you
|
||||
# plan on simply writing performance data out to a file, consider using the
|
||||
# host_perfdata_file and service_perfdata_file options in the main config file.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
|
||||
## 'process-host-perfdata' command definition
|
||||
#define command{
|
||||
# command_name process-host-perfdata
|
||||
# command_line /usr/bin/printf "%b" "$LASTHOSTCHECK$\t$HOSTNAME$\t$HOSTSTATE$\t$HOSTATTEMPT$\t$HOSTSTATETYPE$\t$HOSTEXECUTIONTIME$\t$HOSTOUTPUT$\t$HOSTPERFDATA$\n" >> /opt/nagios/var/host-perfdata.out
|
||||
# }
|
||||
#
|
||||
#
|
||||
|
||||
define command {
|
||||
command_name process-service-perfdata
|
||||
command_line /opt/nagiosgraph/bin/insert.pl
|
||||
}
|
||||
|
|
@ -0,0 +1,143 @@
|
|||
###############################################################################
|
||||
# LOCALHOST.CFG - SAMPLE OBJECT CONFIG FILE FOR MONITORING THIS MACHINE
|
||||
#
|
||||
#
|
||||
# NOTE: This config file is intended to serve as an *extremely* simple
|
||||
# example of how you can create configuration entries to monitor
|
||||
# the local (Linux) machine.
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
|
||||
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
#
|
||||
# HOST DEFINITION
|
||||
#
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
|
||||
# Define a host for the local machine
|
||||
|
||||
define host{
|
||||
use linux-server ; Name of host template to use
|
||||
; This host definition will inherit all variables that are defined
|
||||
; in (or inherited by) the linux-server host template definition.
|
||||
host_name localhost
|
||||
alias localhost
|
||||
address 127.0.0.1
|
||||
}
|
||||
|
||||
|
||||
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
#
|
||||
# HOST GROUP DEFINITION
|
||||
#
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
|
||||
# Define an optional hostgroup for Linux machines
|
||||
|
||||
define hostgroup{
|
||||
hostgroup_name linux-servers ; The name of the hostgroup
|
||||
alias Linux Servers ; Long name of the group
|
||||
members localhost ; Comma separated list of hosts that belong to this group
|
||||
}
|
||||
|
||||
|
||||
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
#
|
||||
# SERVICE DEFINITIONS
|
||||
#
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
|
||||
|
||||
# Define a service to "ping" the local machine
|
||||
|
||||
define service{
|
||||
use local-service,graphed-service ; Name of service template to use
|
||||
host_name localhost
|
||||
service_description PING
|
||||
check_command check_ping!100.0,20%!500.0,60%
|
||||
}
|
||||
|
||||
|
||||
# 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 local-service,graphed-service ; Name of service template to use
|
||||
host_name localhost
|
||||
service_description Root Partition
|
||||
check_command check_local_disk!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 local-service,graphed-service ; Name of service template to use
|
||||
host_name localhost
|
||||
service_description Current Users
|
||||
check_command check_local_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 users.
|
||||
|
||||
define service{
|
||||
use local-service,graphed-service ; Name of service template to use
|
||||
host_name localhost
|
||||
service_description Total Processes
|
||||
check_command check_local_procs!250!400!RSZDT
|
||||
}
|
||||
|
||||
|
||||
|
||||
# Define a service to check the load on the local machine.
|
||||
|
||||
define service{
|
||||
use local-service,graphed-service ; Name of service template to use
|
||||
host_name localhost
|
||||
service_description Current Load
|
||||
check_command check_local_load!5.0,4.0,3.0!10.0,6.0,4.0
|
||||
}
|
||||
|
||||
|
||||
|
||||
# Define a service to check the swap usage the local machine.
|
||||
# Critical if less than 10% of swap is free, warning if less than 20% is free
|
||||
|
||||
define service{
|
||||
use local-service,graphed-service ; Name of service template to use
|
||||
host_name localhost
|
||||
service_description Swap Usage
|
||||
check_command check_local_swap!20!10
|
||||
}
|
||||
|
||||
|
||||
|
||||
# Define a service to check HTTP on the local machine.
|
||||
# Disable notifications for this service by default, as not all users may have HTTP enabled.
|
||||
|
||||
define service{
|
||||
use local-service,graphed-service ; Name of service template to use
|
||||
host_name localhost
|
||||
service_description HTTP
|
||||
check_command check_http
|
||||
notifications_enabled 0
|
||||
}
|
||||
|
|
@ -0,0 +1,193 @@
|
|||
###############################################################################
|
||||
# TEMPLATES.CFG - SAMPLE OBJECT TEMPLATES
|
||||
#
|
||||
#
|
||||
# NOTES: This config file provides you with some example object definition
|
||||
# templates that are refered by other host, service, contact, etc.
|
||||
# definitions in other config files.
|
||||
#
|
||||
# You don't need to keep these definitions in a separate file from your
|
||||
# other object definitions. This has been done just to make things
|
||||
# easier to understand.
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
|
||||
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
#
|
||||
# CONTACT TEMPLATES
|
||||
#
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
|
||||
# Generic contact definition template - This is NOT a real contact, just a template!
|
||||
|
||||
define contact{
|
||||
name generic-contact ; The name of this contact template
|
||||
service_notification_period 24x7 ; service notifications can be sent anytime
|
||||
host_notification_period 24x7 ; host notifications can be sent anytime
|
||||
service_notification_options w,u,c,r,f,s ; send notifications for all service states, flapping events, and scheduled downtime events
|
||||
host_notification_options d,u,r,f,s ; send notifications for all host states, flapping events, and scheduled downtime events
|
||||
service_notification_commands notify-service-by-email ; send service notifications via email
|
||||
host_notification_commands notify-host-by-email ; send host notifications via email
|
||||
register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL CONTACT, JUST A TEMPLATE!
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
#
|
||||
# HOST TEMPLATES
|
||||
#
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
|
||||
# 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
|
||||
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_period 24x7 ; Send host notifications at any time
|
||||
register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
|
||||
}
|
||||
|
||||
|
||||
# Linux host definition template - This is NOT a real host, just a template!
|
||||
|
||||
define host{
|
||||
name linux-server ; The name of this host template
|
||||
use generic-host ; This template inherits other values from the generic-host template
|
||||
check_period 24x7 ; By default, Linux hosts are checked round the clock
|
||||
check_interval 5 ; Actively check the host every 5 minutes
|
||||
retry_interval 1 ; Schedule host check retries at 1 minute intervals
|
||||
max_check_attempts 10 ; Check each Linux host 10 times (max)
|
||||
check_command check-host-alive ; Default command to check Linux hosts
|
||||
notification_period workhours ; Linux admins hate to be woken up, so we only notify during the day
|
||||
; Note that the notification_period variable is being overridden from
|
||||
; the value that is inherited from the generic-host template!
|
||||
notification_interval 120 ; Resend notifications every 2 hours
|
||||
notification_options d,u,r ; Only send notifications for specific host states
|
||||
contact_groups admins ; Notifications get sent to the admins by default
|
||||
register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
|
||||
}
|
||||
|
||||
|
||||
|
||||
# Windows host definition template - This is NOT a real host, just a template!
|
||||
|
||||
define host{
|
||||
name windows-server ; The name of this host template
|
||||
use generic-host ; Inherit default values from the generic-host template
|
||||
check_period 24x7 ; By default, Windows servers are monitored round the clock
|
||||
check_interval 5 ; Actively check the server every 5 minutes
|
||||
retry_interval 1 ; Schedule host check retries at 1 minute intervals
|
||||
max_check_attempts 10 ; Check each server 10 times (max)
|
||||
check_command check-host-alive ; Default command to check if servers are "alive"
|
||||
notification_period 24x7 ; Send notification out at any time - day or night
|
||||
notification_interval 30 ; Resend notifications every 30 minutes
|
||||
notification_options d,r ; Only send notifications for specific host states
|
||||
contact_groups admins ; Notifications get sent to the admins by default
|
||||
hostgroups windows-servers ; Host groups that Windows servers should be a member of
|
||||
register 0 ; DONT REGISTER THIS - ITS JUST A TEMPLATE
|
||||
}
|
||||
|
||||
|
||||
# We define a generic printer template that can be used for most printers we monitor
|
||||
|
||||
define host{
|
||||
name generic-printer ; The name of this host template
|
||||
use generic-host ; Inherit default values from the generic-host template
|
||||
check_period 24x7 ; By default, printers are monitored round the clock
|
||||
check_interval 5 ; Actively check the printer every 5 minutes
|
||||
retry_interval 1 ; Schedule host check retries at 1 minute intervals
|
||||
max_check_attempts 10 ; Check each printer 10 times (max)
|
||||
check_command check-host-alive ; Default command to check if printers are "alive"
|
||||
notification_period workhours ; Printers are only used during the workday
|
||||
notification_interval 30 ; Resend notifications every 30 minutes
|
||||
notification_options d,r ; Only send notifications for specific host states
|
||||
contact_groups admins ; Notifications get sent to the admins by default
|
||||
register 0 ; DONT REGISTER THIS - ITS JUST A TEMPLATE
|
||||
}
|
||||
|
||||
|
||||
# Define a template for switches that we can reuse
|
||||
define host{
|
||||
name generic-switch ; The name of this host template
|
||||
use generic-host ; Inherit default values from the generic-host template
|
||||
check_period 24x7 ; By default, switches are monitored round the clock
|
||||
check_interval 5 ; Switches are checked every 5 minutes
|
||||
retry_interval 1 ; Schedule host check retries at 1 minute intervals
|
||||
max_check_attempts 10 ; Check each switch 10 times (max)
|
||||
check_command check-host-alive ; Default command to check if routers are "alive"
|
||||
notification_period 24x7 ; Send notifications at any time
|
||||
notification_interval 30 ; Resend notifications every 30 minutes
|
||||
notification_options d,r ; Only send notifications for specific host states
|
||||
contact_groups admins ; Notifications get sent to the admins by default
|
||||
register 0 ; DONT REGISTER THIS - ITS JUST A TEMPLATE
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
#
|
||||
# SERVICE TEMPLATES
|
||||
#
|
||||
###############################################################################
|
||||
###############################################################################
|
||||
|
||||
# Generic service definition template - This is NOT a real service, just a template!
|
||||
|
||||
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
|
||||
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
|
||||
is_volatile 0 ; The service is not volatile
|
||||
check_period 24x7 ; The service can be checked at any time of the day
|
||||
max_check_attempts 3 ; Re-check the service up to 3 times in order to determine its final (hard) state
|
||||
check_interval 10 ; Check the service every 10 minutes under normal conditions
|
||||
retry_interval 2 ; Re-check the service every two minutes until a hard state can be determined
|
||||
contact_groups admins ; Notifications get sent out to everyone in the 'admins' group
|
||||
notification_options w,u,c,r ; Send notifications about warning, unknown, critical, and recovery events
|
||||
notification_interval 60 ; Re-notify about service problems every hour
|
||||
notification_period 24x7 ; Notifications can be sent out at any time
|
||||
register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!
|
||||
}
|
||||
|
||||
|
||||
# Local service definition template - This is NOT a real service, just a template!
|
||||
|
||||
define service{
|
||||
name local-service ; The name of this service template
|
||||
use generic-service ; Inherit default values from the generic-service definition
|
||||
max_check_attempts 4 ; Re-check the service up to 4 times in order to determine its final (hard) state
|
||||
check_interval 5 ; Check the service every 5 minutes under normal conditions
|
||||
retry_interval 1 ; Re-check the service every minute until a hard state can be determined
|
||||
register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!
|
||||
}
|
||||
|
||||
define service {
|
||||
name graphed-service
|
||||
action_url /cgi-bin/show.cgi?host=$HOSTNAME$&service=$SERVICEDESC$' onMouseOver='showGraphPopup(this)' onMouseOut='hideGraphPopup()' rel='/cgi-bin/showgraph.cgi?host=$HOSTNAME$&service=$SERVICEDESC$&period=day&rrdopts=-w+450+-j
|
||||
register 0
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
#!/bin/bash
|
||||
# Author: Tomasz Matejunas
|
||||
# Email: tm@digitaloak.it
|
||||
# Website: digitaloak.it
|
||||
|
||||
# Description
|
||||
# Script fixes problem with not working multiple selection for nagiosgraph datasets and periods.
|
||||
|
||||
# Run script from the same directory as ngshared.pm.
|
||||
|
||||
sed -e 's/$cgi->td($cgi->popup_menu(-name => '\''period'\'', -values => \[@PERIOD_KEYS\], -labels => \\%period_labels, -size => PERIODLISTROWS, -multiple => 1)), "\\n",/$cgi->td($cgi->popup_menu(-name => '\''period'\'', -values => \[@PERIOD_KEYS\], -labels => \\%period_labels, -size => PERIODLISTROWS, -multiple)), "\\n",/' ngshared.pm > ngshared.pm2
|
||||
rm ngshared.pm
|
||||
mv ngshared.pm2 ngshared.pm
|
||||
|
||||
sed -e 's/$cgi->td($cgi->popup_menu(-name => '\''db'\'', -values => \[\], -size => DBLISTROWS, -multiple => 1)), "\\n",/$cgi->td($cgi->popup_menu(-name => '\''db'\'', -values => \[\], -size => DBLISTROWS, -multiple)), "\\n",/' ngshared.pm > ngshared.pm2
|
||||
rm ngshared.pm
|
||||
mv ngshared.pm2 ngshared.pm
|
|
@ -0,0 +1,46 @@
|
|||
#!/bin/bash
|
||||
|
||||
# adapted from https://github.com/discourse/discourse_docker/blob/master/image/base/boot
|
||||
# this script becomes PID 1 inside the container, catches termination signals, and stops
|
||||
# processes managed by runit
|
||||
|
||||
if [ -z "$(ls -A /opt/nagios/etc)" ]; then
|
||||
echo "Started with empty ETC, copying example data in-place"
|
||||
cp -Rp /orig/etc/* /opt/nagios/etc/
|
||||
fi
|
||||
|
||||
if [ -z "$(ls -A /opt/nagios/var)" ]; then
|
||||
echo "Started with empty VAR, copying example data in-place"
|
||||
cp -Rp /orig/var/* /opt/nagios/var/
|
||||
fi
|
||||
|
||||
if [ ! -f "${NAGIOS_HOME}/etc/htpasswd.users" ] ; then
|
||||
htpasswd -c -b -s "${NAGIOS_HOME}/etc/htpasswd.users" "${NAGIOSADMIN_USER}" "${NAGIOSADMIN_PASS}"
|
||||
chown -R ${NAGIOS_USER}.${NAGIOS_GROUP} "${NAGIOS_HOME}/etc/htpasswd.users"
|
||||
fi
|
||||
|
||||
shutdown() {
|
||||
echo Shutting Down
|
||||
ls /etc/service | SHELL=/bin/sh parallel --no-notice sv force-stop {}
|
||||
if [ -e "/proc/${RUNSVDIR}" ]; then
|
||||
kill -HUP "${RUNSVDIR}"
|
||||
wait "${RUNSVDIR}"
|
||||
fi
|
||||
|
||||
# give stuff a bit of time to finish
|
||||
sleep 1
|
||||
|
||||
ORPHANS=$(ps -eo pid= | tr -d ' ' | grep -Fxv 1)
|
||||
SHELL=/bin/bash parallel --no-notice 'timeout 5 /bin/bash -c "kill {} && wait {}" || kill -9 {}' ::: "${ORPHANS}" 2> /dev/null
|
||||
exit
|
||||
}
|
||||
|
||||
exec runsvdir -P /etc/service &
|
||||
RUNSVDIR=$!
|
||||
echo "Started runsvdir, PID is ${RUNSVDIR}"
|
||||
|
||||
trap shutdown SIGTERM SIGHUP SIGINT
|
||||
wait "${RUNSVDIR}"
|
||||
|
||||
shutdown
|
||||
|
Loading…
Reference in New Issue