Date: Fri, 8 Aug 2014 22:41:04 +0000 (UTC) From: John Marino <marino@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r364391 - in head/net-mgmt: . nagios-check_relayd_status nagios-check_relayd_status/files Message-ID: <53e55200.295c.46af0c28@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: marino Date: Fri Aug 8 22:41:03 2014 New Revision: 364391 URL: http://svnweb.freebsd.org/changeset/ports/364391 QAT: https://qat.redports.org/buildarchive/r364391/ Log: Add new port net-mgmt/nagio-check_relayd_status PR: 184375 Submitted by: rand (iteris.com) ================================================================ A plugin for Nagios to query relayd status. It returns a warning if not all hosts in a table are up and a critical if a table and/or redirect is totally down. Added: head/net-mgmt/nagios-check_relayd_status/ head/net-mgmt/nagios-check_relayd_status/Makefile (contents, props changed) head/net-mgmt/nagios-check_relayd_status/files/ head/net-mgmt/nagios-check_relayd_status/files/check_relayd_status (contents, props changed) head/net-mgmt/nagios-check_relayd_status/pkg-descr (contents, props changed) head/net-mgmt/nagios-check_relayd_status/pkg-plist (contents, props changed) Modified: head/net-mgmt/Makefile Modified: head/net-mgmt/Makefile ============================================================================== --- head/net-mgmt/Makefile Fri Aug 8 21:36:33 2014 (r364390) +++ head/net-mgmt/Makefile Fri Aug 8 22:41:03 2014 (r364391) @@ -129,6 +129,7 @@ SUBDIR += nagios-check_netsnmp SUBDIR += nagios-check_ports SUBDIR += nagios-check_postgres + SUBDIR += nagios-check_relayd_status SUBDIR += nagios-check_puppet SUBDIR += nagios-check_smartmon SUBDIR += nagios-check_tftp Added: head/net-mgmt/nagios-check_relayd_status/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net-mgmt/nagios-check_relayd_status/Makefile Fri Aug 8 22:41:03 2014 (r364391) @@ -0,0 +1,31 @@ +# Created by: Douglas K. Rand <rand@iteris.com> +# $FreeBSD$ + +PORTNAME= check_relayd_status +PORTVERSION= 1.1 +CATEGORIES= net-mgmt +MASTER_SITES= # none +PKGNAMEPREFIX= nagios- +DISTFILES= # none + +MAINTAINER= rand@iteris.com +COMMENT= Nagios plug-in to check on the status of relayd + +LICENSE= MPL + +RUN_DEPENDS= ${LOCALBASE}/sbin/relayctl:${PORTSDIR}/net/relayd + +USES= perl5 shebangfix +USE_PERL5= run +SHEBANG_FILES= check_relayd_status +NO_BUILD= yes + +do-extract: + @${MKDIR} ${WRKSRC} + ${INSTALL_SCRIPT} ${FILESDIR}/check_relayd_status ${WRKSRC} + +do-install: + @${MKDIR} ${STAGEDIR}${PREFIX}/libexec/nagios + ${INSTALL_SCRIPT} ${WRKSRC}/check_relayd_status ${STAGEDIR}${PREFIX}/libexec/nagios/ + +.include <bsd.port.mk> Added: head/net-mgmt/nagios-check_relayd_status/files/check_relayd_status ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net-mgmt/nagios-check_relayd_status/files/check_relayd_status Fri Aug 8 22:41:03 2014 (r364391) @@ -0,0 +1,184 @@ +#!/usr/bin/perl + +# -------------------------------------------------------------------- +# **** BEGIN LICENSE BLOCK ***** +# +# Version: MPL 1.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is echocat management. +# +# The Initial Developer of the Original Code is Daniel Werdermann. +# Portions created by the Initial Developer are Copyright (C) 2011 +# the Initial Developer. All Rights Reserved. +# +# **** END LICENSE BLOCK ***** +# -------------------------------------------------------------------- + +# -------------------------------------------------------------------- +# Check for specified pattern in commandoutput +# +# @author: Daniel Werdermann / dwerdermann@web.de +# @version: 1.1 +# @date: Thu Oct 23 14:31:52 CEST 2008 +# +# changes 1.1 +# - add license information +# -------------------------------------------------------------------- + +use strict; +use warnings; +use Getopt::Long; + +my $help; +my $redirect; +my $table; + +my $command = "/usr/local/sbin/relayctl"; +my $parameter = "show summary"; + +GetOptions ( + "help" => \$help, + "redirect=s" => \$redirect, + "table=s" => \$table, +); + +usage() if $help; + +sub usage { + print << "EOF" +Usage: $0 --help + $0 [--redirect STRING] [--table STRING] + +This script checks the OpenBSD relayd. It returns a warning +if not all hosts in a table are up and a critical if a table +and/or redirect is totally down. + +Options: + --help + Print detailed this screen + --redirect STRING + String with name of redirect to check. Multiple redirects + can be seperated by comma + --table STRING + String with name of table to check. Multiple tabless + can be seperated by comma + +Examples: + $0 + + Checks if all redirects, tables and hosts which are + defined at the relayd startup are active. + + $0 --redirect smtp --table pmtahost,pmtahostfallback + + Checks if the specified redirects and tables exists. + Besides there will be an alert if any other redirect + or table defined in the checked relayd is not active. + Or if any hosts are down. + + This plugin is NOT developped by the Nagios Plugin group. + Please do not e-mail them for support on this plugin, since + they won't know what you're talking about. + + For contact info, read the plugin itself... + +EOF +; + exit(2); +} + +my %cnt_redirects; +if (defined $redirect) { + foreach ( split(/,/, $redirect) ) { + $cnt_redirects{$_} = 0; + } +} + +my %cnt_tables; +if (defined $table) { + foreach ( split(/,/, $table) ) { + $cnt_tables{$_} = 0; + } +} + +my %cnt_hosts = ( + 'down' => 0, + 'up' => 0 +); + + +if (! -x $command) { + print "CRITICAL: Cannot execute command: '$command'"; + exit(2); +} + +my @execute = ($command, $parameter); + +# make unbuffered output +$|=1; +open STDERR, ">&STDOUT" or die "Can’t dup STDOUT: $!"; + +eval { + my @return = split(/\n/, `@execute`) + or die "command returns an errorcode $?: '@execute'"; + + foreach ( @return ) { + chomp; + if (/up$/) { $cnt_hosts{'up'}++ ; next; } + if (/down$/ or /disabled$/) { $cnt_hosts{'down'}++ ; next; } + if (/\d+\s+redirect\s+(.*?)\s+active$/) { + $cnt_redirects{$1}++; + next; + } + if (/\d+\s+table\s+(.*?)\s+(.*?)\s/) { + $cnt_tables{$1} = $2; + next; + } + } + + if ( $cnt_hosts{'up'} == 0 ) { + print "CRITICAL: relayd does not find any hosts up\n"; + exit(2); + } + + for my $red ( keys %cnt_redirects ) { + if ( $cnt_redirects{$red} == 0 ) { + print "CRITICAL: Redirect $red is not active\n"; + exit(2); + } + } + + for my $tab ( keys %cnt_tables ) { + if ( $cnt_tables{$tab} ne "active" ) { + print "CRITICAL: Table $tab is not active\n"; + exit(2); + } + } + + if ( $cnt_hosts{'down'} != 0 ) { + print "WARNING: relayd cannot reach all hosts. $cnt_hosts{'down'} hosts are down or disabled\n"; + exit(1); + } + + print "OK: nothing obvious in '@execute'"; + exit(0); +}; + +if ($@) { + print "CRITICAL: $@"; + exit(2); +} + +print "OK: no critical or warning patterns found"; +exit(0); + Added: head/net-mgmt/nagios-check_relayd_status/pkg-descr ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net-mgmt/nagios-check_relayd_status/pkg-descr Fri Aug 8 22:41:03 2014 (r364391) @@ -0,0 +1,5 @@ +A plugin for Nagios to query relayd status. It returns a warning if not +all hosts in a table are up and a critical if a table and/or redirect +is totally down. + +Author: Daniel Werdermann <dwerdermann@web.de> Added: head/net-mgmt/nagios-check_relayd_status/pkg-plist ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net-mgmt/nagios-check_relayd_status/pkg-plist Fri Aug 8 22:41:03 2014 (r364391) @@ -0,0 +1,2 @@ +libexec/nagios/check_relayd_status +@dirrmtry libexec/nagios
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?53e55200.295c.46af0c28>