|
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