Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden

Überwachung von PostgreSQL mit SNMP

Die meiste Software für eine Netzwerküberwachung ver­steht SNMP. Was liegt also näher, die­ses Protokoll auch für Überwachung von PostgreSQL zu nut­zen. Leider bringt PostgreSQL von Hause aus keine Unterstützung für SNMP mit. Seit gerau­mer Zeit gibt es jedoch pgsnmpd. Nach dem Download von der Homepage und dem Auspacken in das contrib-Verzeichnis der aus­ge­pack­ten und über­setz­ten Quellen von PostgreSQL erfolgt die Installation mit

gmake && gmake install

Als nächs­tes wer­den auf allen Datenbanken, inklu­sive dem Template (so spart man sich das feh­lerträch­tige nach­träg­li­che Installieren), die Unterstützungstabellen als PostgreSQL-Superuser installiert:

psql -d db -f /usr/share/postgresql/contrib/pgsnmpd.sql

Da auf mei­ner Maschine bereits ein SNMPd sei­nen Dienst tut, starte ich den pgsnmpd als Subagent. Dazu wird in der snmpd.conf der fol­gende Eintrag aktiviert:

master agentx

Startet danach der SNMP-Daemon nicht mehr, so muß in even­tu­ell unter /var ein Verzeichnis agentx für den Socket ange­legt wer­den. Danach kann man den pgsnmpd als Subagent starten:

/usr/bin/pgsnmpd -b -s -C"user=postgres host=localhost"

Bei mir fehl­ten aller­dings noch die (aktu­elle) RDBMS-MIB, APPLICATION-MIB, SYSAPPL-MIB und die NETWORK-SERVICES-MIB. Diese kann man sich aber schnell aus dem Internet besorgen.
Eine Verbindung zum RDBMS muss als PostgreSQL-Superuser erfol­gen. Ist die Verbindung von Superuser auf local­host mit einem Passwort geschützt, wie sich das gehört, hilft eine .pgpass mit dem Inhalt

hostname:port:database:username:password

im Homeverzeichnis wei­ter. Erhält man dann viel­leicht in den Logs noch ein:

registering pdu failed

sollte man in der Prozesstabelle schauen, ob der pgsnmpd bereits gestar­tet war. Zum Schluß bin­den wir den den pgsnmpd noch in die init-Skripte ein, um ein Hochfahren des Dienstes beim Reboot zu garan­tie­ren. Ich habe die /etc/init.d/local (Gentoo) dafür gewählt.

17. Januar 2008

Pin It on Pinterest