Checkmk: Enkel IT-infrastruktur-overvåking for hybridmiljøer

Overvåking av IT-infrastruktur kan være utfordrende, men et verktøy som Checkmk forenkler prosessen.

Mange virksomheter har integrert skybaserte løsninger i sin teknologiske infrastruktur for å forbedre ytelsen. Samtidig opprettholder de ofte egne nettverk og lokal infrastruktur. Denne overgangen til hybrid infrastruktur krever en tilpasset overvåkingsstrategi på grunn av den store mengden data som genereres kontinuerlig fra ulike komponenter som operativsystemer, lagring, servere og skymiljøer. Disse dataene er avgjørende for å sikre optimal ytelse av applikasjonene.

Disse datamålingene gir viktig innsikt for DevOps-teamene for å evaluere infrastrukturens tilstand. Derfor trenger organisasjoner overvåkingsløsninger som raskt kan identifisere problemer ved hjelp av datamålinger, visualiseringer og analyser. Checkmk er et anerkjent og effektivt verktøy for infrastrukturovervåking. Denne artikkelen utforsker hvorfor Checkmk har et godt omdømme og hvordan man kommer i gang med verktøyet.

Hva er Checkmk?

Checkmk overvåker kontinuerlig funksjonen i alle deler av moderne IT-miljøer, spesielt hybrid infrastruktur. Checkmk er fleksibelt og støtter containere, skyressurser og lokale systemer som brytere og servere. Verktøyet er brukervennlig og enkelt å konfigurere, med automatiserte varsler basert på omfattende IT-ekspertise og andre intelligente funksjoner som bidrar til å spare tid.

Det finnes to gratisalternativer for bruk av Checkmk. Checkmk Raw Edition er en åpen kildekode-løsning uten begrensninger. Det andre alternativet er en prøveversjon av Checkmk Enterprise, som tilbyr alle funksjoner i Checkmk Enterprise Editions. Etter 30 dager er antallet overvåkede verter begrenset til 25.

Hvordan løser Checkmk overvåkingsproblemer?

Checkmk kan overvåke applikasjoner, servere, databaser, nettverk, containere, lagring og andre IT-ressurser. Verktøyet har over 2000 overvåkingsplugin-moduler som muliggjør utvidelse for å overvåke spesifikke teknologier fra ulike leverandører. Populære Checkmk-plugin-moduler inkluderer støtte for Docker, Kubernetes, Cisco, Nginx, VMware, Linux, Windows, AWS og Dell. Med sitt brede utvalg av plugin-moduler er Checkmk en lovende løsning for infrastrukturovervåking.

En viktig faktor for enhver overvåkingsløsning er hvor raskt og nøyaktig den kan lese datamålinger og konfigurere intelligente varsler. Checkmk oppfyller disse kravene. Med sin automatiske oppdagelsesfunksjon kan Checkmk identifisere over 90% av tjenestene og enhetene. I tillegg krever mange virksomheter skalerbarhet og automatisering. Checkmk lar deg enkelt skalere overvåkingskapasiteten fra hundre til tusenvis av verter, og utnytte agentene for automatisering.

Installer Checkmk i en Docker-container

I denne artikkelen skal vi installere Checkmk Raw Edition i en Docker-container på en Linux-server som kjører Ubuntu 20.04. Fra Dockerhub kan man laste ned Checkmk Docker-container. Denne containeren har over 5 millioner nedlastninger, noe som indikerer populariteten til Checkmk.

Last ned det nyeste Checkmk-bildet og kjør det i en container ved hjelp av kommandoen «docker container run».

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

Containeren får navnet «monitoring», webserveren lytter til port 5000 og er tilgjengelig via port 8080. Containeren bruker et midlertidig filsystem og lokal tidssone.

[email protected]:~$ sudo docker container run -dit -p 8080:5000 --tmpfs /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 -v/omd/sites --name monitoring -v/etc/localtime:/etc/localtime:ro --restart always checkmk/check-mk-raw:2.0.0-latest
Unable to find image 'checkmk/check-mk-raw:2.0.0-latest' locally
2.0.0-latest: Pulling from checkmk/check-mk-raw
33847f680f63: Pull complete
474905f2790b: Pull complete
1804f0e63047: Pull complete
f36fe6334464: Pull complete
03c68dfa69cf: Pull complete
b60cfdb78e96: Pull complete
Digest: sha256:7788fa2e31c7270be201d75285c13ccc7a74f67f991872ea63ba0cfa6708cac6
Status: Downloaded newer image for checkmk/check-mk-raw:2.0.0-latest
9729e323a840a08b0e758cfa9e6dbf76ba5dab4b2ecc4eea5174b8ee1a5cfbcf

Du kan kontrollere om Docker-bildet ble lastet ned ved å bruke kommandoen «docker images».

[email protected]:~$ sudo docker images
REPOSITORY              TAG            IMAGE ID       CREATED        SIZE
bitnami/node-exporter   latest         ba0f519ca49b   34 hours ago   104MB
checkmk/check-mk-raw    2.0.0-latest   097319702432   13 days ago    1.03GB
hello-world             latest         feb5d9fea6a5   7 weeks ago    13.3kB

Bruk kommandoen «docker ps» for å sjekke om Checkmk-containeren kjører.

[email protected]:~$ sudo docker ps
CONTAINER ID   IMAGE                               COMMAND                  CREATED              STATUS                             PORTS                                                 NAMES
9729e323a840   checkmk/check-mk-raw:2.0.0-latest   "/docker-entrypoint.…"   About a minute ago   Up 59 seconds (health: starting)   6557/tcp, 0.0.0.0:8080->5000/tcp, :::8080->5000/tcp   monitoring
3d3a95ed3c25   bitnami/node-exporter:latest        "/opt/bitnami/node-e…"   25 hours ago         Up 25 hours                        9100/tcp                                              node-exporter

For å finne påloggingsinformasjonen til Checkmk-webgrensesnittet, skriv ut loggen fra Checkmk-containeren.

[email protected]:~$ sudo docker container logs 9729e323a840 
### CREATING SITE 'cmk'
Adding /opt/omd/sites/cmk/tmp to /etc/fstab.
Going to set TMPFS to off.
Temporary filesystem already mounted
Updating core configuration...
Generating configuration for core (type nagios)...Precompiling host checks...OK
OK
Executing post-create script "01_create-sample-config.py"...OK
Created new site cmk with version 2.0.0p15.cre.

  The site can be started with omd start cmk.
  The default web UI is available at http://9729e323a840/cmk/

  The admin user for the web applications is cmkadmin with password: ClFxBPre
  For command line administration of the site, log in with 'omd su cmk'.
  After logging in, you can change the password for cmkadmin with 'htpasswd etc/htpasswd cmkadmin'.

### STARTING XINETD
[ ok ] Starting internet superserver: xinetd.
### STARTING SITE
Temporary filesystem already mounted
Starting mkeventd...OK
Starting rrdcached...OK
Starting npcd...OK
Starting nagios...OK
Starting apache...OK
Starting redis...OK
Initializing Crontab...OK
### STARTING CRON
### CONTAINER STARTED

Checkmk Docker-containeren kjører som standard på https://localhost:8080/cmk/check_mk. Output fra kommandoen ovenfor viser at brukernavnet er «cmkadmin» og passordet, i dette tilfellet, er «ClFxBPre». Åpne adressen i en nettleser og logg deg på med disse opplysningene.

Etter innlogging vises «Hoveddashbordet», som er tomt fordi ingen verter er lagt til ennå.

Overvåk Docker med Checkmk

Normalt installerer du Checkmk-agenten på maskinen som er vert for Docker-containerne, og bruker deretter Checkmk sin plugin-modul for Docker til å overvåke alle containere. Denne plugin-modulen (mk_docker.py) bruker Dockers Python-API for å spore Docker-containere og gi full innsikt i deres sanntidsstatus og ytelse. Du finner mer informasjon om Docker-overvåking med Checkmk på Checkmk-nettstedet.

Siden det kun kjører én Docker-container i mitt Docker-miljø (min Checkmk Docker-container), vil jeg bare bruke Checkmk-agenten som kjører i Docker-containeren, og ikke installere Checkmk på min Docker-vert. Agenten er forhåndsinstallert i Checkmk-containeren, så jeg trenger bare å legge til Checkmk-containeren som en vert.

Finn IP-adressen som Docker-tjenesten kjører på ved å bruke kommandoen «ifconfig» i terminalen.

[email protected]:~$ ifconfig
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        inet6 fe80::42:59ff:fe8a:8ba8  prefixlen 64  scopeid 0x20<link>
        ether 02:42:59:8a:8b:a8  txqueuelen 0  (Ethernet)
        RX packets 5559  bytes 7230215 (7.2 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4164  bytes 614703 (614.7 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.108  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::144a:4682:35e7:bb2  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:91:82:82  txqueuelen 1000  (Ethernet)
        RX packets 699491  bytes 1044235622 (1.0 GB)
        RX errors 0  dropped 7  overruns 0  frame 0
        TX packets 101260  bytes 7555470 (7.5 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 20655  bytes 8446042 (8.4 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 20655  bytes 8446042 (8.4 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

veth44ba5ce: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::145f:1fff:fee9:a7b0  prefixlen 64  scopeid 0x20<link>
        ether 16:5f:1f:e9:a7:b0  txqueuelen 0  (Ethernet)
        RX packets 5559  bytes 7308041 (7.3 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4173  bytes 616263 (616.2 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vetha82ee43: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::585c:6fff:fe0a:a79b  prefixlen 64  scopeid 0x20<link>
        ether 5a:5c:6f:0a:a7:9b  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 92  bytes 9799 (9.7 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

I mitt tilfelle kjører Docker-tjenesten på 172.17.0.1. Neste trinn er å legge til Docker-tjenesten som en vert i Checkmk, slik at den kan overvåkes.

  • Gå til Checkmk og klikk på «Setup» -> «Hosts».

  • Angi vertsnavnet og IP-adressen og klikk på «Save & go to service configuration».

  • Checkmk starter automatisk tjenesteoppdagelsen.

Rull ned for å se overvåkingstjenestene som kjører under Docker-verten. Du vil se at tjenestene ikke overvåkes i øyeblikket. Den enkleste måten å overvåke alt er å klikke på «Fix all». Hvis du ønsker å konfigurere hvilke tjenester som skal overvåkes, kan du gjøre dette i detalj. Klikk på pluss-tegnet (+) for å overvåke en tjeneste.

Etter at du har valgt tjenestene som skal overvåkes, vil de vises i fanen «Monitored services». Du vil se detaljer for hver overvåket tjeneste. Hvis du klikker på spørsmålstegnet (?), flyttes tjenesten til listen «Undecided services». Hvis du klikker på X-tegnet, flyttes tjenesten til fanen «Disabled services».

Jeg har deaktivert fire tjenester, som vises under kategorien for deaktiverte tjenester.

Når du er ferdig med å legge til tjenestene, må du aktivere endringene før de tas i bruk.

  • Klikk på det uthevede feltet med det gule utropstegnet (!) øverst i høyre hjørne for å se de ventende endringene.
  • Klikk på «Activate on selected sites».

Du har nå begynt å overvåke Docker-tjenester med Checkmk!

Konklusjon

Dette var en introduksjon til Checkmk, et verktøy for infrastrukturovervåking. Det er et brukervennlig verktøy som er verdt å teste for å overvåke dine produksjonsmiljøer. Jeg anbefaler å prøve Checkmk sin gratisversjon for å starte overvåkingen.