1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-21 00:25:50 +00:00

New port: net-mgmt/victorops-nagios

VictorOps is an on-call management and incident notification service.
This is the Nagios/Icinga integration package for VictorOps.

WWW: http://www.victorops.com

PR:		191383
Submitted by:	rand@iteris.com
This commit is contained in:
Kurt Jaeger 2014-08-09 09:49:49 +00:00
parent 3d08c567d6
commit 1715b498a2
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=364420
15 changed files with 250 additions and 0 deletions

View File

@ -323,6 +323,7 @@
SUBDIR += torrus
SUBDIR += unifi2
SUBDIR += unifi3
SUBDIR += victorops-nagios
SUBDIR += vidalia
SUBDIR += virt-viewer
SUBDIR += virtinst

View File

@ -0,0 +1,49 @@
# Created by: Douglas K. Rand <rand@iteris.com>
# $FreeBSD$
PORTNAME= victorops-nagios
PORTVERSION= 1.1.8
CATEGORIES= net-mgmt
MASTER_SITES= http://software.victorops.com/
DISTNAME= ${PORTNAME}_${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}
MAINTAINER= rand@iteris.com
COMMENT= Nagios integration for VictorOps incident notification service
NO_WRKSUBDIR= YES
NO_BUILD= YES
RESTRICTED= Redistribution of software prohibited by VictorOps
OPTIONS_DEFINE= QPAGE
OPTIONS_DEFAULT=
QPAGE_DESC= Integrate qpage for victorops server problems
RUN_DEPENDS+= bash:${PORTSDIR}/shells/bash
.include <bsd.port.options.mk>
.if ${PORT_OPTIONS:MQPAGE}
RUN_DEPENDS+= qpage:${PORTSDIR}/comms/qpage
EXTRA_PATCHES+= ${FILESDIR}/qpage-patch
.endif
post-patch:
@${FIND} ${WRKSRC} -type f | ${XARGS} ${REINPLACE_CMD} \
-e '1s|#!/bin/bash|#!/usr/local/bin/bash|'
do-install:
${MKDIR} ${STAGEDIR}${PREFIX}/etc/periodic/daily
${INSTALL_DATA} ${WRKSRC}/etc/cron.daily/victorops ${STAGEDIR}${PREFIX}/etc/periodic/daily/400.victorops
${MKDIR} ${STAGEDIR}${PREFIX}/etc/nagios
.for i in victorops victorops_email vo_test_svc vo_test_svc_cmd
${INSTALL_DATA} ${WRKSRC}/opt/victorops/nagios_plugin/nagios_conf/${i}.cfg ${STAGEDIR}${PREFIX}/etc/nagios/${i}.cfg-sample
.endfor
${MKDIR} ${STAGEDIR}${PREFIX}/libexec/victorops
.for i in check_test_svc check_victorops_cmds check_victorops_forwarder \
do_victorops_heartbeat enqueue_alert forward_alert_file forward_alerts \
send_email_alert send_status stop_forwarder support_collect.sh \
url_encode.sed utils
${INSTALL_SCRIPT} ${WRKSRC}/opt/victorops/nagios_plugin/bin/${i} ${STAGEDIR}${PREFIX}/libexec/victorops/${i}
.endfor
.include <bsd.port.mk>

View File

@ -0,0 +1,2 @@
SHA256 (victorops-nagios_1.1.8.tar.gz) = 796e146552e27b45d0339c9c74883ba8048125887461f9e69a1e36cbd752e1a2
SIZE (victorops-nagios_1.1.8.tar.gz) = 12838

View File

@ -0,0 +1,11 @@
--- opt/victorops/nagios_plugin/bin/check_victorops_cmds.orig 2014-06-11 10:22:45.587219788 -0500
+++ opt/victorops/nagios_plugin/bin/check_victorops_cmds 2014-06-11 12:37:39.711662512 -0500
@@ -46,7 +46,7 @@
TMP_FILE=$(mktemp)
# Get the commands from VictorOps
- wget -T $TIMEOUT -t $TRIES --no-verbose -O $TMP_FILE "$URL"
+ $WGET -T $TIMEOUT -t $TRIES --no-verbose -O $TMP_FILE "$URL"
# Check the result, and if OK, send them to the command file
grep $RESULT_OK $TMP_FILE

View File

@ -0,0 +1,32 @@
--- opt/victorops/nagios_plugin/bin/check_victorops_forwarder.orig 2014-04-02 15:36:08.000000000 -0500
+++ opt/victorops/nagios_plugin/bin/check_victorops_forwarder 2014-06-15 16:34:11.635114340 -0500
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/local/bin/bash
if [ -x /usr/bin/dirname ]; then
. $(/usr/bin/dirname $0)/utils
@@ -10,7 +10,7 @@
verifyEnvironment
-QUEUE=/var/nagios
+QUEUE=/var/spool/nagios/victorops/alerts
LOG=/var/log/victorops/forward_alerts.log
DEBUG_FILE=/dev/null
while getopts "l:q:" flag
@@ -27,7 +27,13 @@
FORWARDER=$($DIRNAME $BASH_SOURCE)/forward_alerts
PID_FILE=/tmp/victorops_forward_alerts.pid
-FORWARDER_COUNT=$($PS -eaf | $GREP -v grep | $GREP "$FORWARDER" | $WC -l 2>/dev/null)
+if [ ! -e $PID_FILE ]; then
+ PID=9999999999
+else
+ PID=$($CAT $PID_FILE)
+fi
+
+FORWARDER_COUNT=$($PS -ww -p $PID | $GREP "$FORWARDER" | $WC -l 2>/dev/null)
if (( $FORWARDER_COUNT == 0 )); then
echo "$($DATE) Starting $FORWARDER" >> "$LOG"
$FORWARDER "$QUEUE" >> "$LOG" 2>&1 &

View File

@ -0,0 +1,11 @@
--- opt/victorops/nagios_plugin/bin/do_victorops_heartbeat.orig 2014-06-11 10:25:17.252208492 -0500
+++ opt/victorops/nagios_plugin/bin/do_victorops_heartbeat 2014-06-11 10:29:51.392206330 -0500
@@ -44,7 +44,7 @@
fi
# guess Distro
-DISTRO=$(/usr/bin/lsb_release -d 2>/dev/null | $SED 's/.*:[[:space:]]*//')
+DISTRO=$(/usr/bin/uname -or 2>/dev/null | $SED 's/.*:[[:space:]]*//')
if [ "$DISTRO" = "" ]; then
DISTRO=$($CAT /etc/*release | $HEAD -1)
fi

View File

@ -0,0 +1,14 @@
--- opt/victorops/nagios_plugin/bin/enqueue_alert.orig 2014-06-11 10:34:56.607169001 -0500
+++ opt/victorops/nagios_plugin/bin/enqueue_alert 2014-06-11 10:35:58.757671279 -0500
@@ -15,9 +15,9 @@
# Get the queue dir from the alert info in the environment vars.
# If it's empty, use a default.
# The queue dir can also be given on the command line.
-QUEUE_DIR="$(getVal _CONTACTVO_QUEUE_DIR /var/nagios)"
+QUEUE_DIR="$(getVal _CONTACTVO_QUEUE_DIR /var/spool/nagios/victorops/alerts)"
if [ -z "$QUEUE_DIR" ]; then
- QUEUE_DIR=/var/nagios
+ QUEUE_DIR=/var/spool/nagios/victorops/alerts
fi
if [ ! -z "$1" ]; then
QUEUE_DIR=$1

View File

@ -0,0 +1,11 @@
--- opt/victorops/nagios_plugin/bin/forward_alerts.orig 2014-06-11 10:38:17.374154833 -0500
+++ opt/victorops/nagios_plugin/bin/forward_alerts 2014-06-11 10:38:59.844409788 -0500
@@ -18,7 +18,7 @@
QUEUE_DIR=$1
fi
if [ -z "$QUEUE_DIR" ]; then
- QUEUE_DIR=/var/nagios
+ QUEUE_DIR=/var/spool/nagios/victorops/alerts
fi
DONE_DIR=$QUEUE_DIR/forwarded
EMAILED_DIR=$QUEUE_DIR/emailed

View File

@ -0,0 +1,13 @@
--- opt/victorops/nagios_plugin/bin/support_collect.sh.orig 2014-06-11 11:24:28.858964094 -0500
+++ opt/victorops/nagios_plugin/bin/support_collect.sh 2014-06-11 11:25:03.784958472 -0500
@@ -11,8 +11,8 @@
TARBALL=$($DATE +%Y%m%d-%H%M)-victorops.tgz
SUPPORT=support@victorops.com
-echo $TAR -cz -f $TARBALL /var/log/victorops /var/nagios
-$TAR -cz -f $TARBALL /var/log/victorops /var/nagios
+echo $TAR -cz -f $TARBALL /var/log/victorops /var/spool/nagios/victorops/alerts
+$TAR -cz -f $TARBALL /var/log/victorops /var/spool/nagios/victorops/alerts
if [ -e "$MUTT" ]; then
echo

View File

@ -0,0 +1,21 @@
--- opt/victorops/nagios_plugin/bin/utils.orig 2014-06-11 11:25:07.834962605 -0500
+++ opt/victorops/nagios_plugin/bin/utils 2014-06-11 11:26:48.367951852 -0500
@@ -46,7 +46,8 @@
function findStatusFile {
local f="$1"
if [ -z "$f" ]; then
- echo "STATUSDATAFILE is empty" >> $DEBUG_FILE
+ echo "STATUSDATAFILE($f) is empty" >> $DEBUG_FILE
+ echo "Looking for STATUS file in $2" >> $DEBUG_FILE
f=$($GREP "^status_file=" $2 | $SED 's/.*=//')
fi
if [ -z "$f" ]; then
@@ -82,6 +83,8 @@
APP=/bin/$1
elif [ -x /usr/bin/$1 ]; then
APP=/usr/bin/$1
+ elif [ -x /usr/local/bin/$1 ]; then
+ APP=/usr/local/bin/$1
else
APP=$1
fi

View File

@ -0,0 +1,10 @@
--- etc/cron.daily/victorops.orig 2014-06-11 12:49:42.035618811 -0500
+++ etc/cron.daily/victorops 2014-06-11 12:50:57.241605821 -0500
@@ -1,5 +1,5 @@
#!/bin/sh
# Clean up old alerts
-/usr/bin/find /var/nagios/emailed/ -mtime +7 -type f -delete
-/usr/bin/find /var/nagios/forwarded/ -mtime +7 -type f -delete
+/usr/bin/find /var/spool/nagios/victorops/alerts/emailed/ -mtime +7 -type f -delete
+/usr/bin/find /var/spool/nagios/victorops/alerts/forwarded/ -mtime +7 -type f -delete

View File

@ -0,0 +1,38 @@
--- opt/victorops/nagios_plugin/bin/send_email_alert.orig 2014-06-11 10:39:13.918151547 -0500
+++ opt/victorops/nagios_plugin/bin/send_email_alert 2014-06-11 11:20:43.930977406 -0500
@@ -31,6 +31,7 @@
# Build the contact email list
ORG_SLUG="$(getVal _CONTACTVO_ORGANIZATION_ID unkonwn_org)"
CONTACTEMAIL="$(getVal _CONTACTVO_CONTACTEMAIL)"
+CONTACTPAGER="$(getVal CONTACTPAGER)"
VO_CONTACT="failsafe+$ORG_SLUG@victorops.net"
WGET_LOG=/tmp/victorops_forward_wget.out
STDERR_LOG=/tmp/victorops_forward_wget.err
@@ -42,10 +43,16 @@
if [ "$CONTACTEMAIL" != "" ]; then
$PRINTF "%b" "***** Alert *****\n\nNotification Type: $(getVal NOTIFICATIONTYPE)\n\nService: $(getVal SERVICEDESC)\nHost: $(getVal HOSTALIAS)\nAddress: $(getVal HOSTADDRESS)\nState: $(getVal SERVICESTATE)\n\nDate/Time: $(getVal LONGDATETIME)\n\nAdditional Info:\n\n$(getVal SERVICEOUTPUT)\n\n" | $MAIL -s "** $(getVal NOTIFICATIONTYPE) Service Alert: $(getVal HOSTALIAS)/$(getVal SERVICEDESC) is $(getVal SERVICESTATE) **" $CONTACTEMAIL
fi
+ if [ "$CONTACTPAGER" != "" ]; then
+ $PRINTF "%b" "$(getVal SERVICEDESC) $(getVal NOTIFICATIONTYPE) for $(getVal HOSTNAME) is $(getVal SERVICESTATE) at $(getVal TIME) $(getVal SERVICEOUTPUT)" | $QPAGE -f icinga $CONTACTPAGER
+ fi
else
if [ "$CONTACTEMAIL" != "" ]; then
$PRINTF "%b" "***** Alert *****\n\nNotification Type: $(getVal NOTIFICATIONTYPE)\nHost: $(getVal HOSTNAME)\nState: $(getVal HOSTSTATE)\nAddress: $(getVal HOSTADDRESS)\nInfo: $(getVal HOSTOUTPUT)\n\nDate/Time: $(getVal LONGDATETIME)\n" | $MAIL -s "** $(getVal NOTIFICATIONTYPE) Host Alert: $(getVal HOSTNAME) is $(getVal HOSTSTATE) **" $CONTACTEMAIL
fi
+ if [ "$CONTACTPAGER" != "" ]; then
+ $PRINTF "%b" "$(getVal HOSTNAME) is $(getVal HOSTSTATE) at $(getVal TIME) -- $(getVal HOSTOUTPUT)" | $QPAGE -f icinga $CONTACTPAGER
+ fi
fi
# ***
# *** Make sure the mail command is the last thing in this file so the including file can check the exit code
--- opt/victorops/nagios_plugin/bin/utils.orig 2014-06-16 20:12:16.713013963 -0500
+++ opt/victorops/nagios_plugin/bin/utils 2014-06-16 20:12:58.533005832 -0500
@@ -110,6 +110,7 @@
MV=$(findApp mv)
PRINTF=$(findApp printf)
PS=$(findApp ps)
+QPAGE=$(findApp qpage)
SED=$(findApp sed)
SLEEP=$(findApp sleep)
TAR=$(findApp tar)

View File

@ -0,0 +1,4 @@
VictorOps is an on-call management and incident notification service.
This is the Nagios/Icinga integration package for VictorOps.
WWW: http://www.victorops.com

View File

@ -0,0 +1,11 @@
========================================================================
victorops-nagios requires that ca_root_nss be built with the option
ETCSYMLINK Add symlink to /etc/ssl/cert.pem
enabled. With out that option, wget will complain that VictorOps'
GoDaddy SSL certificate is a self-signed certificate, which will
prevent VictorOps from working.
========================================================================

View File

@ -0,0 +1,22 @@
etc/nagios/victorops.cfg-sample
etc/nagios/victorops_email.cfg-sample
etc/nagios/vo_test_svc.cfg-sample
etc/nagios/vo_test_svc_cmd.cfg-sample
etc/periodic/daily/400.victorops
libexec/victorops/check_test_svc
libexec/victorops/check_victorops_cmds
libexec/victorops/check_victorops_forwarder
libexec/victorops/do_victorops_heartbeat
libexec/victorops/enqueue_alert
libexec/victorops/forward_alert_file
libexec/victorops/forward_alerts
libexec/victorops/send_email_alert
libexec/victorops/send_status
libexec/victorops/stop_forwarder
libexec/victorops/support_collect.sh
libexec/victorops/url_encode.sed
libexec/victorops/utils
@dirrmtry etc/nagios
@dirrmtry libexec/victorops
@dirrmtry etc/periodic/daily
@dirrmtry etc/periodic