Es gibt mehrere Arten, MSSQL-Datenbanken zu überwachen. Aufgrund der unterschiedlichen Zwecke gibts auch mehrere AddOns dazu.
Jedoch haben alle bestimmte Voraussetzungen an das System und die Umgebung. Diese möchte ich im Folgenden beleuchten und für Hilfe bei der Einrichtung sorgen.
Folgende Voraussetzungen listet die PHP-Datei auf:
Diese sind zu installieren, bevor das Plugin läuft. Das Plugin kommt im Normalfall ohne die Endung (.php) daher; ich habe sie der Einfachheit halber hinzugefügt. Der Aufruf klappt einfach, jedoch benötigt man genaue SQL-Kenntnisse über die abzufragenden Werte:
Example: check_mssql -H myserver -U myuser -P mypass -q /tmp/query.sql -w 2 -c 5 Example: check_mssql -H myserver -U myuser -P mypass -q "select count(*) from mytable" -r "632" -w 2 -c 5
Als Voraussetzung wird Folgendes laut der Homepage angenommen:
Die Installation des Perl-Moduls scheint bei manchen älteren Systemen etwas problematisch, das Plugin jedoch ist sehr einfach durch unterschiedliche Schalter (–mode) konfigurier- und aufrufbar:
check_mssql_health --mode mem-pool-data-buffer-hit-ratio
Die Standardwerte und möglichen Modi sind sehr gut auf der Homepage zu dem Modul beschrieben
Hier ist die Voraussetzung:
Der Aufruf ist relativ unkompliziert, jedoch ist die Angabe einer MSSQL-Versionsnummer notwendig:
Usage: ./check_mssql.sh <host> <username> <password> <version>
2000 für einen 2k-SQL-Server klappte bsiher auch für höhere SQL-Versionen, solange diese abwärtskompatibel eingerichtet wurden.
Unter dem dazugehörigen Link findet man mehrere Pakete. Sowohl für mySQL als auch für MSSQL und diese als .zip oder als .tar.gz. Das Plugin selbst ist ein schon fertig kompiliertes Binary, allerdings setzt es ein entsprechendes Konfig-Verzeichnis voraus und will dieses aus als Aufruf übergeben haben. Bei einem einfachen Aufruf meldet es sich fälschlicherweise als sqlsvr; man sollte sich davon nicht beirren lassen:
Uses: ./sqlsvr <plugin_director> <config_file_name> <host> <user_name> <password>
In dem Konfig-Verzeichnis liegen Textdateien, welche abzufragende Werte mit entsprechenden Warnings und Critcals beinhalten. Von den Kommentarzeichen sollte man sich nicht täuschen lassen, die sind notwendig…
Als schwierigstes stellte sich die Einrichtung von FreeTDS heraus, da die vielen möglichen Fehler kaum dokumentiert sind und man viel suchen muss.
Eigentlich liest man immer wieder von der Seite www.freetds.org, doch scheint diese nicht erreichbar oder ungültig zu sein. Leider kann ich nicht sagen, wo man das Paket mittlerweile herbekommt; ich hatte es irgendwie mal auf meinem Archivserver und kann leider nur anmerken: Im Forum jemanden darum bitten!
Der typische Dreisatz zur Kompilierung eines Paketes soll hier nochmal kurz erwähnt werden, sollte aber jedem bekannt sein:
Damit die Binaries (meist bsqldb) allerdings tatsächlich genutzt werden können, muss zusätzlich die Datei /usr/local/etc/freetds.conf bearbeitet werden. Sie enthält eine passende Beispielkonfiguration:
[global]
# TDS protocol version
; tds version = 4.2
# Whether to write a TDSDUMP file for diagnostic purposes
# (setting this to /tmp is insecure on a multi-user system)
; dump file = /tmp/freetds.log
; debug flags = 0xffff
# Command and connection timeouts
; timeout = 10
; connect timeout = 10
# If you get out-of-memory errors, it may mean that your client
# is trying to allocate a huge buffer for a TEXT field.
# Try setting 'text size' to a more reasonable limit
text size = 64512
# A typical Sybase server
[egServer50]
host = symachine.domain.com
port = 5000
tds version = 5.0
# A typical Microsoft server
[egServer70]
host = ntmachine.domain.com
port = 1433
tds version = 7.0
Ohne das Ausfüllen der Datei schlagen die Zugriffe immer wieder fehl. Eine Fehlermeldung als Beispiel (aus der Version 0.82):
server:~ # bsqldb -U sa -P sa -S dbserver bsqldb: Msg 20009, Level 9 Unable to connect: Adaptive Server is unavailable or does not exist bsqldb: bsqldb.c:167: main: Assertion `dbproc != ((void *)0)' failed. Aborted server:~ #
Das Einrichten geschieht inklusive des Download am Einfchsten über cpan. Hierzu wird der Befehl cpan auf der Kommandozeile aufgerufen und man befindet sich in einer eigenen Shell. Mit install DBD::Sybase wird der Download und die komplette Einrichtung abgenommen.
Was noch fehlt: