This script is an external plugin script for the Big Brother monitoring system. It uses the perl LDAP module to connect to an LDAP server and perform a query. The Big Brother server is notified of the results and notifications may be configured on the server side. The script runs any server and can be configured to test a list of LDAP servers.

#!/usr/bin/perl
#
#
# Date 9/30/2004
# Author - Vic Engle
# 
#
# This is a Big Brother external script for monitoring LDAP
#
#
# Revision History:
#     Date:
#     Desc:
#
use Net::LDAP;
#
# Set BigBro vars
$BBHOME = '/opt/bb/bb';
$BB = "$BBHOME/bin/bb";
$BBDISP = 'jumpstart.your-domain.com';
$test = 'ldap';
$TIME = localtime(time);

@Servers = ("ldapdev","skylab");

foreach $server (@Servers) {
	TestLDAP("$server");
}


sub TestLDAP {
	my $server = shift;
	$color = 'green';
	$Message = "LDAP Server Test\n\n";
	$ldap = Net::LDAP->new("$server");

	if ($ldap) {
		$ldap->bind();
	} else {
       		 $Message .= "There was a problem connecting to the LDAP server";
       		 $color = 'red';
       		 system("$BB $BBDISP \"status $server,your-domain,com.$test $color $TIME.\n\n$Message\"");
       		 exit;
	}
	$result = $ldap->search(filter=>"(objectClass=*)", base=>"ou=Groups,dc=your-domain,dc=com");

	$result_code = $result->code;
	$result_error = $result->error;
	if ($result_code > 0 ) {
       		 $Message .= "There was a problem Error code - $result_code Error message - $result_error";
       		 $color = 'red';
		system("$BB $BBDISP \"status $server,your-domain,com.$test $color $TIME.\n\n$Message\"");
		exit;
	}
	$ldap->unbind();


	$Message .= "\n\nSearching ou=Groups,dc=your-domain,dc=com\n\n";
	@entries = $result->entries;
	foreach $entry (@entries) {
		 $cn =  $entry->get_value(cn);
		 $Message .= "$cn\n"; 


	}
	$Message .= "\n\nNo problems found with the LDAP server.\n\n" if ($color eq 'green'); 
	$Message .= "\n\nThe ldap server seems to be offline.\n\n" if ($color eq 'red'); 
	system("$BB $BBDISP \"status $server,your-domain,com.$test $color $TIME.\n\n$Message\"");
}
#
#




You are visitor number 897