Checkmk
to checkmk.com

1. Einleitung

Checkmk ist in verschiedenen Editionen verfügbar, die sich im Leistungsumfang und in den Einsatzmöglichkeiten unterscheiden. Im Folgenden möchten wir Ihnen mit CME Checkmk MSP eine der kommerziellen Editionen vorstellen.

In einem verteilten Monitoring mit verteiltem Setup werden sich die Benutzer in der Regel auf der Zentralinstanz anmelden, um dort Konfigurationen vorzunehmen oder auf die Monitoring-Daten zuzugreifen. Die Benutzer können sich zwar zusätzlich auch auf den Remote-Instanzen anmelden, weil sie z.B. nur für die Hosts und Services zuständig sind, die von dort aus überwacht werden. Das Berechtigungskonzept von Checkmk, die Sichtbar- und Konfigurierbarkeit von Hosts und Services mittels Rollen und Kontaktgruppen einzuschränken, ist jedoch für beide Szenarien vollkommen ausreichend. Benutzer mit sehr eingeschränkten Berechtigungen werden in aller Regel keinen direkten Kommandozeilenzugriff auf den Monitoring-Server bekommen und können daher auch nur die Daten sehen, für die sie zuständig sind. Dass sie dabei eventuell über die Existenz von anderen Hosts und Services informiert sind, ist kein Problem.

In einem verteilten Setup wird Checkmk in Checkmk Raw, Checkmk Enterprise und Checkmk Cloud daher alle Konfigurationsdaten an alle beteiligten Instanzen verteilen, da sie prinzipiell auch überall liegen könnten, bzw. benötigt werden. So müssen zum Beispiel zentral verwaltete Passwörter auch für die Remote-Instanzen zur Verfügung gestellt werden und Hosts/Services von Kontaktgruppen können über mehrere Instanzen verteilt sein.

Sobald Checkmk jedoch als Dienstleistung einem Dritten (das heißt einem Kunden) angeboten werden soll, dürfen bestimmte Konfigurationsdaten nur noch auf bestimmten Remote-Instanzen verteilt werden. Das heißt, sensible Daten eines Kunden dürfen nicht auf dem Server eines anderen Kunden liegen — eine reine Einschränkung der Sichtbarkeit in der Weboberfläche ist daher nicht mehr ausreichend. Schließlich kann es sein, dass der lokale Monitoring-Server von dem Kunden selbst betrieben wird oder er anderweitig über direkten Zugang zu der Kommandozeile des Servers verfügt.

Zusätzlich ist es nicht mehr erforderlich, dass ein Kunde seine Instanz konfigurieren kann — der Sinn einer Dienstleistung ist es ja gerade, diesem Kunden solche Arbeiten zu ersparen. Auch benötigt er keine zentrale Ansicht, da er nur auf seine eigenen Daten Zugriff benötigt.

Mit CME Checkmk MSP bindet ein Dienstleister (das heißt ein Managed Service Provider, kurz MSP oder Provider) in seiner Zentralinstanz für jeden Kunden über das verteilte Monitoring eine oder mehrere Remote-Instanzen ein, die nur diesem Kunden gehören. Einzelne Elemente im Setup werden dann diesem Kunden zugewiesen. Checkmk wird jetzt bei der Verteilung der Konfigurationsdaten nur diese zu einer Kundeninstanz schicken, welche entweder allgemeiner Natur sind oder für diesen Kunden freigegeben wurden. Die Konfiguration kann vom Provider weiterhin bequem über das verteilte Setup seiner eigenen Zentralinstanz erfolgen. Ebenso steht dem Provider eine zentrale Weboberfläche für alle seine Kunden zur Verfügung, um dort mit den Monitoring-Daten arbeiten zu können. Das funktioniert genauso, wie in einer normalen verteilten Umgebung auch, mit dem einzigen Unterschied, dass alle beteiligten Instanzen CME Checkmk MSP verwenden müssen.

Illustration der Kommunikation im verteilten Monitoring von Checkmk MSP.

In Checkmk MSP können Kunden wichtige Konfigurationsdaten (zum Beispiel Remote-Instanzen und Benutzer) zugewiesen werden. Dem Kunden steht also über die ihm zugeordnete Instanz nur seine eigene Konfiguration mit den Host- und Service-Daten zur Verfügung. Er muss sich nur auf seiner eigenen Instanz anmelden und bekommt daher auch nur seine Daten. Ein Login auf der Zentralinstanz des Providers ist nicht erforderlich — und auch nicht möglich!

Wichtig: Sie müssen CME Checkmk MSP verwenden, wenn Sie mit Checkmk nicht nur Ihre eigene, sondern auch die Infrastruktur von anderen Unternehmen überwachen.

2. Einordnung von Checkmk MSP

Checkmk MSP ist die derzeit umfangreichste Edition von Checkmk. Inhaltlich baut sie auf CSE Checkmk Cloud auf und ist deren mandantenfähige Erweiterung. Sie verfügt über alle notwendigen Funktionen, um mit Checkmk über das verteilte Monitoring voneinander abgeschottete Instanzen für mehrere Kunden zu betreiben.

Falls Sie als Provider Checkmk als Dienst für Ihre Kunden anbieten wollen, ist dies Ihre Edition.

3. Zusätzliche Funktionen von Checkmk MSP

Die wesentliche Funktion von Checkmk MSP, die diese von anderen Editionen unterscheidet, ist die Möglichkeit, folgende Elemente Kunden zuzuweisen:

4. Upgrade zu Checkmk MSP

Für den Wechsel von einer der anderen Editionen zu Checkmk MSP folgen Sie der Upgrade-Beschreibung. Für das Upgrade zu Checkmk MSP kommt in verteilten Umgebungen nur das Offline-Upgrade in Frage.

Nach dem Upgrade sind alle kompatiblen Komponenten in Checkmk dem Provider zugeordnet. Ihnen stehen nun alle Funktionen zur Verfügung, um Kunden anzulegen und diesen Instanzen, Benutzer, usw. zuzuordnen.

Achten Sie dabei auf mögliche Abhängigkeiten, die sich aus einer bereits bestehenden Konfiguration ergeben können, und ordnen Sie auch die richtigen Elemente aus den anderen Komponenten in Checkmk entsprechend dem Kunden zu, bevor Sie die Zuordnung zu einer Instanz aktivieren.

Wichtig: Mindestens ein Benutzer muss an die Instanz eines Kunden übertragen werden. Dabei ist es egal, ob es sich um einen globalen Benutzer handelt, der an alle Instanzen repliziert wird, oder ob es sich um einen kundenspezifischen Benutzer handelt.

Weitere Hinweise finden Sie im folgenden Kapitel.

5. Konfiguration

5.1. Kunden anlegen

Das Anlegen eines Ihrer Kunden erledigen Sie mit lediglich einem Schritt: Wählen Sie unter Setup > Users > Customers den Knopf Add customer aus und vergeben Sie dort eine eindeutige ID, sowie den Namen, wie er in Checkmk angezeigt werden soll. Nach dem Speichern ist Ihr erster Kunde bereits in Checkmk angelegt:

Die Ansicht zur Verwaltung von Kunden.

Wie Sie sehen können, wird der Provider ebenfalls wie ein Kunde behandelt und ist aus diesem Grund als Provider bereits angelegt. Sie können diese Zuweisung nicht löschen.

5.2. Instanzen zuweisen

Nachdem Sie einen Kunden angelegt haben, verknüpfen Sie als nächstes die entsprechenden Komponenten in Checkmk mit diesem Kunden. Die Zentralinstanz, an die alle weiteren Instanzen der Kunden ihre Daten schicken, wird auch Provider-Instanz genannt. Die Trennung der Daten funktioniert nur, wenn Sie für jeden Kunden eine eigene Instanz anlegen und diese mit Ihrer Provider-Instanz verbinden. Die Einrichtung unterscheidet sich in diesem Fall an einer einzigen Stelle: Sie geben in den Basic settings zusätzlich zu der ID und dem Alias noch den Customer an, welchen Sie zuvor angelegt haben:

Auswahl eines Kunden bei der Verbindung einer Remote-Instanz.

Dadurch, dass auch der Provider als Kunde behandelt wird, weiß Checkmk anhand der Zuweisung zu einer Instanz immer, welcher Host zu welchem Kunden gehört.

Tip

Die Global settings einer Kundeninstanz können Sie wie gewohnt über die instanzspezifischen globalen Einstellungen konfigurieren.

5.3. Weitere Zuordnungen

Neben der Instanz selbst können Sie — wie bereits weiter oben erwähnt — auch andere Elemente aus dem Setup einem Kunden zuweisen. Dabei wird ein Element einem Kunden direkt zugewiesen. Alternativ können Sie einen Benutzer oder ein Passwort mit dem Eintrag Global aber auch allen zur Verfügung stellen. Hier am Beispiel eines Benutzers:

Die Einträge der Option 'Customer'.

Die Zuweisung erfolgt dabei immer über die Eigenschaften des jeweiligen Elements über die Option Customer. Ausgenommen davon sind die instanzspezifischen globalen Einstellungen.

Besonderheiten bei der Event Console

In der Event Console können Sie sowohl einzelne Regeln, als auch ganze Regelpakete einem Kunden zuordnen. Dabei gilt es zu beachten, dass die Vererbung bei Regelpaketen immer zwingend erfolgt. Sie kann also — anders, als bei Ordnern — nicht von den einzelnen Regeln wieder überschrieben werden. Auf diese Weise können Sie sich immer darauf verlassen, dass die Zuordnung bei jeder Regel gewährleistet ist.

Ist ein Regelpaket keinem Kunden zugeordnet, können Sie auch die einzelnen Regeln jeweils einem Kunden zuordnen.

5.4. Nicht anpassbare Komponenten

Alle Komponenten, welche im vorherigen Kapitel nicht genannt wurden, können einzelnen Kunden nicht zugewiesen werden. Dennoch gibt es ein paar Worte zu verschiedenen Komponenten zu verlieren, um auf Besonderheiten aufmerksam zu machen. Die Nichtbeachtung dieser Hinweise kann ein moderates Sicherheitsrisiko darstellen.

Host-Merkmale

Auch für Host-Merkmale (host tags) gilt, dass sie keine vertraulichen Informationen enthalten dürfen, da die Merkmale an alle Instanzen verteilt werden.

Benachrichtigungen

Regeln zu Benachrichtigungen enthalten oft Kontaktgruppen und sehr spezifische Bedingungen, unter denen die Benachrichtigung ausgelöst und verschickt werden soll. Da auch diese Regeln an alle Instanzen verteilt werden, verzichten Sie hier insbesondere auf explizite Host- und Service-Namen, Kontaktadressen und andere sensible Daten.

Anpassungen bei globalen Benutzern

Beachten Sie, dass alle Anpassungen, welche bei einem globalen Benutzer vorgenommen werden, auf alle Instanzen der Kunden übertragen werden. Globale Benutzer eignen sich daher nicht für spezielle Ansichten, eigene Graphen oder Lesezeichen, da diese sensible, kundenspezifische Daten enthalten können. Nutzen Sie die globalen Benutzer daher eher für Ausnahmefälle und nicht für reguläre, alltägliche Aufgaben.

5.5. Zertifikatsmanagement

Die im vorhergehenden Kapitel erwähnten Punkte wie Benachrichtigungen mit Kontaktgruppen oder Host-Merkmale können lediglich Informationen über organisatorische Strukturen anderer Kunden offen legen.

Anders sieht es mit der Verteilung von CA („Certificate Authority“) Root-Zertifikaten aus: Würde ein für Kunde A bestimmtes CA-Zertifikat zu Kunde B verteilt werden, bestünde die Gefahr, dass böswillige Mitarbeitende bei Kunde A einen Machine-in-the-Middle-Angriff auf die verschlüsselte Kommunikation bei Kunde B durchführen können. Aus diesem Grund werden mit der globalen Einstellung Trusted certificate authorities for SSL hinterlegte CA-Zertifikate nicht zu den Remote-Instanzen übertragen.

Der richtige Weg zur Konfiguration von kundenspezifischen CA-Zertifikaten ist es, sie in den instanzspezifischen globalen Einstellungen der Remote-Instanzen des Kunden einzutragen.

6. Unterschiede der Komponenten im Detail

6.1. Setup-Oberfläche

In Setup > Users > Customers können Sie auf eine Ansicht zur Verwaltung der Kunden zugreifen.

Bei der Einrichtung der Elemente, die Kunden zugewiesen werden können, wird ein zusätzliches Feld Customer angeboten.

Diese Funktionen werden exemplarisch im Kapitel zur Konfiguration beschrieben.

6.2. Monitoring-Oberfläche

Dashboard

Neu im Main dashboard ist das Dashlet Customers, welches sich links der Service-Probleme befindet:

Das 'Customers' Dashlet im 'Main' Dashboard.

Bei Auswahl eines Kunden gelangen Sie in eine Ansicht, in der alle seine Hosts gelistet sind. Diese Tabellenansicht funktioniert also wie die Ansicht All hosts — mit dem Unterschied, dass hier nur die Elemente eines bestimmten Kunden angezeigt werden.

Seitenleiste

Für die Seitenleiste gibt es in der Zentralinstanz das Snapin Customers, welches genauso funktioniert, wie das ähnlich aussehende Snapin Site status. Sie können sich hier den Status der Instanzen der einzelnen Kunden ausgeben lassen und mit einem Klick auf den Status bestimmte Kunden aus der Ansicht aus- oder einblenden.

Das Snapin 'Customers' der Seitenleiste.

Ansichten filtern und bauen

Selbstverständlich können Sie die Filter und Datensätze, so wie sie für das Dashlet und das Snapin verwendet werden, auch für die eigenen Ansichten benutzen. Zum einen ist dafür der Filter Site erweitert worden, um eine Ansicht anzupassen:

Der um Kunden erweiterte Filter 'Site'.

Zum anderen können Sie auch ganz neue Ansichten auf Basis eines oder aller Kunden bauen. Wählen Sie dazu als Datenquelle All customers aus:

Die Datenquelle 'All customers' beim Erstellen einer Ansicht.
Auf dieser Seite