Checkmk
to checkmk.com

1. Vorwort

Dieser Artikel ist derzeit im Entstehen begriffen und wird (fast) täglich erweitert. Mit dieser Art der Veröffentlichung möchten wir die bereits vorhandenen Kapitel möglichst schnell an Leser und Nutzer herausgeben. Feedback zum Artikel und zur Art der Veröffentlichung sind immer gerne gesehen. Entweder per E-Mail an feedback@checkmk.com oder bspw. als Issue in Github (siehe Link oben).

2. Einleitung

Checkmk ermöglicht Ihnen ein umfangreiches Monitoring von Microsoft SQL Server (im weiteren Verlauf nur noch mit "MSSQL" abgekürzt). Eine vollständige Auflistung aller verfügbaren Check-Plugins finden Sie in unserem Katalog der Check-Plugins.

Um die Datenbanken überwachen zu können, benötigen Sie neben dem Checkmk-Agenten zusätzlich noch das Agentenplugin mk-sql. Dieses Agentenplugin ist ab Checkmk 2.3.0 auch in der Lage, Datenbanken auf entfernten Systemen zu überwachen. Zusätzliche Software wird weder auf dem Checkmk- noch auf dem Datenbank-Server benötigt.

Die einzige zwingende Voraussetzung für die Verwendung von mk-sql ist, dass in der SQL Server-Netzwerkkonfiguration das Protokoll TCP/IP aktiviert ist. Sollte in Ihrer MSSQL Server-Umgebung kein TCP/IP zugelassen beziehungsweise erlaubt sein, müssen Sie bis auf Weiteres auf das Legacy-Plugin mssql.vbs zurückgreifen.

3. Login für die Überwachung einrichten

Das Agentenplugin benötigt Zugang zu Ihren MSSQL-Instanzen - da beißt die Maus keinen Faden ab. Im Regelfall steht - lange bevor das Monitoring-Team kommt - fest, wie ein solcher Zugang aussehen kann oder darf. In Falle von MSSQL gibt es zwei Möglichkeiten. Entweder Sie verwenden ausschließlich den Windows Authentication mode oder den Mischbetrieb SQL Server and Windows Authentication mode. In den folgenden beiden Abschnitten erklären wir, worauf bei den jeweiligen Verfahren zu achten ist.

3.1. Systembenutzer verwenden (nur Windows)

Der Checkmk-Agent wird auf Windows-Systemen vom Systembenutzer (NT AUTHORITY\SYSTEM) ausgeführt. Wenn Sie diesen Systembenutzer (NT AUTHORITY\SYSTEM) auch für das Monitoring von MSSQL verwenden können, müssen Sie nur noch darauf achten, dass dieses Konto (login), mindestens Berechtigungen für die folgenden sicherungsfähigen Elemente (Securables) besitzt:

  • View server state

  • Connect SQL

In Abhängigkeit davon, welche Datenbanken Ihrer Instanzen Sie überwachen möchten und je nachdem über welche Server-Rollen und Mappings der Systembenutzer (NT AUTHORITY\SYSTEM) bereits verfügt, kann es notwendig sein, auch die Berechtigung für Connect any database (Verbindung mit beliebiger Datenbank) zu erteilen.

3.2. Dediziertes Konto für das Monitoring verwenden

Es gibt auch gute Gründe dafür, dass Monitoring von MSSQL nicht über den Systembenutzer von Windows laufen zu lassen. Der banalste: Auf Linux-System gibt es keinen Windows-Systembenutzer. Weiter geht es dann bei Sicherheitsvorgaben im Unternehmen oder einfach dem Wunsch dedizierte und klar benannte Logins zu haben, deren Sinn und Zweck schon am Namen ablesbar ist.

Selbstverständlich funktioniert das Agentenplugin auch mit solchen Konten (Logins).

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 wollen oder können, dürfte diese Voraussetzung zwar bereits erfüllt sein, sie soll aber auch nicht unerwähnt bleiben.

Sollte noch kein entsprechender Nutzer auf Ihrem MSSQL-Server bzw. in Ihrer -Instanz vorhanden sein, so können Sie diesen über das Microsoft SQL Server Management Studio erstellen:

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

Dieser Login benötigt die folgenden Berechtigungen:

  • View server state

  • Connect SQL

  • Connect any database

Erteilen Sie diese Berechtigungen im Object Explorer über Security > Logins. Öffnen Sie hier die Eigenschaften des Kontos (login) und klicken Sie auf Securables. Unter Explicit finden Sie die drei oben genannten Einträge. Setzen Sie in der Spalte Grant die entsprechenden Haken und bestätigen über OK.

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 SQL TO checkmk;
      GRANT CONNECT ANY DATABASE TO checkmk;
      GRANT VIEW ANY DATABASE TO checkmk;
      GO

4. Manuelle Einrichtung der Verbindung

Wenn Sie eine CRE Checkmk Raw Edition nutzen oder die Agentenbäckerei der kommerziellen Editionen nicht nutzen wollen, richten Sie die Kommunikation manuell ein.

Hinweis: Das Kapitel zur manuellen Einrichtung wird zeitnah geschrieben und erscheinen.

5. Konfiguration über die Agentenbäckerei

CEE Die Einrichtung wird in den kommerziellen Editionen mittels der Agentenbäckerei 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 eine entsprechende Regel in der Agentenbäckerei anlegen. Sie finden den Regelsatz unter Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules. In dem Suchfeld können Sie dann nach mssql suchen:

Die Regel 'Microsoft SQL Server (Linux, Windows)' in den Agentenregeln.

Je nachdem, wie sich das Agentenplugin an Ihrem SQL-Server anmelden darf (siehe Login für die Überwachung einrichten), wählen Sie unter Authentication nun die entsprechende Option aus. Nutzen Sie den Systembenutzer (NT AUTHORITY\SYSTEM) belassen Sie die Auswahl bei Local Integrated Authentication (Windows).

Mögliche Einstellungen für den MS SQL Server in der Agentenbäckerei.

Verwenden Sie stattdessen die SQL Server Authentication wählen Sie hier die Option SQL Database User Credentials und geben Sie zusätzlich den Login name im Feld User ein und fügen das zugehörige Password ein.

5.1. Weitere Optionen

Mit den soeben vorgenommenen Einstellungen kreieren Sie zunächst einen einfachen Agenten zur Überwachung Ihrer MSSQL-Instanz, die sich direkt auf dem Host befindet. Alle verfügbaren Daten werden direkt in Checkmk ausgewertet und für den Standardfall sollte dies bereits genügen. Haben Sie eine komplexere MSSQL-Welt in Ihrem Unternehmen, so gibt es jedoch weitere Optionen, sowohl für die Überwachung der Datenbank auf dem gleichen Host als auch für die Überwachung auf einem entfernten Host. Diese sind prinzipiell für beide Verbindungstypen gleich.

Option Funktion

Connection

Brauchen Sie für die allgemeine Verbindung zum MS SQL-Server spezifischere Verbindungsdaten, so können Sie diese hier angeben.

Data to collect (Sections)

Hier können Sie abschnittsweise einschränken, welche Daten eingesammelt werden sollen bzw. ob diese synchron oder asynchron gesammelt werden sollen.

Cache age for asynchronous checks

Für die zuvor festgelegten asynchronen Checks können Sie den Caching-Zeitraum in Sekunden ändern.

Map data to specific host (Piggyback)

Piggyback-Daten können - unabhängig von der eigentlichen Quelle - einem Host zugeordnet werden. So lassen sich zum Beispiel die SQL-Informationen von den Daten des zugrundeliegenden Windows-Servers trennen.

Discovery mode of databases

Einstellungen für die Instanzsuche.

Custom instances

Ergänzend zu den allgemeinen Vorgaben zum Zugriff auf Ihren MS SQL Server, können Sie hier für spezifische Instanzen eigene Einstellungen setzen.

Options

Die maximale Anzahl an parallelen SQL-Server-Verbindungen kann hier eingestellt werden.

6. Diagnosemöglichkeiten

6.1. Mögliche Fehler und Fehlermeldungen

Failed to gather SQL Server instances

Prüfen Sie, ob die TCP/IP-Verbindung konfiguriert ist und funktioniert.

7. Dateien und Verzeichnisse

7.1. Auf dem MSSQL-Host (Windows)

Pfad Verwendung

C:\ProgramData\checkmk\agent\plugins\

Plugin-Verzeichnis

C:\ProgramData\checkmk\agent\config\mk-sql.yml

Konfigurationsdatei für das Agentenplugin

7.2. Auf dem MSSQL-Host (Linux)

Pfad Verwendung

/usr/lib/check_mk_agent/plugins

Plugin-Verzeichnis

/etc/check_mk/mk-sql.yml

Konfigurationsdatei für das Agentenplugin

7.3. Auf dem Checkmk-Server

Pfad Verwendung

~/share/check_mk/agents/windowss/mk-sql.exe

Das Plugin, das Sie auf den Windows-Server kopieren müssen, der als Host für Ihr MS SQL fungiert.

~/share/check_mk/agents/linux/mk-sql

Das Plugin, das Sie auf den Linux-Server kopieren müssen, der als Host für Ihr MS SQL fungiert.

Auf dieser Seite