Windows systemen monitoren met Checkmk in een Docker container

Het gebruik van een monitoring gereedschap geeft je een geweldige kans om de uptime en de betrouwbaarheid van je infrastructuur te verhogen. In feite is bewaking essentieel voor elke organisatie. In mijn vorige zelfstudie noemde ik al het belang van monitoring en liet ik zien hoe je Checkmk op een Linux server installeert. Nu gebruik ik een gewone PC die op Windows 10 draait om Checkmk in Docker te draaien en wil je laten zien hoe je Checkmk ook op een gewone computer kunt draaien. Je hebt geen monitoring of Linux ervaring nodig. Deze zelfstudie is ook geschikt voor Windows gebruikers en geeft je een gemakkelijke introductie in de professionele bewakingswereld.

Vereisten

Je hebt een host systeem nodig dat Docker containers kan draaien. Deze zelfstudie gebruikt Docker Desktop versie 4.3.2 voor Windows, die je als eerste stap moet installeren, tenzij je een andere Docker engine gebruikt. Mocht je Docker ook onder Windows gebruiken, zorg er dan voor dat je host systeem voldoende hardware bronnen heeft: Als een op Linux gebaseerd gereedschap heeft Checkmk vrij lage systeemeisen, maar de combinatie van Windows als host systeem en container virtualisatie voegt wel behoorlijk wat overhead toe. Bovendien moet de host verbonden zijn met het internet. Deze handleiding is gebaseerd op de Checkmk Raw Editie versie 2.0.0p17.

Aan de slag

Als eerste stap moet je Docker Desktop voor Windows of een andere Docker Engine naar keuze downloaden en installeren. Ik gebruikte Docker Desktop, omdat het gratis is voor privégebruikers en eenvoudig te gebruiken.

  • Download en installeer Docker Desktop voor Windows.
  • Afhankelijk van je Windows versie moet je na de installatie van Docker Desktop ook de WSL2 Linux kernel update voor Windows downloaden en installeren.
  • Nadat je het WSL2 Linux kernel update pakket gedownload en geïnstalleerd hebt, open je de opdrachtprompt. Je vindt dat onder het Start menu en zoek naar “cmd”.
  • Je moet WSL 2 instellen als de standaardversie bij het installeren van Linux-gebaseerde systemen zoals Docker Desktop. Gebruik het commando:
wsl --set-default-version 2

Checkmk Raw Edition installeren op Windows

Ik ga voor deze tutorial de Checkmk Raw Edition gebruiken, de community GPLv2 editie die ook beschikbaar is op Docker Hub. Als alternatief is er een proefversie van de Checkmk Enterprise Editie. De Enterprise Editie komt met een aantal extra mogelijkheden en de proefversie geeft je de mogelijkheid ze allemaal 30 dagen gratis te gebruiken. De handleiding zal voor de Enterprise Editie redelijk gelijk zijn, het belangrijkste verschil is dat je de Enterprise Editie niet uit de Docker hub kunt halen, maar moet downloaden van de Checkmk website voor je de volgende stap zet. Als je de Checkmk Raw Edition gebruikt, kun je in de Windows terminal blijven zitten en het volgende commando gebruiken om de Raw Edition te trekken:

docker container run -dit -p 8080:5000 --tmpfs /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 -v monitoring:/omd/sites --name cmk_demo -v /etc/localtime:/etc/localtime:ro --restart always checkmk/check-mk-raw:2.0.0-latest

In het commando heb ik de parameters toegevoegd die aanbevolen worden door de Checkmk gids voor Docker. Het staat je vrij ze aan te passen, natuurlijk, maar voordat je dat doet, moet je de gidsen pagina lezen. Wacht tot Docker de Checkmk images heeft opgehaald. Je hebt nu een container gemaakt (met de naam “cmk_demo” in mijn geval) die Checkmk draait. Je hebt ook de gegevens van de site in deze container gebonden aan een persistente plaats in het bestandssysteem van de Docker node. Ik noemde het volume “monitoring”, je kunt andere namen kiezen, als je wilt.

Je monitoring draait nu al, maar je moet het willekeurig gegenereerde wachtwoord voor de cmkadmin gebruiker kennen. Standaard genereert Checkmk een eerste gebruiker “cmkadmin” met een willekeurig wachtwoord voor je Checkmk site. Je vindt dat wachtwoord in de container logs. Gebruik het commando docker container logs en voeg de naam van je Checkmk site toe in je Windows command prompt:

docker container logs cmk_demo

cmd dat docker logs toont

Maak je geen zorgen over het terminal commando om je wachtwoord te veranderen. Je zou de CLI van deze container kunnen openen in Docker Desktop (niet de Windows opdrachtprompt), en de commando’s “omd su cmk” en “htpasswd etc/htpasswd cmkadmin” gebruiken. Maar het is gemakkelijker om dat in de gebruikersinterface van Checkmk te doen.

Kopieer het wachtwoord, je hebt het nodig in de volgende stap. Als de installatie goed gelukt is, kun je nu je Checkmk site bezoeken met de link http://localhost:8080/cmk/check_mk/ in je browser.

Verander je wachtwoord in Checkmk

  • Log in op Checkmk met de gebruiker “cmkadmin” en je wachtwoord dat je eerder van de command prompt kopieerde.
  • Je ziet een leeg dashboard, omdat je monitoring nog geen hosts bevat. Ga, voor je ze toevoegt, eerst naar “User” in het menu links en klik op Change password.
  • Voer je oude wachtwoord in en bevestig het nieuwe.

Voeg de localhost als eerste host aan Checkmk toe

Als eerste host moet je je monitoring host toevoegen, die in dit geval een docker container is. Checkmk als geavanceerde Docker en Kubernetes monitoring, maar om te beginnen is de gemakkelijkste versie in dit geval de Checkmk Linux agent te gebruiken die al in je Checkmk container draait.

  • Ga in de zijbalk links naar Setup -> Hosts en klik op “Add host”.
  • Voer “localhost” in bij “Hostname” en klik op “Save& go to service configuration”.

Screenshot van Checkmk die de localhost toevoegt

    • Wacht op de automatische ontdekking van de service. Checkmk controleert nu, of hij gegevens uit de agent kan trekken en of er nieuwe bewakingsdiensten zijn.
    • In mijn geval detecteerde Checkmk 13 diensten en ook een paar labels. Klik op de knop “Fix all” om al deze diensten aan je bewaking toe te voegen.

    Geautomatiseerde dienstontdekking in Checkmk

    In dit geval ontdekte Checkmk de diensten op de container die door de Checkmk agent geleverd wordt, maar de automatische dienstontdekking werkt ook met SNMP of andere protocollen, wat Checkmk een goed hulpmiddel voor netwerkbewaking maakt. De automatische detectie van labels is een goede manier om verschillende soorten apparaten te beheren en je kunt natuurlijk ook je eigen labels toevoegen. De “Fix all” knop voegt alle gedetecteerde diensten en host labels toe aan je bewakingsdashboard en verwijdert diensten die verdwenen zijn. Natuurlijk kun je de diensten handmatig beheren, maar de fix all functie maakt het een stuk eenvoudiger.

    Windows systemen monitoren met Checkmk

    Omdat de container op mijn Windows laptop draait, wil ik je laten zien hoe je Windows systemen met Checkmk kunt bewaken. De beste manier om Windows apparaten te bewaken is de Checkmk agent voor Windows. Hoewel de Linux agent al in de Checkmk container draaide, moet je hem eerst op je Windows machine installeren, voordat je de host aan je bewaking toevoegt.

    • Ga naar Setup -> Agents en kies het juiste pakket voor je besturingssysteem. In mijn geval Setup -> Agents -> Windows -> check_mk_agent.msi
    • Download en installeer de agent door erop te klikken. Voer het .msi bestand uit.

    Schermafbeelding van Checkmk die de Checkmk agent voor Windows toont

    • Klik op Setup -> Hosts en “Add host” zoals eerder
    • Voeg de naam van je Windows host toe onder “Hostname” in de “Basic settings” en het IP adres van de host onder “Network address” in het veld naast “IPv4 address”. Als je niet zeker bent van het IP adres van je Windows host, kun je het commando ipconfig gebruiken in de Windows opdrachtprompt.
    • Laat de andere gebieden ongewijzigd en klik op “Save & go to service configuration”. Wacht op de automatische service ontdekking en klik op “Fix all”.

    Laatste stap: Activeer de veranderingen in Checkmk

    Nu zijn er twee hosts in je bewaking, maar Checkmk heeft een veiligheidsmechanisme. Alle aangebrachte wijzigingen worden eerst vermeld onder “Pending changes”, zodat je eventuele wijzigingen kunt bekijken voordat ze je bewaking beïnvloeden

    • Activeer je wijzigingen door te klikken op het gemarkeerde veld met het gele uitroepteken (!) rechts bovenaan.
    • Klik op “Activate on selected sites”, en je hebt met succes je hosts aan je monitoring toegevoegd.

    Screenshot van Checkmk activeer hangende wijzigingen

    Checkmk maakt onderscheid tussen Setup als configuratie-omgeving, waarin je de hosts, diensten en instellingen beheert, en het gebied dat Monitor heet, waarin de eigenlijke operationele bewaking plaatsvindt. Nieuwe hosts en andere veranderingen in de configuratie hebben aanvankelijk geen invloed op de bewaking. Je moet deze activeren voor ze in productie gaan.

    En dat was het. Klik in het menu links op Monitor -> Alle hosts om je hosts te vinden. De combinatie van Docker onder Windows is tamelijk onconventioneel, maar is prima om Checkmk te testen of om servers in Windows omgevingen te bewaken. Als je grotere omgevingen wilt bewaken en alleen Windows servers hebt, moet je overwegen om het virtuele of fysieke Checkmk apparaat te gebruiken voor bewaking.