Commit cca2113d8cf91053f881024491fef621c1ca2a61
1 parent
5458527c
added cgi-bin/nagiosstatus.sh
Showing
2 changed files
with
70 additions
and
4 deletions
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 | + | |
| ... | ... |