From ed63fa91403589be54ae0c0ab8cb874abb4f5441 Mon Sep 17 00:00:00 2001 From: Frederik Lindenaar <frederik@lindenaar.nl> Date: Sun, 2 Aug 2015 19:35:50 +0200 Subject: [PATCH] Added check_multiple_host_addresses as I stil had that laying around somewhere --- README.md | 40 +++++++++++++++++++++++++++++++++++++--- plugins/check_multiple_host_addresses | 28 ++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 3 deletions(-) create mode 100755 plugins/check_multiple_host_addresses diff --git a/README.md b/README.md index 484945d..a9362ac 100644 --- a/README.md +++ b/README.md @@ -26,14 +26,48 @@ is indifferent of which version of procps (to date) is used. No other changes were made to the script. +plugins/plugins/check_multiple_host_addresses +--------------------------------------------- +This script is a first attempt to monitor multi-home and dual-stack (i.e. ipv4 +and ipv6) servers. In my setup a server should only considered availble if it is +available on all of its primary addresses (i.e. both ipv4 and ipv6). It uses the +excellent check_multi script to perform multiple a ping check to see if a host +is available and reports the consolidated status. Using check_multi has the +advantage that pnp4nagios and other scripting graphing solutions will support +this solution as well. + +Installation is straightforward, after installing the script on your server, add +the following to your `commands.cmd` configuration file to make it available: +~~~ + # 'check-host-alive' command definition for multi-homed/dual-stack servers + define command{ + command_name check-addresses-alive + command_line [install_path]/plugins/check_multiplehost_addresses '$HOSTADDRESS$' '$_HOSTADDRESS6$' + } +~~~ +The example above assumes that the IPv6 address of the host is provided as part +of the host configuration, i.e.: +~~~ + define host { + ... + address 192.168.0.1 + _address6 fdf8:f340:ab9d:c213::1 + ... + } +~~~ +To use the script either add ` check_command check-addresses-alive` +to the specific hosts that should use the check or to the generic host used as +template. + + cgi-bin/nagiosstatus.sh ----------------------- Very simplistic CGI-BIN script that checkes whether nagios is still running and still updating its status. It wil always return an HTTP Status 200 (OK) and a simple text page with one of the following texts: - - STOPPED - in case the nagios process is not running - - STALLED - in case the nagios status file has not been updated for 5 minutes - - OK - when Nagios is running and updated its status file < 5 minutes ago + - `STOPPED` - in case the nagios process is not running + - `STALLED` - in case the nagios status file has not been updated for 5 minutes + - `OK` - when Nagios is running and updated its status file < 5 minutes ago I wrote this script to be used with an external monitoring system, I use it with the free subscription from [Pingdom](http://www.pingdom.com) to get alerts when diff --git a/plugins/check_multiple_host_addresses b/plugins/check_multiple_host_addresses new file mode 100755 index 0000000..c037d98 --- /dev/null +++ b/plugins/check_multiple_host_addresses @@ -0,0 +1,28 @@ +#!/bin/bash + +# check_multiple_host_addresses - first attempt to implement a host check for +# multi-homed/dual-stack servers +# +# Version 1.0, latest version, documentation and bugtracker available at: +# https://gitlab.lindenaar.net/scripts/nagios-plugins +# +# Copyright (c) 2015 Frederik Lindenaar +# +# This script is free software: you can redistribute and/or modify it under the +# terms of version 3 of the GNU General Public License as published by the Free +# Software Foundation, or (at your option) any later version of the license. +# +# This script 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, visit <http://www.gnu.org/licenses/> to download it. + +# Usage: check_host_addresses addr1 addr2 addr3 + +(for addr in $* +do + echo command[$addr]=/usr/lib/nagios/plugins/check_ping -H $addr -w 5000,100% -c 5000,100% -p 1 +done ) | /usr/lib/nagios/plugins/check_multi -f - -n check_ping + -- libgit2 0.22.2