Hur man kommer igång med Checkmk

By rik

Övervakning av IT-infrastruktur kan vara en komplex uppgift, men med verktyg som Checkmk blir det avsevärt enklare.

Många organisationer har utökat sin tekniska arsenal med molnbaserade lösningar för att optimera prestandan hos sina produkter. Samtidigt fortsätter de ofta att underhålla egna nätverk och lokal infrastruktur. Denna övergång till en hybridinfrastruktur ställer högre krav på övervakningen, eftersom ett enormt antal mätvärden genereras varje sekund för olika komponenter såsom operativsystem, lagring, servrar, molnmiljöer med mera. Dessa mätvärden är av avgörande betydelse för att säkerställa att applikationerna presterar på optimal nivå.

Dessa mätvärden är en viktig informationskälla för DevOps-team för att förstå hälsotillståndet hos infrastrukturen. Därför är det nödvändigt för organisationer att ha en övervakningslösning som hjälper dem att snabbt identifiera problem i produktionsmiljön genom hjälp av mätvärden, visualiseringar och analyser. Checkmk är ett av de mest populära och användbara verktygen för infrastrukturövervakning. I den här artikeln ska jag förklara varför Checkmk har ett så bra rykte och hur du kan ta dina första steg med det.

Vad är Checkmk?

Checkmk utför kontinuerlig kontroll av alla aspekter i moderna IT-miljöer och är särskilt väl anpassat för hybridinfrastrukturer. Å ena sidan är Checkmk flexibelt och stöder behållare, molntillgångar och lokala system som switchar och servrar. Å andra sidan är det mycket enkelt att komma igång och administrera sin övervakning, eftersom Checkmk har automatiska larm baserade på omfattande IT-expertis och andra intelligenta funktioner som sparar dig mycket tid.

Om du vill använda Checkmk utan kostnad finns det två alternativ: För det första kan du välja Checkmk Raw Edition, som är helt öppen källkod och gratis att använda utan några begränsningar. För det andra finns Checkmk Enterprise Trial Edition som innehåller alla de extra funktionerna i Checkmk Enterprise Editions, men efter 30 dagar kommer antalet värdar att begränsas till 25.

Hur löser Checkmk problem?

Checkmk kan övervaka applikationer, servrar, databaser, nätverk, behållare, lagring och mycket mer. Det erbjuder en omfattande lista med över 2000 plugin-program för övervakning. Med dessa plugin-program kan Checkmk utökas för att övervaka specifik teknik från olika leverantörer på marknaden. Några populära Checkmk-plugin-program är de för Docker, Kubernetes, Cisco, Nginx, VMware, Linux, Windows, AWS och Dell. Med sina över 2000 plugin-program framstår Checkmk som en mycket lovande lösning för infrastrukturövervakning.

För alla övervakningslösningar är det även avgörande hur snabbt och korrekt de kan avläsa mätvärden samt skapa smarta larm och aviseringar. Checkmk uppfyller samtliga av dessa kriterier. Med sin automatiska upptäcktsfunktion kan Checkmk identifiera mer än 90 % av tjänsterna och enheterna. I dagsläget kräver de flesta företag skalbarhet och automatisering. Du kan enkelt skala din övervakningskapacitet från hundra värdar till tusentals värdar med Checkmk, och dra nytta av dess agenter för automatisering.

Installera Checkmk i en Docker-behållare

I den här artikeln kommer jag att installera Checkmk Raw Edition i en Docker-behållare på en Linux-server som körs på Ubuntu 20.04. Från Dockerhub kan du ladda ner Checkmk Docker-behållare. Den har i dagsläget över 5 miljoner+ nedladdningar, vilket visar hur populärt och välkänt Checkmk är.

Hämta Docker-avbildningen med den senaste Checkmk-versionen och kör den inuti en behållare med hjälp av kommandot ’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

Behållarens namn kommer att vara ’övervakning’, webbservern kommer att lyssna på port 5000 och öppnas på port 8080 i noden. Behållaren kommer att använda det temporära filsystemet och den lokala tidszonen.

[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 kontrollera om Docker-avbildningen har laddats ned genom att köra kommandot ’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

Använd kommandot ’docker ps’ för att se om Checkmk-behållaren körs.

[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

För att få inloggningsuppgifterna till Checkmks webbgränssnitt, skriv ut loggarna för Checkmk-behållaren.

[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-behållaren körs som standard på https://localhost:8080/cmk/check_mk. Informationen från kommandot ovan visar att användarnamnet är cmkadmin och lösenordet, i mitt fall är lösenordet ClFxBPre. Öppna adressen i en webbläsare och logga in med dina uppgifter.

När du har loggat in kommer du att se ”Huvudöversikten”. Den är tom eftersom du inte har lagt till några värdar ännu.

Övervaka Docker med Checkmk

Vanligtvis installerar du Checkmk-agenten på den maskin som är värd för dina Docker-containrar, och använder sedan Checkmk-pluginet för Docker för att övervaka alla dina containrar. Detta plugin-program (mk_docker.py) använder Dockers Python-API för att följa Docker-containrar och ger full insyn i deras status och prestanda i realtid. Du kan läsa mer om Docker-övervakning med Checkmk på Checkmks webbplats.

Eftersom det bara finns en Docker-behållare igång i min Docker-miljö, min Checkmk Docker-behållare, kommer jag bara att använda Checkmk-agenten som körs i Docker-behållaren. Jag kommer inte att installera Checkmk på min Docker-värd. Agenten är förinstallerad i Checkmk-behållaren, så jag behöver bara lägga till min Checkmk-behållare som en värd.

Låt oss ta reda på IP-adressen som Docker-tjänsten körs på genom att använda kommandot ’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 fall körs Docker-tjänsten på 172.17.0.1. Nästa steg är att lägga till Docker-tjänsten som en värd i Checkmk så att den kan övervakas.

  • Gå till Checkmk och klicka på ”Setup” -> ”Hosts”.

  • Ange värdnamnet och IP-adressen och klicka på ”Spara och gå till tjänstkonfigurationen”.

  • Därefter kommer Checkmk automatiskt att starta tjänsteupptäckten.

Scrolla ned för att se övervakningstjänsterna som körs under Docker-värden. Du ser att tjänsterna inte övervakas i dagsläget. Om du vill övervaka allt är den enklaste lösningen att klicka på ”Fix all”. Om du vill konfigurera vilka tjänster som ska övervakas kan du även göra det i detalj. Klicka på +-tecknet om du vill övervaka en tjänst.

När du väl har valt vilka tjänster du vill övervaka, visas de under fliken ”Övervakade tjänster”. Du får all statusinformation för varje tjänst du övervakar. Om du klickar på ?-tecknet kommer den tjänsten att flyttas till listan över obestämda tjänster. Om du klickar på X-tecknet flyttas tjänsten till fliken ”Inaktiverade tjänster”.

Jag har inaktiverat fyra tjänster, och kan se dem under fliken inaktiverade tjänster.

När du är färdig med att lägga till tjänsterna måste du aktivera ändringarna innan de träder i kraft.

  • Klicka på det markerade fältet med det gula utropstecknet (!) i det övre högra hörnet för att se de väntande ändringarna.
  • Klicka på ”Aktivera på valda webbplatser”.

Du har nu lyckats övervaka Docker-tjänster med Checkmk!

Slutsats

Detta var en introduktion till Checkmk, ett verktyg för infrastrukturövervakning. Det är ett mycket användarvänligt verktyg som du bör överväga för övervakning av dina produktionsmiljöer. Jag rekommenderar att du provar Checkmks gratisversion för att påbörja din övervakning.