21.082014

Postgres mit pgBadger überwachen

Hey,

als Softwareentwickler und/oder Systemadministrator ist man natürlich immer bestrebt eine performante Anwendung zu programmieren und die Rechenlast möglichst gering zu halten.

Gerade für Services, welche nicht so einfach horizontal skalieren, wie bspw. eine Datenbank, ist die Auslastung ein sehr wichtiger Aspekt.

Gängige Tools wie Zabbix oder Nagios halten euch immer auf dem Laufenden und schlagen sofort Alarm, wenn die Serverauslastung zu hoch ist, verraten aber am Beispiel eines PostgreSQL-Servers leider nicht viel darüber, warum die Auslastung so hoch ist.

Dafür ist pgBadger genau das richtige Tool!

pgBadger ist ein Tool zur Logfileanalyse, welches sehr detailierte Statistiken und Graphen ausgibt.
Es zeigt euch sehr übersichtlich welche die Queries sind, die am längsten dauern, am häufigsten ausgeführt werden oder die meisten/größten temporären Dateien generieren.

Die Installation ist denkbar einfach, man lädt einfach das tar.gz herunter, entpackt es und startet das "pgbadger" Binary.
Natürlich muss vorher die Loggingkonfiguration eurer PostgreSQL Datenbank noch etwas angepasst werden, das wird aber alles im Detail im Dokumentationsbereich der pgBadger-Website erklärt.

Gestartet wird das Ganze dann so:

pbadger -j 8 -o report.html /mnt/pgsql/9.2/main/pg_log/postgresql-Sun.log

Mit -j stellt man ein, wieviele Jobs gleichzeitig das Logfile parsen sollen. Je mehr desto schneller ;-)
-o gibt an wohin der Report generiert werden soll und zum Schluss gibt man noch das Logfile an, welches geparsed werden soll.

Ich habe euch mal 2 Screenshots hier angehaengt, aus Sicherheitsgründen habe ich die Queries natuerlich unkenntlich gemacht ;) Außerdem zeigen die Screenshots nur einen kleinen Teil des Funktionsumfangs, auf der Website von pgBadger gibt es aber ein paar Demo Reports zum selber durchklicken!

pg_badger1

pg_badger2

 

Viel Spaß beim Ausprobieren!