Translations of this page:

Es gibt mehrere Arten, MSSQL-Datenbanken zu überwachen. Aufgrund der unterschiedlichen Zwecke gibts auch mehrere AddOns dazu.

Übersicht

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.

check_mssql.php

Folgende Voraussetzungen listet die PHP-Datei auf:

  • yphp_cli-5.2.5_1
  • yphp_mssql-5.2.5_1
  • freetds

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

check_mssql_health

Als Voraussetzung wird Folgendes laut der Homepage angenommen:

  • Perl-Modul DBD::Sybase
  • freetds

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

check_mssql.sh

Hier ist die Voraussetzung:

  • freetds
  • eine Handvoll Shell-Befehle, welche im Normalfall enthalten sein dürften

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.

Nagios Enterprise Permon Plugins

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…

Voraussetzungen erfüllen

freetds

Als schwierigstes stellte sich die Einrichtung von FreeTDS heraus, da die vielen möglichen Fehler kaum dokumentiert sind und man viel suchen muss.

Download

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!

Einrichten

Der typische Dreisatz zur Kompilierung eines Paketes soll hier nochmal kurz erwähnt werden, sollte aber jedem bekannt sein:

  • ./configure
  • make
  • make install

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:~ #

DBD::Sybase

Einrichten

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:

  • Einrichten der PHP-Module
  • Verifizierung der Doku
nagios/howtos/mssql-checks.txt · Zuletzt geändert: 2009/09/29 17:03 von lausser
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0