Beschreibung

check_sqlbase_health ist ein Plugin, mit dem unterschiedliche Parameter eines SQLBase-Datenbankservers (auch unter dem Namen Gupta bekannt) überprüft werden können.

Dokumentation

Kommandozeilenparameter

  • –hostname <hostname>
    Der Datenbankserver
  • –username <username>
    Der Datenbankuser
  • –password <password>
    Dessen Passwort
  • –port <port>
    Der Port, auf dem der Server lauscht (Default: 2155)
  • –server <server>
    Der Servername, so wie er in einer sql.ini-Datei stehen würde.
  • –database <datenbank>
    Der Name einer Datenbank, zu der man sich verbinden will.
  • –mode <modus>
    Mit dem mode-Parameter teilt man dem Plugin mit, was es tun soll. Siehe Liste der möglichen Werte weiter unten.
  • –warning <range>
    Ermittelte Werte außerhalb dieses Bereichs lösen ein WARNING aus.
  • –critical <range>
    Ermittelte Werte außerhalb dieses Bereichs lösen ein CRITICAL aus.
  • –environment <variable>=<wert>
    Damit kann man dem Script Environmentvariablen mitgeben. Mehrfachnennungen sind möglich.
  • –method <connectmethode>
    Mit diesem Parameter teilt man dem Plugin mit, wie es sich zur Datenbank verbinden soll. (dbi für Verbindung per DBD::Sybase (default), derzeit keine Alternativen).

Um dem Plugin mitzuteilen, welche Werte es ermitteln und prüfen soll, benutzt man die Option –mode mit verschiedenen Schlüsselwörtern.

Modi

Schlüsselwort Bedeutung Wertebereich
connection-time Misst, wie lange Verbindungsaufbau und Login dauern 0..n Sekunden (1, 5)
sql Ergebnis eines beliebigen SQL-Befehls, der eine Zahl zurückliefert. Der Befehl selbst wird mit dem Parameter –name übergeben. Ein Label für Performncedaten kann mit dem Parameter –name2 übergeben werden. Mit dem Parameter –units kann die Ausgabe um Einheiten ergänzt werden (%, c, s, MB, GB,.. Wenn der SQL-Befehl Sonder- und Leerzeichen enthält, kann er mit dem mode encode zuerst encodiert werden. 0..n
sql-runtime Laufzeit eines beliebigen SQL-Befehls in Sekunden. Der Befehl selbst wird mit dem Parameter –name übergeben. 0..n (1, 5)

Es ist zu beachten, daß Schwellwerte entsprechend den Nagios Developer Guidelines anzugeben sind.

  • “10” bedeutet demzufolge “Alarm, wenn > 10” und
  • “90:” bedeutet “Alarm, wenn < 90”

Vorbereitung der Datenbank

Damit sich das Plugin die benötigten Informationen aus der Datenbank holen kann, muss ein Benutzer angelegt werden, der mindestens über Connect-Privilegien verfügt.

GRANT CONNECT TO NAGIOS IDENTIFIED BY SECRET;

Zur korrekten Funktion des Plugins benötigt der Monitoring-User Leserechte für die Tabelle SYSSQL.SYSTABLES. Diese sollten per Default vorhanden sein. Falls nicht:

GRANT SELECT ON SYSSQL.SYSTABLES TO PUBLIC

Laufzeitumgebung

Auf dem Monitoring-Sevrer muß die Client-Software installiert sein, z.b. in Form folgender Pakete:

yum install SQLBase-common-12.0.1-10862.el7.x86_64.rpm \
    SQLBase-client-12.0.1-10862.el7.x86_64.rpm \
    SQLBase-docs-12.0.1-10862.el7.x86_64.rpm

Anschließend befinden sich im Verzeichnis /opt/Gupta/SQLBase das Kommandozeilen-Tool sqllxtlk und die von diesem benötigte Shared Library libsqlbapl.so.
Damit diese beiden vom Plugin gefunden werden können, muß die Environmentvariable SQLBASE gesetzt werden. (Kunden von OMD-Addon-Paketen müssen sich darum nicht kümmern. Hier befindet sich die Client-Software im bin- bzw. lib-Verzeichnis einer Site und das Environment wird automatisch gesetzt.)
Das Programm sqllxtlk ist wichtig, es wird von check_sqlbase_health zur Kommunikation mit dem Datenbankserver benutzt.

Beispiele

$ SQLBASE=/opt/Gupta/SQLBase check_sqlbase_health --server Server1 --hostname 10.0.2.15 --username NAGIOS --password SECRET --mode connection-time --database ISLAND
OK - 0.05 seconds to connect as NAGIOS | 'connection_time'=0.05;1;5;;

$ check_sqlbase_health --server Server1 --hostname 10.0.2.15 --username NAGIOS --password SECRET --mode connection-time --database ISLAND --environment SQLBASE=/opt/Gupta/SQLBase
OK - 0.05 seconds to connect as NAGIOS | 'connection_time'=0.05;1;5;;

$ SQLBASE=/opt/Gupta/SQLBase check_sqlbase_health --server Server1 --hostname 10.0.2.15 --username NAGIOS --password SECRET --mode sql --name "select 'humpftata' from SYSSQL.SYSTABLES" --name2 'umpf' --regexp  --database ISLAND
OK - output umpf matches pattern humpftata

Installation

Dieses Plugin setzt das Vorhandensein eines funktionierenden sqllxtlk-Kommandos voraus.
Nach dem Auspacken des Archivs wird ./configure; make aufgerufen. Das fertige Plugin liegt dann im Verzeichnis plugins-scripts.

Download

check_sqlbase_health-1.0.0.2.tar.gz

Changelog

  • 2016-07-12 1.0.0.2
    remove temporary ini-files
  • 2016-07-12 1.0.0.1
    update GLPlugin
  • 2016-07-06 1.0
    fist version.
    If you find this plugin useful - buy something at Lidl
    If you earn even money using this plugin - buy some more at Lidl
    Now you know who sponsored the development.

2016-3000 Gerhard Laußer
check_sqlbase_health wird unter der GNU General Public License zur Verfügung gestellt. GPL

Autor

Gerhard Laußer (gerhard.lausser@consol.de) stellt dieses Plugin kostenlos zur Verfügung. Gratis Consulting hingegen gibt’s nur im Märchen, in der realen Welt hält der Laußer die Hand auf. Es gibt Leute, die finden das unverschämt, weil das ist doch Open Source und Open Source ist gratis. Solchen Leuten schenkt man ein Auto und die wollen noch den Führerschein spendiert bekommen. Tut man sowas? Nein!