Home Directory

Search Exchange

Search All Sites

Nagios Live Webinars

Let our experts show you how Nagios can help your organization.

Contact Us

Phone: 1-888-NAGIOS-1
Email: sales@nagios.com

Login

Remember Me

Directory Tree

Directory

vahidh

Reviews(1)
I will re-release this script with all of its requirements:

This script will convert output to html email and provide a html link to enable service/host

#!/bin/bash

DATE=$(date +%c)

NAGIOS_STATUS="/var/nagios/status.dat"
WORKING_DIR="/usr/local/bin"


SUBJECT="Disabled Nagios notifications *** $DATE"
from="sender@domain.com"
SENDMAIL_FOLDER="$WORKING_DIR/sendmail"
RCPT="reciever@domain.com"
BODY="$HOST $SERVICE"

userpass="nagiosadmin:password"
nagios_server="nagios.server.yourdomain.com"

function host_status() {
awk -v user=$userpass -v server=$nagios_server 'BEGIN { header=0; FS="="; } /^[[:space:]]*info {[[:space:]]*$/ { codeblock="info"; } /^[[:space:]]*program {[[:space:]]*$/ { codeblock="program"; } /^[[:space:]]*hoststatus {[[:space:]]*$/ { codeblock="host"; host_name=""; notifications_enabled=""; } /^[[:space:]]*service {[[:space:]]*$/ { codeblock="service"; } /^[[:space:]]*host_name=/ { host_name=$2; } /^[[:space:]]*notifications_enabled=/ { notifications_enabled=$2; } /^[[:space:]]*}[[:space:]]*$/ { if (codeblock=="host" && notifications_enabled=="0") { if (header==0) { print "The following hosts have notifications disabled:"; header=1; } print ""host_name"ENABLE NOTIFICATION"; } } '

}


function service_status() {
awk -v user=$userpass -v server=$nagios_server 'BEGIN { header=0; FS="="; } /^[[:space:]]*info {[[:space:]]*$/ { codeblock="info"; } /^[[:space:]]*program {[[:space:]]*$/ { codeblock="program"; } /^[[:space:]]*hoststatus {[[:space:]]*$/ { codeblock="host"; } /^[[:space:]]*servicestatus {[[:space:]]*$/ { codeblock="service"; host_name=""; service_description=""; notifications_enabled=""; } /^[[:space:]]*host_name=/ { host_name=$2; } /^[[:space:]]*service_description=/ { service_description=$2; } /^[[:space:]]*notifications_enabled=/ { notifications_enabled=$2; } /^[[:space:]]*}[[:space:]]*$/ { if (codeblock=="service" && notifications_enabled=="0") { if (header==0) { print "The following services have notifications turned off"; header=1; } print ""service_description " on " host_name"ENABLE SERVICE NOTIFICATION"; } } '
}






HOST=$(/bin/cat $NAGIOS_STATUS| host_status)
SERVICE=$(/bin/cat $NAGIOS_STATUS |service_status)

if [[ -n $HOST || -n $SERVICE ]]; then
cd $SENDMAIL_FOLDER;./sendmail.pl "$WORKING_DIR" "$from" "$RCPT" "$SUBJECT:" "$SERVICE$HOST"
else
echo "Nothing is disabled..."
fi

----------------------

sendmail.pl
---------------------

#!/usr/bin/perl

use MIME::Lite;
use Net::SMTP;

$spath=$ARGV[0];
$from=$ARGV[1];
$to=$ARGV[2];
$subject=$ARGV[3];
$body=$ARGV[4];

$msg = MIME::Lite->new(
From =>$from,
To =>$to,
##Cc =>'some@other.com, some@more.com',
Subject =>$subject,
Type =>'multipart/mixed'
);

$msg->attach(
Type =>'text/html; charset="iso-8859-1"',
Data =>$body
);
$mail_host="localhost";
MIME::Lite->send('smtp', $mail_host, Timeout=>60);
$msg->send;