Checkmk
to checkmk.com

1. Einleitung

Checkmk erlaubt Ihnen die umfangreiche Überwachung von Microsoft SQL Server. Eine vollständige Liste der Überwachungsmöglichkeiten können Sie in unserem Katalog der Check-Plugins nachlesen. Unter anderem kann Checkmk die folgenden Werte überwachen:

Um die Datenbanken überwachen zu können, benötigen Sie neben dem Checkmk-Agenten lediglich das Agenten-Plugin auf dem Datenbankserver. Zusätzliche Software wird weder auf dem Checkmk- noch auf dem Datenbankserver benötigt.

Im Folgenden wird die Einrichtung für Windows-Hosts beschrieben. Weiter unten gehen wir auf die Einrichtung über die Agent Bakery ein.

2. Einrichten der Überwachung

2.1. Verwendung des Systembenutzers

Wenn Sie den Systembenutzer (NT AUTORITÄT\SYSTEM) für das Monitoring verwenden können, achten Sie darauf, dass diese Anmeldung (Login), mindestens Berechtigungen für die folgenden Sicherungsfähige Elemente (Securables) benötigt:

  • Verbindung mit beliebiger Datenbank (Connect any database)

  • View Server State

  • Connect SQL

In Abhängigkeit davon, welche Datenbanken Ihrer Instanzen Sie überwachen möchten und je nachdem über welche Serverrollen und Mappings der Systembenutzer (NT AUTORITÄT\SYSTEM) bereits verfügt, kann es notwendig sein, auch die Berechtigung für Connect Any Database zu erteilen.

2.2. Exkurs: Neuen Benutzer einrichten

Sollte es unbedingt notwendig sein, dass in Ihrem Unternehmen nicht der Systembenutzer verwendet wird, so müssen Sie in den zu überwachenden Instanzen einen passenden Datenbankbenutzer für das Monitoring anlegen. Die Grundvoraussetzung in MSSQL ist, dass die Server authentication auf SQL Server and Windows Authentication mode gestellt ist. Wenn Sie nicht den Windows-eigenen Systembenutzer verwenden können, dürfte diese Voraussetzung zwar bereits erfüllt sein, sie soll aber auch nicht unerwähnt bleiben. Melden Sie sich nun mit einem Benutzer mit ausreichenden Zugriffsberechtigungen in MSSQL an und erstellen Sie über das Microsoft SQL Server Management Studio einen neuen Datenbankbenutzer.

Auswahl der Option 'New Login...' in MSSQL.

Dieser neu angelegte Benutzer benötigt die oben genannte Berechtigung. Gehen Sie in den Objekt-Explorer. Öffnen Sie Sicherheit > Anmeldungen und öffnen Sie die Eigenschaften der Anmeldung, welche Sie für das Agentenplugin konfiguriert haben. Unter Sicherungsfähige Elemente finden Sie die explizite Berechtigung Verbindung mit beliebiger Datenbank herstellen, welche Sie erteilen müssen.

Berechtigung 'Connect any database' erteilen.

Alternativ können Sie den Benutzer und die Berechtigungen auch über die Befehlszeile erzeugen. Im folgenden Beispiel wird das für den Benutzer checkmk erledigt:

mssql> USE master;
      CREATE USER checkmk WITH PASSWORD = 'MyPassword123';
      GO

und danach:

mssql> USE master;
      GRANT CONNECT ANY DATABASE TO checkmk;
      GO

Konfigurationsdatei erstellen

Auf dem Windows-Host legen Sie im unten angegebenen Verzeichnis eine Datei names mssql.ini an.

C:\ProgramData\checkmk\agent\config\mssql.ini
[client]
user=checkmk
password=MyPassword123

Sollten Sie auf dem Host mehrere MSSQL-Instanzen mit verschiedenen Nutzernamen und Passwörtern betreiben, erstellen Sie einfach pro Instanz eine .ini-Datei nach dem folgenden Namensschema: mssql_INSTANZ-ID.ini

2.3. Plugin installieren

Der Agent für Windows wird standardmäßig bereits mit einer ganzen Reihe von Plugins ausgeliefert. Deshalb finden Sie auch das Plugin für die Überwachung von MSSQL nach der Installation des Agenten bereits auf Ihrem Host. Dieses kopieren Sie für die Verwendung nur noch in das richtige Verzeichnis.

PS> copy "c:\Program Files (x86)\checkmk\service\plugins\mssql.vbs" c:\ProgramData\checkmk\agent\plugins\

2.4. Services einrichten

Nachdem Sie das Plugin nun installiert und konfiguriert haben, können Sie für diesen Host eine Service-Erkennung durchführen. Der folgende Screenshot zeigt dabei nur eine Auswahl der auffindbaren Services:

Auszug der Service-Erkennung.

3. Erweiterte Konfiguration

3.1. Asynchrone Ausführung des Plugins

Das Plugin für die Überwachung von MSSQL kann - wie so viele andere - asynchron ausgeführt werden, um beispielsweise längeren Laufzeiten bei großen MSSQL-Instanzen Rechnung zu tragen.

Um das Plugin unter Windows asynchron auszuführen, passen Sie die Konfiguration des Agenten an und erweitern die Sektion execution unter plugins um den folgenden Eintrag:

C:\ProgramData\checkmk\agent\check_mk.user.yml
plugins:
    execution:
        - pattern: mssql.vbs
          cache_age: 300
          async: yes

Eine detaillierte Anleitung zur asynchronen Ausführung von Plugins auf einem Windows-Host finden Sie im Artikel über den Windows-Agenten.

3.2. Schwellwerte konfigurieren

Verbindungen überwachen

Für die Auslastung der durch MSSQL vorgegebenen maximalen Anzahl an gleichzeitigen Verbindungen können Sie eigene Schwellwerte vorgeben, da diese viel stärker als bei anderen Services vom Aufbau Ihrer MSSQL-Instanz abhängig sind. Die Einrichtung entsprechender Schwellwerte lässt sich mit einer Regel aus dem Satz MSSQL Connections im Handumdrehen bewerkstelligen.

Einstellung der oberen Schwellwerte für aktive Verbindungen.

Dateigröße überwachen

Auch für die Größe einzelner Dateien in MSSQL können Sie Schwellwerte festlegen. Dazu verwenden Sie die Regel MSSQL datafile sizes.

Einstellung der genutzten Dateigrößen.

4. Konfiguration über die Agent Bakery

CEE Die Einrichtung wird in den kommerziellen Editionen mittels der Agent Bakery sehr vereinfacht, da Syntaxfehler in den Konfigurationsdateien vermieden werden und Anpassungen an sich verändernde Umgebungen einfach bewerkstelligt werden können. Der wesentliche Unterschied zu einer manuellen Installation ist, dass Sie nur noch dann auf dem MSSQL-Host auf der Kommandozeile arbeiten müssen, wenn Sie spezielle MSSQL-spezifische Konfigurationen vornehmen möchten.

Für die erste Einrichtung reicht es, wenn Sie den Datenbankbenutzer auf dem MSSQL-Host einrichten und eine entsprechende Regel in der Bakery anlegen. Sie finden den Regelsatz unter Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules. In dem Suchfeld können Sie dann nach mssql suchen:

Anzeige der Regel 'Microsoft SQL Server' in der Suchmaske der Agentenregeln.

Wählen Sie in der neuen Regel im Abschnitt Microsoft SQL Server (Windows) idealerweise die Option System Authentication für eine einfache und problemlose Anbindung.

Mögliche Einstellungen für den MSSQL Server in der Bakery.

Entscheiden Sie sich stattdessen für die Option Database User Credentials, so müssen Sie zusätzlich User ID und Password des gewünschten Datenbanknutzers angeben (z.B. des Benutzers, den Sie im Exkurs: Neuen Benutzer einrichten angelegt haben).

5. Diagnosemöglichkeiten

Sollte es beispielsweise bei der Einrichtung der Überwachung zu unerwartetem Verhalten oder Problemen kommen, so empfiehlt sich eine Prüfung direkt auf einem betroffenen Host. Da es sich bei dem Plugin für die Überwachung von MSSQL um Shell- bzw. Visual Basic-Skripte handelt, können diese leicht auch ohne den Agenten ausgeführt werden. Der Shell bzw. der Kommandozeile muss vorher nur das jeweilige Konfigurationsverzeichnis bekannt gemacht werden.

Um das Check-Plugin manuell anführen zu können, öffnen Sie zuerst eine Kommandozeile mit Admin-Rechten. Setzen Sie in dieser Kommandozeile nun die Umgebungsvariable MK_CONFDIR. Diese wird benötigt, damit das Plugin Ihre Konfigurationsdateien finden kann.

PS> set MK_CONFDIR=c:\ProgramData\checkmk\agent\config

Wichtig: Auch hier ist die gesetzte Umgebungsvariable nicht permanent, sondern besteht nur, solange diese Kommandozeile offen ist.

Bei der eigentlichen Ausführung des Plugins empfiehlt es sich, die Ausgabe auf die Kommandozeile umzulenken. Zu diesen Zwecks liefert Windows das Bordwerkzeug cscript mit.

PS> cscript c:\ProgramData\checkmk\agent\plugins\mssql.vbs

5.1. Mögliche Fehler und Fehlermeldungen

Failed to connect to database

Es gibt drei verschiedene Treiber mit deren Hilfe Checkmk alternativ versucht sich mit der MSSQL-Datenbank zu verbinden: msoledbsql, sqloledb und sqlncli11.

Standardmäßig sind alle drei in der Regel vorhanden und werden beim Verbindungsaufbau nacheinander getestet. In einzelnen Fällen kann es vorkommen, dass diese sukzessive Abarbeitung zu Fehlermeldungen führt. Gegebenenfalls müssen Sie dann ein oder sogar zwei der genannten Treiber aus der Syntax des Aufrufs entfernen.

mssql.vbs: "no backup found"

Meldet ein Plugin "no backup found", so sollten Sie als erstes manuell prüfen, ob ein Backup vorhanden ist. Ist ein Backup vorhanden und das Problem besteht dennoch weiter, so liegt dies möglicherweise an den Namenskonventionen auf der MSSQL-Seite.

Checkmk interpretiert Hostnamen grundsätzlich in Kleinbuchstaben, werden diese aber im Rahmen der Backups vom Host beispielsweise in Großbuchstaben übermittelt, so entstehen Verständigungsprobleme.

Sie können dann den Wert der serverproperty('collation') auf der MSSQL-Seite prüfen. Ist hier zum Beispiel SQL_Latin1_General_CP1_CS_AS gesetzt, so steht „CS“ für „Case Insensitive“. Das Plugin kann den Host-Namen dann nicht anpassen und es kann zu Problemen aufgrund der Schreibweise kommen. Ein Wechsel auf SQL_Latin1_General_CP1_CI_AS, d.h. auf „CI“ für „Case Insensitive“ sollte das Problem beheben.

Alternativ können Sie natürlich auch die Schreibweise des ursprünglichen Namens des MSSQL-Servers ändern. Dies ist nur nicht in jedem Unternehmen und in jeder Umgebung möglich.

6. Dateien und Verzeichnisse

6.1. Auf dem MSSQL-Host

Windows

PfadVerwendung

C:\ProgramData\checkmk\agent\plugins\

übliches Plugins-Verzeichnis

C:\ProgramData\checkmk\agent\config\

übliches Konfigurationsverzeichnis

6.2. Auf dem Checkmk-Server

PfadVerwendung

share/check_mk/agents/plugins/mssql

Das Plugin, welches auf dem MSSQL-Host die Daten holt.

Auf dieser Seite