SQL Server überwachen mit Check_MK – Teil 3

In unseren ersten zwei Beiträgen zum Thema Check_Mk und der Überwachung von SQL Server Instanzen haben wir uns angesehen, wie wir den Chechk_Mk Agenten und das zugehörige mssql.vbs Plugin installieren und wie wir eigene Schwellwerte zur Überwachung unserer Instanzen konfigurieren können. Im dritten Teil dieser Reihe wollen wir uns einmal im Detail damit beschäftigen, welche Änderungen und Neuerungen das Jahr 2020 für das mssql.vbs Plugin mit sich gebracht hat, und welche im Jahr 2021 noch alle vor uns liegen. Wir werden uns anschauen wo wir diese Änderungen einsehen können, was es eigentlich mit dem offiziellen Git Repo des Plugins auf sich hat und wie wir unseren Agenten immer auf dem neusten Stand halten können.

Änderungen und Neuerungen des Plugins

Wie alles in der Welt der Software Entwicklung und digitalen Anwendungen, entwickeln sich auch die mitgelieferten CheckMk Plugins stetig weiter. Die daraus entstehenden Neuerungen und Veränderungen werden in CheckMk als sogenannte Werks bezeichnet. Hierbei wird zwischen kleinen, bedeutenden und grundlegenden Änderungen sowie neuen Features, Bugfixes und Sicherheitsfixes unterschieden. Eine Vollständige Liste aller Werks kann hier eingesehen werden. Hierbei werden sowohl alle bereits erschienenen, sowie kommende Änderungen und Updates chronologisch aufgelistet.

Doch wie können wir Updates für unsere Plugins anwenden?

Wir wissen bereits, dass alle standardmäßig verfügbaren Plugins mit dem CheckMK Agenten mitgeliefert werden und deren Installation über das ablegen der nötigen Plugin Datei in den versteckten plugins Ordner erfolgt. Sollte dieser Vorgang noch unklar sein, kann dies hier noch einmal nachgelesen werden.

Wie das Installieren, erfolgt auch das Aktualisieren der Plugins über den CheckMK Agenten. Der Agent selbst verfügt über ein Plugin mit dem Namen cmk-update-agent. Mithilfe dieses Plugins kann der Agent in einem selbst konfigurierbaren Zyklus überprüfen, ob ein neues Update-Paket vorliegt, und dieses gegebenenfalls selbstständig installieren.

Damit dies reibungslos geschehen kann, müssen wir vorerst in unserer CheckMk Oberfläche die automatischen Updates für den Agenten konfigurieren.

  • Hierfür wählen wir in der Wato – Configuration den Reiter Global Settings aus
  • Hier wählen wir nun Automatic Agent Updates aus und setzen Activation of automatic agent updates auf on

Anschließend aktivieren wir unsere Veränderungen über den change Button am oberen linken Rand der Oberfläche:

Nach dem Klicken auf den change Button, wählen wir Activate affected aus.

Nachdem wir nun die automatischen Updates für unseren Agenten aktiviert haben, müssen wir die Updates konfigurieren.

Hierfür wählen wir in der Wato – Configuration den Reiter Monitoring Agents aus und klicken anschließend auf den Button Automatic Updates am oberen Rand der Oberfläche. Unter Prerequisites werden nun alle Voraussetzungen, die für automatische Updates erforderlich sind, aufgelistet. Diese werden wir nun im folgenden der Reihe nach konfigurieren:

Signaturschlüssel erstellen

Die CheckMk Agenten laden Updates über den zentralen Monitoringserver per HTTP oder HTTPS herunter und enthalten ausführbaren Code. Aus diesem Grund ist es wichtig, Agenten vor Angreifern zu schützen und sicherzustellen, dass keinerlei Änderungen und Verfälschungen an diesem Code durchgeführt werden. Dies wird in CheckMk mit einem sogenannten Signaturschlüssel gehandhabt, welcher aus einem Paar von öffentlichem und privatem Schlüssel besteht. Dieses Verfahren wird auch Public-Key-Verfahren genannt.

Es können beliebig viele Signaturschlüssel angelegt werden, welche jeweils mit einer Passphrase geschützt werden. Dies muss bei jeder Signatur eingegeben werden. Somit wird verhindert dass Angreifer, welche Zugriff auf eine Datensicherung des Monitoringservers erlangen konnten, die Möglichkeit hat, einen Agenten zu signieren.

Um einen Signaturschlüssel zu erstellen, gehen wir wie folgt vor:

  • Wir wählen das grüne Stiftsymbol unter Prerequisities neben Signature keys aus´und klicken anschließend auf den Button Create key am oberen Rand der Oberfläche
  • Hier können wir nun eine kurze Beschreibung und eine Passphrase für den Schlüssel angeben

(Die Passphrase müssen wir uns gut merken, da diese weder geändert noch wiederhergestellt werden kann!!!)

Konfiguration des Update-Plugins

Wie anfangs erwähnt, werden die Updates mithilfe des cmk-update-plugin durchgeführt. Damit unser Agent das Plugin nutzen kann, müssen wir dieses korrekt konfigurieren. Dies erledigen wir über einen neuen Regelsatz für Agent update (Linux, Windows). Hierfür werden wir:

  • Erneut das grüne Stiftsymbol neben Configuration of update plugin auswählen
  • Auf den Button Create rule in folder anklicken

Nun können wir nun eine neue Regel konfigurieren:

Nun ein paar Worte über die hier aufgeführten Konfigurationspunkte:

  • Activation – Diese Einstellung muss aktiviert werden, damit das Plugin zum Agenten hinzugefügt wird.
    • Mit einem Klick auf Activation können wir anschließend Deploy plugin that updates agent automaticaly auswählen.
  • Interval for update check – Hier wird das Intervall festgelegt, in welchem der Agent-Updater den Monitoring Server nach einem Update anfragt. Der Standard-Wert ist hier 60 min.
  • DNS name or IP address of update server – Hier geben wir den DNS-Namen oder die IP-Adresse unseres CheckMk Servers an, über welchen die Updates letztendlich heruntergeladen werden.
  • Name of Checkmk site of update server – Hier tragen wir den Namen der CheckMk Instanz ein, auf welcher wir diese Regel konfigurieren.
  • Protocol to use for fetching updates – Da wir HTTPS verwenden, müssen wir mit dieser Einstellung sicherstellen, dass dem Agent Updater auch ein CA-Zertifikat zur Verfügung steht. Mit diesem kann dann die Verbindung verifiziert werden.
    • Wir klicken auf Protocol to use for fetching updates und wählen anschließend HTTPS with the following CAs. Hier stellen wir nun eine CRT/PEM Datei bereit
    • Sollten sie nicht HTTPS verwenden, kann hier auch HTTP ausgewählt werden
  • Proxy settings – Diese Regeleinstellung ist optional. Standardmäßig geht der Agent Updater davon aus, dass eine direkte Verbindung zum CheckMk Server vorliegt und ignoriert alle lokalen Proxy-Einstellungen. Möchten Sie hier allerdings andere Einstellungen vornehmen, können Sie hier die gewünschten Proxy-Einstellungen vornehemen
  • Executable format (Linux) – Auch diese Regeleinstellung ist optional und bietet die Möglichkeit zu bestimmen, in welcher Form das Plugin dem Installationspaket für den Agenten hinzugefügt wird.
    • Linux(deb, rpm, tgz): Für diese Systeme muss nichts manuell angepasst werden. Der Agent Updater wird hier als 64bit-Binärdatei übergeben. Für ältere Systeme kann auch die 32bit-Binärdatei übergeben werden.
    • Windows: Für Windows wird das Plugin immer als 32bit-Executable mitgeliefert. Dementsprechend wird diese Regel standardmäßig ignoriert.
  • Signature keys the agent will accept – Hier geben wir nun einen Signaturschlüssel an, dessen Signatur vom Agenten-Updater akzeptiert werden soll. Hier geben wir nun den, im vorherigen Schritt erstellten, Signaturschlüssel an.

Mit einem Klick auf Save können wir diese Konfiguration abschließen. Auch hier müssen wir anschließend über den activate Button die vorgenommenen Änderungen aktivieren.

Agenten backen

Nachdem wir den Agenten nun konfiguriert haben, müssen wir diesen “backen”. Hierfür klicken wir erneut auf das grüne Stiftsymbol und wählen anschließend am oberen Bildschirmrand den Button Bake agents aus. Dieser sollte nun auch orange aufleuchten. Was das backen erfolgreich, wird dies mit der Nachricht “Agent baking successful” bestätigt.

Agenten signieren

Nun werden wir unseren Agenten mithilfe unseres Signaturschlüssels signieren. Hierfür wählen wir wie gewohnt das grüne Stiftsymbol aus. Hier können wir nun unseren Signaturschlüssel, wie auch die nötige Passphrase eingeben:

Mit einem Klick auf Sign können wir die Signatur abschließen.

Agenten Registrieren

In diesem Schritt müssen wir nun die zu überwachenden Hosts, welche nun auch automatisch aktualisiert werden sollen, registrieren. Da ein neuer Host dem Checkmk-Server bisher noch nicht vertraut, muss unser frisch gebackene Agent einmal per Hand auf dem gewünschten Host installiert werden. Wir laden diesen nun unter Baked Agents herunter und installieren ihn auf unserem Zielhost.

Nachdem wir die Installation erfolgreich abgeschlossen haben, können wir nun im versteckten plugins Ordner des Agenten das cmk-update-agent Plugin finden:

Um nun die Registrierung vorzunehmen, öffnen wir eine CMD-Konsole mit Administratorrechten und navigieren in das versteckte plugins Verzeichnis des Agenten auf dem Host. Anschließend führen wir folgenden Befehl aus:

cmk-update-agent register -s <checkmkserver> -i <checkmk_instanz> -H <host> -p http -U <cmkadmin> -P <passwort> -v

Wurde der Host erfolgreich registriert, wird folgender Output ausgegen:

Master Switch

Um nun unsere Konfiguration abzuschließen, “betätigen” wir den Master Switch. Hierfür müssen wir lediglich auf das grüne Stiftsymbol klicken. Die Prerequisities Tabelle sollte nun wie folgt aussehen:

Ab sofort wird sich nun der Agent jeweils zum Ende des konfigurierten Update-Intervalls melden und nach einer neuen Version des Agenten Ausschau halten. Um die Updates global auszuschalten, kann nun der Master Switch genutzt werden. Um das automatische Updateten auszuschalten, muss nur auf das grüne Stiftsymbol neben Master Switch geklickt werden.

Das Git-Repo

Nachdem wir nun ausführlich beschrieben haben, wie wir unseren Agenten und die mit ihm verknüpften Plugins immer aktuell halten können, wollen wir nun noch ein paar abschließend das offizielle Git-Repo des mssql.vbs Plugins erwähnen. Hier kann der gesamte Quellcode des Plugins eingesehen und nach belieben für den eigenen Gebrauch angepasst werden. Das Repository können sie hier finden.