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