Checkmk

Aus Agilos Wiki
Version vom 29. November 2024, 15:34 Uhr von Yannik.Delles (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „category:Dokumentationen =Was ist Checkmk?= Checkmk ist eine Software zum überwachen von Server, Netzwerke, Applikationen und ähnliches. Über „Agente…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen


Was ist Checkmk?

Checkmk ist eine Software zum überwachen von Server, Netzwerke, Applikationen und ähnliches. Über „Agenten“ lassen sich die einzelnen „Hosts“ gebündelt auf einer Web-Oberfläche überwachen und kontrollieren.

Begriffe die im Laufe des Eintrages auftreten

Name Beschreibung
Site Damit ist die Instanz gemein, mit der wir uns Verbinden und über die alles angezeigt wird.
Host Der Host ist der Server, den wir hauptsächlich beobachten, und über den wir Informationen wollen.
Agent Der Agent ist die Verbindung zwischen unserem CheckMK Server und dem überwachten Server.
SNMP Simple Network Management Protokol dient zum Überwachen von Netzwerkgeräten.

Einrichtung eines Checkmk Servers

Installation von CheckMK

Um Checkmk zu installieren, brauchen wir erstmal einen Serve. Dabei ist es egal, was für ein Betriebssystem der Server hat, Checkmk gibt es inzwischen für alle möglichen Betriebssysteme. Zuerst öffnen wir Checkmk und wählen das OS aus, für das wir Checkmk benutzen möchten, in unserem Fall „Checkmk for Linux“. Danach wählen wir die Edition aus, die wir verwenden möchten. Abschließend müssen wir angeben für welche Plattform wir Checkmk haben möchten. Dafür wählen wir einmal die Version aus, die wir von Checkmk haben möchten, dann die gewünschte Plattform und dann die OS-Version. Dann kann man sich die Datei entweder herunterladen, oder über den dann extra erstellten Befehl, direkt über das Terminal herunterladen. In dem Terminal wird die Datei dann über „apt install Dateiname“ installiert. Und damit haben wir Checkmk auch schon auf unserem Server installiert.

Erstellen einer Site

Um jetzt mit dem Monitoring zu beginnen, muss man eine „Site“ erstellen. Dazu geben wir im Terminal des Linux Server den Befehl „omd create Name der Site“ ein und erstellen damit im ersten Schritt die Site. Es wird automatisch ein Admin zusammen mit einem Passwort erstellt. Das Passwort kopiert man sich raus oder schreibt es sich auf, denn das werden wir gleich brauchen. Nun starten wir die Site mit dem Befehl „omd start Name der Site“. Durch den Befehl „omd status Name der Site“ lässt sich nun überprüfen ob auch alles richtig läuft. In einem Browser geben wir als URL nun „IP des Servers/Name der Site“ ein und melden uns mit den automatisch generierten Anmeldedaten an. Und damit sind wir auf der Weboberfläche von unserem Checkmk Monitoring. Über den Reiter „Setup“ und dann „Users“ kann man das Password des Admins ändern.

Anlegen eines Agenten/Host

Wenn wir jetzt zum Beispiel einen Server monitoren möchten, dann müssen wir Checkmk erst sagen, auf welchen Agenten er zugreifen soll. Dafür müssen wir auf dem jeweiligen Server nur einen Agenten installieren. Dazu gehen wir bei dem Checkmk WATO (Web Administration Tool) auf „Setup“ und dort im Punkt „Agents“ ist der Unterpunk „Windows, Linux, Solaris, AIX“, diesen klicken wir an. Nun haben wir ein Fenster, welches uns alle möglichen Agenten darbietet. Wir suchen uns den benötigten Treiber raus, und laden ihn herunter. Danach müssen wir die entsprechende Datei auf den Ziel-Computer kopieren. Je nach Betriebssystem läuft das etwas anders ab. Sobald sich die Datei auf dem Ziel-Computer befindet können wir den Agenten über das Terminal installieren. Sollte sich ein älterer Agent noch auf dem System befinden, können wir mit dem Zusatz „-U“ den Agenten auch einfach nur Updaten. Und damit ist die Installation des Hosts auch schon erledigt. Jetzt müssen wir über der Web Oberfläche den Host anlegen. Dazu gehen wir auf „Setup“. Dort bei dem Punkt „Hosts“ ist der Unterpunkt „Hosts“. Jetzt hat man die Möglichkeit den Host entweder im „Main“ Ordner anzulegen, oder man sortiert die Hosts die man hat in Ordner, um sich die Einteilung zu erleichtern. Dazu kann man dann „Add folder“ nutzen und kann die Ordner dann so benennen wie man sie eingeteilt haben möchte (z.B: nach Standort, Betriebssystem oder ob es sich dabei um Netzwerke handelt). Mit der Funktion „Add host“ kann man dann einen Host anlegen. Dazu gibt man dem Host einen Namen, dieser Name dient in Checkmk als interne ID, unter der dieser Host jedes Mal aufgerufen wird. Sollte es sich dabei um eine Webseite handel, dann kann man hier auch gleich den Namen der DNS eintragen, unter der die Seite zu erreichen ist. Wenn der Hostname jetzt nicht gleich mit seiner DNS ist, dann kann man unter „Network address“ auch direkt die IP-Adresse des Servers eintragen. Mit „Save & view folder“ speichert man dann schlussendlich die Erstellung des Host.

Registrierung eines Hostes

Die Registrierung des Host erfolgt dann wieder über das Terminal auf dem Server. Dafür brauchen wir einmal den Namen des Checkmk-Servers (Oder die IP-Adresse), der Checkmk-Instanz (also den Namen der Site) und den des Hosts (den Namen, dem wir ihm im vorherigen Schritt gegeben haben). Zudem noch den Namen eines Checkmk-Benutzers, der Rechte auf die REST-API hat. Dazu geben wir folgenden Befehl ein: „cmk-agent-ctl register --hostname Name des Hosts --server Name/IP des Servers --site Name der Site --user Name des Users“. Wenn alles gestimmt hat, werden wir aufgefordert das Passwort des Nutzers einzugeben. Und dadurch ist die gesicherte Verbindung hergestellt. Nun wechseln wir wieder zur Weboberfläche und öffnen wieder den Punkt „Setup“ -> “Hosts“ -> “Hosts“. Dort suchen wir nun den von uns erstellten Host und klicken auf das Stift Symbol, damit lassen sich Änderungen an den Einstellungen des gewählten Objektes vornehmen. Allerdings wollen wir nur die Funktion „Save & run connection test“ nutzen. Darauf hin öffnet sich die Seite „Test connection to host“. Checkmk versucht nun den Host auf verschiedensten Wegen zu erreichen. Am wichtigsten sind dabei die oberen beiden Kasten: „Ping“ und „Agent“. Im Kasten „Agent“ erhalten wir die Gewissheit, dass Checkmk mit dem von uns Installierten Agenten kommunizieren kann. Im Kasten „Ping“ versucht Checkmk über SNMP kontakt aufzunehmen, was hilfreich sein wird, sobald Netzwerkgeräte monitort werden sollen. Wenn man jetzt noch andere Hosts testen möchte, dann kann man dies über „Host Properties“ erreichen. Dort wählt man einen anderen Host aus und kann den Test von neuem Starten. Wenn man mit allem fertig ist, kann man mit „Save & go to host properties“ alles speichern und gelangt wieder zu dem Punkt, bei dem alle Hosts hinterlegt sind.

Einrichtung von Services

Nachdem der Host aufgenommen wurde, geht es jetzt darum, die Services einzurichten. Dafür geht man bei den Einstellungen des Host auf „Save & run service discovery“, wodurch sich die Seite „Services of host“ öffnet. Dort können wir einstellen, welche Services wir gerne beim Host überwachen möchten. Wenn der Agent richtig läuft, dann schlägt Checkmk an dieser Stelle bereits einige Services vor, die sich überwachen lassen. An dieser Stelle könne Services verschiedene Status haben.

Undecided: Es wurde nicht entschieden, ob der Service überwacht werden soll.
Monitored: Der Service wird überwacht.
Disabled: Es wurde entschieden, den Service nicht zu überwachen.
Vanished: Der Service wurde überwacht, ist aber verschwunden.

Genau in dieser Reihenfolge werden die Server auch angezeigt. Über den Punkt „Monitor undecided services“ werden alle Services, die aktuell auf „Undecided“ stehen zu „Monitored“ geändert. Sollte ein Service mal verschwinden, weil z.B. das Dateisystem entfernt wurde, dann würde dieser Service als „UNKNOWN“ angezeigt werden, oder in diesem Server als „Vanished“. Mit der Funktion „Remove vanished services“ werden alle „Vanished“ Services aus dem Monitoring entfernt. Für den Anfang ist es am einfachsten, wenn man die Funktion „Accept all“ nutzt, dadurch wird alles einmal bestätigt – Services werden monitored, verschwundene Services entfernt, Host Labels aktualisiert. Sollte sich am Host etwas geändert haben, dass ein neues Service hervorrufen würde, so kann man später immer wieder zu diesen Optionen wechseln, und nachträglich Services hinzufügen (oder auch entfernen).

Änderungen aktivieren

Immer, wenn eine Änderung in Checkmk vorgenommen wird, dann wir diese nicht sofort ausgeführt, sondern wird in einer „Konfigurationsumgebung“ zwischengespeichert. Diese Änderungen müssen jedes Mal akzeptiert werden, bevor sie dann auch in echt durchgeführt werden. Ob und wieviel Änderungen gerade akzeptiert werden müssen, sieht man oben rechts auf jeder Seite. Wenn man auf diese „Warnung“ klickt, kommt man auf die Seite „Activate pending changes“. Dort stehen unter „Pending changes“ alle Änderungen, die aktuell vorgenommen wurden. Diese kann man sich nochmal anschauen und unter Umständen nochmal entfernen, falls man etwas falsch erstellt hat oder etwas anders einstellen möchte. Wenn man mit den Änderungen zufrieden ist, dann kann man mit der Funktion „Activate on selected sites“ einmal alle Änderungen vornehmen und dieser werden dann auch durchgeführt.

Monitoring von Checkmk

Analyze configuration

Die Analyze configuration erlaubt dir, Fehler in der Einstellung von Checkmk zu finden. Du erreichst ihn unter „Setup“ -> „Maintenance“ und dort dann „Analyze configuration“. Das LAden der Seite dauert etwas, da bereits jetzt Tests durchgeführt werden. Hier findest du nun die Tests und die passenden Ergebnise, die durchgeführt wurden. Zu jedem Test gibt es Informationen, die man sich mit dem blauen Icon am Anfang des Testes anzeigen lassen kann. In diesen Informationen sieht man, was genau dieser Test tut. Sollte es hier eine Warnung geben, so hat man hier die Möglichkeit, die Werte des Testes abzuändern. Wenn man hier Änderungen vornimmt, muss man diese auch wieder über das Gelbe Icon am oberen Rand akzeptieren. Selbst nachdem man die Einstellungen angepasst hat, wird einem eine Warnung hier angezeigt. Das liegt daran, dass Checkmk nicht weiß, wie die passenden Werte sind, die wir brauchen. Daher kann man mit dem Werkzeug Symbol auf der rechten Seite diese Warnung akzeptieren und dann wird dieser Test als „OK“ angezeigt.

Problem erkennen

Probleme in Checkmk sind alle Zustände in denen ein Server oder ein Host nicht auf OK steht. Dies kann unterschiedliche Gründe haben. Wenn man auf den Host/Service klickt, bekommt man Details zu dem jeweiligen Punkt und sieht dort dann auch, was der Grund für den Fehler ist. Um jetzt ein Problem zu bestätigen, geht man auf den problematischen Host/Service. Dort kann man entweder direkt auf „Acknowledge problems“ gehen, oder das Feld im Reiter „Commands“ nutzen. Wenn man die Checkboxen aktiviert hat, dann kann man auch mehrere Probleme bestätigen. Wenn man auf „Acknowledge problems“ geht, dann wird man dazu aufgefordert ein Kommentar einzugeben. Da biete es sich dann einfach an, die Lösung hinzuschreiben. Nach dem bestätigen wird dann das Problem nicht mehr bei den „unhandeld Problems“ angezeigt. Sollte man nun wieder auf die Probleme gehen, hat man die Möglichkeit, die Probleme wieder als „unhandeld“ anzuzeigen. Dazu wählt man einfach den Punkt „Remove acknowledgement“ aus. Man wird gefragt, ob man dies wirklich tun möchte und danach wird der Fehler wieder normale angezeigt. Zusätzlich zu den normalen Kommentaren, kann man noch Sonderbedingungen hinzufügen. Einmal „sticky“, dabei wird ein Problem als „Handeld“ markiert, selbst wenn sich der Status von z.B. Warn auf Crit ändert. Dies hat den Vorteil, dass Probleme keine neuen Benachrichtigungen senden, obwohl sie bereits bearbeitet werden. Und das andere ist „persistent comment“. Dabei wird das Kommentar zu dem Problem quasi angepinnt und verschwindet nicht, wenn das Problem behoben ist. Dies hat den Vorteil, dass man auch später noch nachvollziehen kann, was genau gemacht wurde.

Wartungszeiten

Wartungszeiten werden genutzt um gezielte Downtimes von Services und Hosts einzurichten, damit man dafür keine Fehlermeldungen bekommt. Wenn zum Beispiel ein Rechner, der über Checkmk kontrolliert wird, über Nacht abgestellt wird, würde eine Benachrichtigung generiert werden, da dieser ja nicht mehr erreichbar ist. Um dies zu umgehen kann man Wartungszeiten für diesen Host einrichten. Um die Wartungszeit einzurichten geht man zuerst auf den Host, den man einrichten möchte. Jetzt könnte man zwar direkt auf „schedule downtime“ gehen, dann würden aber nur die Services des Hostes mit einer Wartungszeit gepflegt werden. Da wir aber auch den Host selbst mit einer Wartungszeit versehen wollen, klicken wir einmal auf den Hostnamen. Hier können wir nur direkt auf „schedule downtime“ gehen oder wir öffnen diese über das „Commands“ Menü. Als erstes müssen wir ein Kommentar/Grund für die Downtime angeben. Danach kann man einstellen, wann und wie lange die Downtime sein soll. Ob sie von jetzt an für eine Stunde geht, oder man kann einstellen, dass sie jeden Tag um 18 Uhr anfängt und um 8 Uhr am nächsten Tag wieder aufhört. Man gibt einfach an, wie man es braucht. Wenn ein Host dann in die Downtime wechselt, gibt es einmal ein Symbol, dass dies darstellt. Sollte in der Downtime jetzt Probleme auftreten, so wird dies keine Benachrichtigung/Problem verursachen. Wenn ein Host sich gerade in der Downtime befindet, dann kann man über das Symbol die Wartungszeiten aufrufen. Hier sieht man dann die aktuellen und zukünftigen Wartungszeiten des Hostes. Über die Auswahl der Downtime hat man auch die Möglichkeit, die einzelnen Downtimes zu bearbeiten. Sollte man zum Beispiel die aktuelle Downtime länger benötigen, kann man ganz einfach die Zeit verlängern, entweder mit fest vorgelegten Werten oder man gibt eine eigene Zeit an. Wenn du jetzt mehrere Hosts hast, die zum gleichen Zeitpunkt die Downtime haben, dann könnte man dies bei jedem Host einzeln eintragen. Das würde aber zu viel Zeit brauchen, weshalb man dafür auch eine Regel schreiben kann. Das geht man links auf „Setup“ und sucht nach "Downtime". Dort findet man nun die Optionen für "Recurring downtimes for services" und "Recurring downtimes for services". Hier kann man dann die Downtime Regeln erstellen, wie man es gewöhnt ist. Zuerst geben wir der Regel wie gehabt ein Kommentar, welches bei jeder Downtime sagt, warum es diesen gibt. Dann stellt man ein, ab wann die Downtime das erste Mal Greifen soll. Man kann auch einstellen, wann die Regel das letzte Mal greifen soll, wenn man z.B. möchte, dass diese Regel nur ein Jahr gilt. Danach gibt man das Intervall ein, wann immer eine Downtime veranlasst werden soll. Die Dauer kann man hier auch manuell einstellen, da nicht jeder Host gleichschnell ist. Unter den Conditions kann man dann noch einstellen, welche Hosts von der Regel betroffen sind.

Bulk action - Bearbeitung mehrere Hosts/Services gleichzeitig

Mit Bulk actions können Änderungen an mehreren Hosts gleichzeitig vorgenommen werden. Dies ist hilfreich, wenn man nur vereinzelte Hosts bearbeiten möchte und nicht alle. Dazu wählt man in Setup den Punkt „Hosts“ aus. Hier sieht man nun die Hosts, unterteilt in den Ordnern. Wenn man hier jetzt über die Checkbox mehrere Hosts auswählt, kann man über "Hosts" und dem Punkt „on selected Hosts“ verschiedene Dinge einstellen. Der wichtigste wird sein „Edit attribute“. Hiermit kann man die Punkte der Hosts anpassen, wie z.B. die IP-Adresse oder unter welche Site die Hosts gecheckt werden. Wichtig ist zu beachten, dass man hier in dem Menü nur angibt was man ändern möchte. Nur weil man ein Punkt weglässt, heißt es nicht, dass dieser Wert wieder auf seinen Ursprünglichen zurückfällt. Dafür braucht man die Funktion „remove explicit attribute settings“. In diesem Menü findet man nur die Punkte, die ein Wert eingetragen haben. Und hier kann man einstellen, dass bei den von uns markierten Hosts der eingetragene Wert entfernt werden soll, wodurch sie wieder auf ihren Standartwert wechseln.

Netzwerk Topologie

Bei einem Netzwerk in Checkmk kann man sich anzeigen lassen, inwiefern die Hosts mit der Site verknüpft sind. Zum Beispiel sind 4 der Hosts über einen Switch mit der Site verbunden. Wenn jetzt der Switch ausfallen würde, dann würden auch die 4 Hosts ausfallen und wir würden für alles eine Benachrichtigung bekommen. Da es mehr Sinn macht, in diesem Fall nur über den Switch bescheid zu wissen, kann man ein „Parent“ für die Hosts festlegen. Dazu muss man bei "Setup" auf „Host“ gehen. Dort kann man bei den Einstellungen für den Einzelnen Host ein Parent eintragen. Checkmk weiß dann, dass, um Zugriff auf den Host zu bekommen, er zuerst auf den Parent zugreifen muss. Und sollte der Parent dann nicht mehr erreichbar sein, wird der Host nicht als „Down“ angezeigt, sondern als „Unreachable“. Wenn ein Host über mehrere Switches erreichbar sein kann, dann kann man einem Host auch mehrere Parents zu weißen. Dadurch wird der Host selbst dann noch als „Up“ angezeigt, selbst wenn einer der Parents abgeschaltet ist.