Cum să începeți cu Checkmk

Supravegherea infrastructurii IT reprezintă un demers complex, dar cu ajutorul unui instrument precum Checkmk, procesul devine considerabil mai simplu.

Multe organizații au integrat tehnologii cloud native în arhitectura lor tehnologică pentru a spori performanța produselor oferite. În același timp, acestea continuă adesea să opereze propriile rețele și infrastructura locală. Această tranziție către infrastructuri hibride necesită o abordare adecvată în monitorizare, având în vedere volumul mare de date generate în fiecare secundă de diverse componente, precum sistemul de operare, spațiul de stocare, serverul, mediile cloud și altele. Toate acestea sunt vitale pentru a garanta că aplicațiile rulează la capacitate maximă.

Aceste date reprezintă un indicator esențial pentru echipele DevOps, ajutându-le să înțeleagă starea de sănătate a infrastructurii lor. De aceea, organizațiile au nevoie de o soluție de monitorizare care să le permită să identifice rapid problemele din mediu de producție, folosind metrici, vizualizări și analize. Checkmk este un instrument popular și eficient pentru monitorizarea infrastructurii. În acest articol, vom explora motivele pentru care Checkmk și-a câștigat reputația și cum să faceți primii pași în utilizarea acestuia.

Ce este Checkmk?

Checkmk monitorizează continuu funcționarea tuturor aspectelor mediilor IT moderne, fiind ideal pentru infrastructurile hibride. Pe de o parte, Checkmk este flexibil și compatibil cu containere, active cloud și sisteme locale, cum ar fi switch-uri și servere. Pe de altă parte, este extrem de facil să începeți și să gestionați monitorizarea, deoarece Checkmk oferă alerte automate bazate pe o vastă experiență în domeniul IT și alte funcții inteligente, care vă vor economisi timp prețios.

Dacă doriți să folosiți Checkmk gratuit, aveți două opțiuni: prima este Checkmk Raw Edition, o versiune complet open-source și gratuită, fără limitări. A doua este Checkmk Enterprise Trial Edition, care include toate funcționalitățile suplimentare ale Checkmk Enterprise Editions, dar după 30 de zile, numărul de gazde va fi limitat la 25.

Cum abordează Checkmk provocarea monitorizării?

Checkmk poate supraveghea aplicații, servere, baze de date, rețele, containere, stocare și multe altele. Oferă o listă extinsă de peste 2000 de plugin-uri de monitorizare. Cu ajutorul acestor plugin-uri, Checkmk poate fi extins pentru a monitoriza tehnologii specifice de la diverși furnizori de pe piață. Printre cele mai populare plugin-uri Checkmk se numără cele pentru Docker, Kubernetes, Cisco, Nginx, VMware, Linux, Windows, AWS și Dell. Cu peste 2000 de plugin-uri, Checkmk se evidențiază ca o soluție de monitorizare a infrastructurii foarte promițătoare.

De asemenea, pentru orice soluție de monitorizare, este esențial cât de repede și precis poate citi datele, configura alertele și notificările inteligente. Checkmk îndeplinește toate aceste cerințe. Cu funcția sa de auto-descoperire, Checkmk poate identifica peste 90% dintre servicii și dispozitive. În prezent, majoritatea companiilor au nevoie de scalabilitate și automatizare. În Checkmk, puteți scala ușor capacitatea de monitorizare de la o sută la mii de gazde și utiliza agenții săi pentru automatizare.

Instalarea Checkmk într-un Container Docker

În acest articol, vom instala Checkmk Raw Edition într-un container Docker pe un server Linux care rulează Ubuntu 20.04. Din Dockerhub, puteți descărca Containerul Checkmk Docker. Acesta are aproape 5 milioane de descărcări, ceea ce demonstrează popularitatea și utilizarea sa extinsă.

Descărcați imaginea Docker cu cea mai recentă versiune Checkmk și rulați-o într-un container folosind comanda 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

Containerul va fi denumit „monitoring”, serverul web va asculta pe portul 5000 și va fi accesibil pe portul 8080 al nodului. Containerul va utiliza sistemul de fișiere temporar și fusul orar local.

[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

Puteți verifica dacă imaginea Docker a fost descărcată, rulând comanda 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

Rulați comanda docker ps pentru a vedea dacă containerul Checkmk este în funcțiune.

[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

Pentru a obține informațiile de conectare la interfața web Checkmk, afișați log-ul containerului Checkmk.

[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

Containerul Checkmk Docker va rula implicit la https://localhost:8080/cmk/check_mk. Din rezultatul comenzii de mai sus, aflăm că numele de utilizator este cmkadmin, iar parola, în acest caz, este ClFxBPre. Deschideți adresa într-un browser web și folosiți datele de autentificare pentru a vă conecta.

După autentificare, veți vedea „Tabloul de bord principal”. Acesta este gol, deoarece nu ați adăugat încă gazde.

Monitorizarea Docker folosind Checkmk

De obicei, instalați agentul Checkmk pe mașina care găzduiește containerele Docker, apoi utilizați pluginul Checkmk pentru Docker pentru a monitoriza containerele. Acest plugin (mk_docker.py) folosește API-ul Python Docker pentru a urmări containerele Docker și a obține o vizibilitate completă asupra stării și performanțelor lor în timp real. Puteți citi mai multe detalii despre Monitorizarea Docker cu Checkmk pe site-ul web Checkmk.

Deoarece în mediul meu Docker există un singur container Docker activ, containerul Checkmk Docker, voi folosi doar agentul Checkmk care rulează în containerul Docker și nu voi instala Checkmk pe gazda Docker. Agentul este preinstalat în containerul Checkmk, așadar trebuie doar să adăugăm containerul Checkmk ca gazdă.

Să obținem adresa IP pe care rulează serviciul Docker utilizând ifconfig în terminal.

[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

În cazul meu, serviciul Docker rulează pe 172.17.0.1. Următorul pas este adăugarea serviciului Docker ca gazdă în Checkmk, pentru a putea fi monitorizat.

  • Accesați Checkmk și faceți clic pe Setup -> Hosts.


  • Introduceți numele gazdei și adresa IP, apoi faceți clic pe „Salvați și mergeți la configurația serviciului”.

  • După aceasta, Checkmk va iniția automat descoperirea serviciului.

Derulați în jos pentru a vedea serviciile de monitorizare care rulează sub gazda Docker. Observați că serviciile nu sunt monitorizate. Pentru a monitoriza totul, cea mai simplă soluție este să faceți clic pe „Remediați totul”. Dacă doriți să configurați specific serviciile care trebuie monitorizate, o puteți face, de asemenea, în detaliu. Faceți clic pe semnul + pentru a monitoriza un serviciu.

După ce selectați serviciile pe care doriți să le monitorizați, acestea vor apărea în fila „Servicii monitorizate”. Veți primi detalii despre starea fiecărui serviciu monitorizat. Dacă dați clic pe semnul ?, serviciul respectiv se va muta în lista serviciilor nesigure. Dacă faceți clic pe semnul X, serviciul se va muta în fila „Servicii dezactivate”.

Am dezactivat patru servicii, deci le pot vedea în fila „Servicii dezactivate”.

După ce ați terminat de adăugat serviciile, trebuie să activați modificările înainte ca acestea să intre în producție.

  • Faceți clic pe câmpul evidențiat cu semnul exclamării galben (!) din colțul dreapta sus pentru a vedea modificările în așteptare.
  • Faceți clic pe Activare pe site-urile selectate.

Ați monitorizat cu succes serviciile Docker folosind Checkmk!

Concluzie

Acesta a fost un ghid despre Checkmk, un instrument de monitorizare a infrastructurii. Este un instrument ușor de utilizat, pe care vă recomandăm să-l testați pentru a monitoriza mediile de producție. Vă sugerăm să încercați Checkmk Free Edition pentru a începe monitorizarea.