kuhn-ruess / Checkmk-Checks

Checks and Stuff for Check_MK
MIT License
39 stars 21 forks source link

bacula-jobs / pgsql #1

Closed FlorianHeigl closed 4 years ago

FlorianHeigl commented 5 years ago

Hi Basti :-)

die meisten Bacula DBs laufen mit PostgreSQL. Ich hab den Query angepasst

#!/bin/sh
echo "<<<bacula_jobs:sep(9)>>>"
echo "Select JobId, Name, JobStatus, EndTime FROM Job WHERE EndTime BETWEEN NOW() - interval '30 days' AND NOW();" | sudo -u postgres psql --tuples-only -AF $'\t'  bacula bacula

Was fehlt ist ne Auto-detection, ob MySQL oder PostgreSQL genutzt wird. Es gibt ne Configdatei, in der der DB-Connect definiert wird, aber die Configs koennen includes, d.h. kaum zu schaffen, das per grep gut zu finden. Ich hab auch kein Kommando gefunden, um die config per bconsole anzuzeigen.

Was mein Vorschlag waere, als "gut genug"-Loesung:

Per LDD nachschauen:

# ldd `which bacula-dir` | grep -i -e libmysqlclient -e libpq
    libpq.so.5 => /usr/local/lib/libpq.so.5 (0x803127000)

Waere das als Patch OK? Ich wuerd drei Faelle beachten:

  1. MySQL gefunden (passender Query, ggf. passender sep())
  2. PostgreSQL gefunden (passender Query, ggf. passender sep())
  3. beides nicht gefunden (Plugin liefert dann einfach keine Daten)

evtl. gab es mal SQLite Support aber das war eh nicht fuer Prod und ich hab das noch niemals in echt gesehen.

Gruesse

Bastian-Kuhn commented 5 years ago

Hi Flo,

Sehr guter Punkt, danke schon mal. Entweder wir machen es mit Erkennung, oder über eine Konfiguration die z.B. in der Agent Bakery gesetzt werden kann.

Die Automatische Erkennung wäre natürlich besser. Nur das wie gefällt mir noch nicht. Gibt es hier ggf. eine Umgebungsvariable wie wir das rausbekomme? Woher weiss es z.B. das Programm selbst, sieht man es eventuell auch anhand eines Prozessparameters?

robertoschwald commented 5 years ago

Erkennung über bacula-dir libraries ist nicht so schön, vorallem da viele Bareos statt Bacula verwenden.

Mein Vorschlag: Nur bconsole verwenden, da dies db- und Produkt agnostisch ist.

Ich sende in Kürze einen PR.

robertoschwald commented 5 years ago

Siehe PR #3

Bastian-Kuhn commented 5 years ago

@FlorianHeigl

Kannst du das von Robert kurz testen? Habe selbst nicht die möglichkeit.

gratuxri commented 4 years ago

Postgresql query: Select JobId, Name, JobStatus, EndTime FROM Job WHERE EndTime BETWEEN CURRENT_DATE - 30 and CURRENT_DATE ;

robertoschwald commented 4 years ago

See my new pull requests. With it, you can configure your db backend params in wato.