Commit cca2113d8cf91053f881024491fef621c1ca2a61

Authored by Frederik Lindenaar
1 parent 5458527c

added cgi-bin/nagiosstatus.sh

README.md
1 1 nagios-plugins
2 2 ==============
3 3 This repository contains my collection of modified and custom written check
4   -plugins for [Nagios](http://www.nagios.org).
  4 +plugins and scripts for [Nagios](http://www.nagios.org).
5 5  
6   -Most of these are modified versions of standard plugins or very custom so
7   -distributing them through [NagiosExchange](https://exchange.nagios.org/) is
  6 +Most of these are very custom solutions or modified versions of standard plugins
  7 +so distributing them through [NagiosExchange](https://exchange.nagios.org/) is
8 8 not really appropriate. I am publishing them separately so that others may
9 9 benefit from these as well. Use them freely and please let me know is you
10 10 encounter any issues or require changes.
... ... @@ -18,7 +18,7 @@ License, see [below](#license)
18 18  
19 19 plugins/check_memory
20 20 --------------------
21   -nagios check script to monitor the memory on Linux systems. Due to changes in
  21 +Nagios check script to monitor the memory on Linux systems. Due to changes in
22 22 the output of procps v3.3 (the changelog refers to it as modernizing it), it's
23 23 output changed and breaks the the check_memory script as shipped with many linux
24 24 distributions. This version supports both the old and the new format so that
... ... @@ -26,6 +26,20 @@ is indifferent of which version of procps (to date) is used. No other changes
26 26 were made to the script.
27 27  
28 28  
  29 +cgi-bin/nagiosstatus.sh
  30 +-----------------------
  31 +Very simplistic CGI-BIN script that checkes whether nagios is still running and
  32 +still updating its status. It wil always return an HTTP Status 200 (OK) and a
  33 +simple text page with one of the following texts:
  34 + - STOPPED - in case the nagios process is not running
  35 + - STALLED - in case the nagios status file has not been updated for 5 minutes
  36 + - OK - when Nagios is running and updated its status file < 5 minutes ago
  37 +
  38 +I wrote this script to be used with an external monitoring system, I use it with
  39 +the free subscription from [Pingdom](http://www.pingdom.com) to get alerts when
  40 +my Nagios monitoring system is no longer reachable.
  41 +
  42 +
29 43 <a name="license">License</a>
30 44 -----------------------------
31 45 These scripts, documentation & configration examples are free software: you can
... ...
cgi-bin/nagiosstatus.sh 0 → 100755
  1 +#!/bin/bash
  2 +#
  3 +# nagiosstatus.sh - simple CGI-BIN script checking the Nagios process status
  4 +#
  5 +# Version 1.0, latest version, documentation and bugtracker available at:
  6 +# https://gitlab.lindenaar.net/scripts/nagios-plugins
  7 +#
  8 +# Copyright (c) 2015 Frederik Lindenaar
  9 +#
  10 +# This script is free software: you can redistribute and/or modify it under the
  11 +# terms of version 3 of the GNU General Public License as published by the Free
  12 +# Software Foundation, or (at your option) any later version of the license.
  13 +#
  14 +# This script is distributed in the hope that it will be useful but WITHOUT ANY
  15 +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
  16 +# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
  17 +#
  18 +# You should have received a copy of the GNU General Public License along with
  19 +# this program. If not, visit <http://www.gnu.org/licenses/> to download it.
  20 +
  21 +# Default settings for Debian Linux, adjust for your system if necessary
  22 +PROGRAM=nagios3
  23 +PIDFILE=/var/run/nagios3/nagios3.pid
  24 +STATFILE=/var/cache/nagios3/status.dat
  25 +MAXAGE="5 minutes"
  26 +
  27 +# First output the HTTP header
  28 +DATE=`date -R`
  29 +cat << EOH
  30 +Status: 200 OK
  31 +Content-Type: text/plain
  32 +Date: $DATE
  33 +Expires: $DATE
  34 +Last-Modified: $DATE
  35 +Cache-Control: no-cache
  36 +Connection: close
  37 +
  38 +EOH
  39 +
  40 +# Check whether the process is running
  41 +if [ -f "$PIDFILE" -a "$PROGRAM" = `ps --no-header -o comm -p \`cat $PIDFILE\`` ]; then
  42 + # It's running, check whether the Statfile exists and is recent
  43 + if [ -n "$STATFILE" -a -n "$MAXAGE" -a -f "$STATFILE" -a \
  44 + `stat -c %Y $STATFILE` -lt `date +%s -d "$MAXAGE ago"` ]; then
  45 + echo STALLED
  46 + else
  47 + echo OK
  48 + fi
  49 +else
  50 + echo STOPPED
  51 +fi
  52 +
... ...