LDAP.pm

# NAME

probes::LDAP - a LDAP probe for SmokePing

# OVERVIEW

Measures LDAP search latency for SmkoePing

# SYNOPSYS

     *** Probes ***
     + LDAP

     passwordfile = /usr/share/smokeping/etc/password # optional
     sleeptime = 0.5 # optional, 1 second by default

     *** Targets ***

     probe = LDAP

     + PROBE_CONF
     port = 389 # optional
     version = 3 # optional
     start_tls = 1 # disabled by default
     timeout = 60 # optional

     base = dc=foo,dc=bar # optional
     filter = uid=testuser # the actual search
     attrs = uid,someotherattr

     # if binddn isn't present, the LDAP bind is unauthenticated
     binddn = uid=testuser,dc=foo,dc=bar
     password = mypass # if not present in <passwordfile>

    =head1 DESCRIPTION

This probe measures LDAP query latency for SmokePing. The query is specified by the target-specific variable `filter' and, optionally, by the target-specific variable `base'. The attributes queried can be specified in the comma-separated list `attrs'.

The TCP port of the LDAP server and the LDAP version to be used can be specified by the variables `port' and `version'.

The probe can issue the starttls command to convert the connection into encrypted mode, if so instructed by the `start_tls' variable. It can also optionally do an authenticated LDAP bind, if the `binddn' variable is present. The password to be used can be specified by the target-specific variable `password' or in an external file. The location of this file is given in the probe-specific variable `passwordfile'. See probes::passwordchecker(3pm) for the format of this file (summary: colon-separated triplets of the form `<host>:<bind-dn>:<password>')

The probe tries to be nice to the server and sleeps for the probe-specific variable `sleeptime' (one second by default) between each authentication request.

# AUTHOR

Niko Tyni <ntyni@iki.fi>

# BUGS

There should be a way of specifying TLS options, such as the certificates involved etc.

The probe has an ugly way of working around the fact that the IO::Socket::SSL class complains if `start_tls()` is done more than once in the same program. But It Works For Me (tm).