OpenLDAP und munin

Diesen Beitrag schrieb ich 7 Jahre und 11 Monate zuvor; die nachfolgenden Ausführungen müssen heute weder genau so nach wie vor funktionieren, noch meiner heutigen Meinung entsprechen. Behalte das beim Lesen (und vor allem: beim Nachmachen!) bitte stets im Hinterkopf.

Geschätzte Lesezeit: 1 Minute

Auch und gerade zum Debuggen sind solcherei Graphen sehr nützlich; über die grundlegende Installation und Konfiguration von munin und munin-node will ich mich an dieser Stelle gar nicht weiter auslassen, ich konzentriere mich lediglich auf die Einbindung von OpenLDAP.

$ munin-node-configure --suggest
...
slapd_                     | no   | no [Net::LDAP not found]
slapd_bdb_cache_           | no   | no [Can't execute db_stat file '/usr/bin/db4.6_stat']
...

Es ist also ersichtlich, dass verschiedene benötigte Pakete noch fehlen; unter anderem mahnt er db4.6_stat an, was in diesem Fall aber nicht stimmt, da ich ohnehin bdb-5.3 nutze; Abhilfe schafft, die passenden Utils zu installieren und (in einem späteren Schritt) eine passende Konfiguration für munin-node zu erzeugen.

$ apt-get install libnet-ldap-perl db5.3-util

OpenLDAP konfigurieren

Hierzu muss die slapd.conf erweitert werden:

## file: "slapd.conf"
...
moduleload      back_monitor.la
database        monitor
...

Jetzt muss dem OpenLDAP ein User monitor hinzugefügt werden; vergib ihm ein schönes Passwort (und merke es dir, denn du wirst es später im Konfigfile hinterlegen müssen), erzeuge mittels slappasswd einen entsprechenden userpassword-String und füge ihn ins LDIF ein:

LDIF für User “cn=monitor”

dn: cn=monitor,dc=sysadmama,dc=de
cn: monitor
description: LDAP monitor
objectclass: simpleSecurityObject
objectclass: organizationalRole
userpassword: {SSHA}blablabla

Abschließend musst du die Konfiguration neu erzeugen (wie hier beschrieben) und den Dienst durchstarten.

munin-node konfigurieren

/etc/munin/plugin-conf.d/munin-node

[slapd_*]
env.server 127.0.0.1
env.binddn cn=Monitor,dc=sysadmama,dc=de
env.bindpw deinGeheimesSuperPasswort

[slapd_bdb_cache_*]
user openldap
env.dbstat /usr/bin/db5.3_stat

OpenLDAP pages in cache - munin munin – Requested pages found in cache – by day

Wichtig ist hier auch die Zeile user openldap – lässt du die aus, wird munin an eine „Can't open database directory '/var/lib/ldap'“-Wand laufen ;-) Du kannst nun ein munin-node-configure --suggest --shell | sh ausführen oder deine Symlinks sonstwie setzen, ganz wie es dir gefällt; auf meinem System sieht /etc/munin/plugins dann in etwa so aus:

$ la -la /etc/munin/plugins
...
lrwxrwxrwx 1 root root 41 Oct 14 12:23 slapd_bdb_cache_pages -> /usr/share/munin/plugins/slapd_bdb_cache_
lrwxrwxrwx 1 root root 41 Oct 14 12:23 slapd_bdb_cache_percent -> /usr/share/munin/plugins/slapd_bdb_cache_
lrwxrwxrwx 1 root root 31 Oct  9 12:42 slapd_connections -> /usr/share/munin/plugins/slapd_
lrwxrwxrwx 1 root root 31 Oct  9 12:42 slapd_operations -> /usr/share/munin/plugins/slapd_
lrwxrwxrwx 1 root root 31 Oct  9 12:42 slapd_statistics_bytes -> /usr/share/munin/plugins/slapd_
lrwxrwxrwx 1 root root 31 Oct  9 12:42 slapd_statistics_entries -> /usr/share/munin/plugins/slapd_

Test und Inbetriebnahme

$ munin-run slapd_bdb_cache_percent
slapd_bdb_cache_percent_uidNumber.value 99
slapd_bdb_cache_percent_loginShell.value 94
slapd_bdb_cache_percent_sendmailMTAKey.value 99
slapd_bdb_cache_percent_memberUid.value 99
slapd_bdb_cache_percent_mail.value 93
slapd_bdb_cache_percent_dn2id.value 99
slapd_bdb_cache_percent_id2entry.value 99
slapd_bdb_cache_percent_objectClass.value 99
slapd_bdb_cache_percent_sn.value 94
slapd_bdb_cache_percent_uid.value 99
slapd_bdb_cache_percent_sendmailMTAMapName.value 99
slapd_bdb_cache_percent_sendmailMTACluster.value 99
slapd_bdb_cache_percent_gidNumber.value 99
slapd_bdb_cache_percent_givenName.value 94
slapd_bdb_cache_percent_sendmailMTAAliasGrouping.value 71
slapd_bdb_cache_percent_sendmailMTAHost.value 99

Ehe du ernst machst, solltest du die Plugins von Hand testen und eventuelle Fehler beheben; läuft alles, kannst du mit service munin-node restart die Änderungen übernehmen, und von diesem Zeitpunkt an werden dann die Graphen gezeichnet.

Hintergrundbild: © Marianne Spiller – Alle Rechte vorbehalten – Bild genauer anschauen