IT-infrastrukturovervågning er kompleks, men et værktøj som Checkmk gør det nemmere.
Mange organisationer har tilføjet cloud-native teknologier til deres tech-stack for at forbedre ydeevnen af deres produkter. Samtidig fortsætter de ofte med at drive deres egne netværk og lokal infrastruktur. Dette skift til hybride infrastrukturer skal adresseres i overvågningen på grund af det enorme antal målinger, der genereres hvert sekund for forskellige komponenter såsom operativsystem, lagring, server, cloud-miljøer osv. De er alle vigtige for at sikre, at applikationer kører i top. ydeevne.
Disse målinger er et vigtigt signal for DevOps-teams til at forstå deres infrastrukturs sundhed. Det er grunden til, at organisationer har brug for en overvågningsløsning, der hjælper dem med hurtigt at identificere problemer i produktionen med målinger, visualiseringer og analyser. Checkmk er et af de mest populære og nyttige infrastrukturovervågningsværktøjer. I denne artikel vil jeg fortælle dig, hvorfor Checkmk fortjener sit gode ry, og hvordan du kan tage de første skridt med det.
Indholdsfortegnelse
Hvad er Checkmk?
Checkmk kontrollerer konstant funktionen af ethvert aspekt af moderne it-miljøer og er særligt velegnet til hybride infrastrukturer. På den ene side er Checkmk fleksibel og understøtter containere, cloud-aktiver og lokale systemer såsom switche og servere. Til gengæld er det rigtig nemt at komme i gang og styre din overvågning, fordi Checkmk kommer med automatiske alarmer baseret på en masse it-ekspertise og andre intelligente funktioner, som vil spare dig for en masse tid.
Hvis du vil bruge Checkmk gratis, har du to muligheder: For det første kan du gå efter Checkmk Raw Edition, som er fuldstændig open source og gratis at bruge uden nogen begrænsninger. For det andet er der Checkmk Enterprise prøveversion der har alle de ekstra funktioner i Checkmk Enterprise Editions, men efter 30 dage vil antallet af værter være begrænset til 25.
Hvordan løser Checkmk problemet?
Checkmk kan overvåge applikationer, servere, databaser, netværk, containere, lager og andet. Det giver en massiv liste med over 2.000 overvågnings-plugins. Med disse plug-ins. Checkmk kan udvides til at overvåge specifikke teknologier fra forskellige leverandører, der er tilgængelige på markedet. Et par populære Checkmk-plugins er til Docker, Kubernetes, Cisco, Nginx, VMware, Linux, Windows, AWS, Dell. Med sine 2.000+ plug-ins skiller Checkmk sig ud som en meget lovende infrastrukturovervågningsløsning, der er tilgængelig i øjeblikket.
For enhver overvågningsløsning er det også afgørende, hvor hurtigt og korrekt de kan læse metrics og opsætte smarte alarmer og notifikationer. Checkmks løsning opfylder alle disse kriterier. Med sin automatiske opdagelsesfunktion kan Checkmk identificere mere end 90% af tjenester og enheder. Nu kræver de fleste virksomheder skalerbarhed og automatisering. Du kan skalere overvågningskapaciteten fra hundrede værter til tusindvis af værter med lethed i Checkmk og udnytte dets agenter, der er tilgængelige til automatisering.
Installer Checkmk i en Docker-container
I denne artikel skal jeg installere Checkmk Raw Edition i en Docker-container på en Linux-server, der kører på Ubuntu 20.04. Fra Dockerhub kan du downloade Checkmk Docker container. Den har næsten 5 millioner+ træk indtil videre, hvilket fortæller hvor populær og meget brugt Checkmk er.
Tag Docker-billedet med den seneste Checkmk-version og kør det inde i en container ved at bruge 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
Navnet på containeren vil være ‘monitorering’, webserveren vil lytte til port 5000 og åbne ved port 8080 i noden. Containeren vil bruge det midlertidige filsystem og lokale tidszone.
[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-billedet blev downloadet ved at køre kommandoen docker-billeder.
[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
Kør kommandoen docker ps for at se, om Checkmk-beholderen kø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 at få loginoplysningerne til Checkmk-webgrænsefladen skal du udskrive Checkmk-beholderloggen.
[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 kører som standard på https://localhost:8080/cmk/check_mk. Outputtet af ovenstående kommando fortæller dig, at brugernavnet er cmkadmin og adgangskoden, i mit tilfælde er adgangskoden ClFxBPre. Åbn adressen i en webbrowser, og brug dine legitimationsoplysninger til at logge ind.
Når du logger ind, er dette ‘Hoveddashboardet’, der vises. Den er tom, fordi du ikke har tilføjet nogen værter endnu.
Overvåg Docker ved hjælp af Checkmk
Normalt ville du installere Checkmk-agenten på din maskine, der hoster dine Docker-containere, og derefter bruge Checkmk-plugin’et til Docker til at overvåge alle containere. Dette plug-in (mk_docker.py) bruger Dockers Python-API til at spore Docker-containere og få fuld overblik over deres status og ydeevne i realtid. Du kan læse flere detaljer om Docker-overvågning med Checkmk på Checkmks hjemmeside.
Fordi der i mit Docker-miljø kun kører én Docker-container, min Checkmk Docker-container, vil jeg bare bruge Checkmk-agenten, der kører i Docker-containeren og vil ikke installere Checkmk på min Docker-vært. Agenten er forudinstalleret i Checkmk-beholderen, så jeg skal bare tilføje min Checkmk-beholder som vært.
Lad os få den IP-adresse, som Docker-tjenesten kører på, ved at bruge ifconfig på 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 mit tilfælde kører Docker-tjenesten på 172.17.0.1. Det næste trin er at tilføje Docker-tjenesten som en vært i Checkmk, så den kan overvåges.
- Gå til Checkmk og klik på Opsætning -> Værter.
- Angiv nu værtsnavnet og IP-adressen, og klik på ‘Gem og gå til tjenestekonfigurationen’.
- Når du har gjort det, vil Checkmk automatisk starte serviceopdagelsen.
Rul ned for at se overvågningstjenesterne, der kører under Docker-værten. Du kan se, at tjenesterne ikke bliver overvåget i øjeblikket. Hvis du vil overvåge alt, er den nemmeste løsning at klikke på ‘Ret alle’. Hvis du vil konfigurere, hvilke tjenester der skal overvåges, kan du også gøre dette i detaljer. Klik på + tegnet, hvis du vil overvåge en tjeneste.
Når du har valgt de tjenester, du vil overvåge, kommer de på fanen ‘Overvågede tjenester’. Du får alle statusdetaljerne for hver tjeneste, du overvåger. Hvis du klikker på? underskrive, vil tjenesten flytte til listen over uafklarede tjenester. Hvis du klikker på X-tegnet, flyttes tjenesten til fanen ‘Deaktiverede tjenester’.
Jeg har deaktiveret fire tjenester, så jeg kan se dem på fanen deaktiverer tjenester.
Når du er færdig med at tilføje tjenesterne, skal du aktivere ændringerne, før de går i produktion.
- Klik på det fremhævede felt med det gule udråbstegn (!) i øverste højre hjørne for at se de afventende ændringer.
- Klik på Aktiver på udvalgte websteder.
Du har med succes overvåget Docker-tjenester ved hjælp af Checkmk!
Konklusion
Så det handlede om Checkmk, et infrastrukturovervågningsværktøj. Det er et meget brugervenligt værktøj, som du skal prøve for at overvåge dine produktionsmiljøer. Jeg anbefaler at prøve Checkmk gratis udgave for at starte din overvågning.