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.