Come iniziare con Checkmk

Il monitoraggio dell’infrastruttura IT è complesso, ma uno strumento come Checkmk lo rende più semplice.

Molte organizzazioni hanno aggiunto tecnologie cloud native al proprio stack tecnologico per migliorare le prestazioni dei propri prodotti. Allo stesso tempo, continuano spesso a gestire le proprie reti e l’infrastruttura locale. Questo passaggio alle infrastrutture ibride deve essere affrontato nel monitoraggio a causa dell’enorme numero di parametri generati ogni secondo per vari componenti come sistema operativo, storage, server, ambienti cloud, ecc. Sono tutti importanti per garantire che le applicazioni funzionino al massimo prestazione.

Queste metriche sono un segnale essenziale per i team DevOps per comprendere lo stato della propria infrastruttura. Questo è il motivo per cui le organizzazioni hanno bisogno di una soluzione di monitoraggio che le aiuti a identificare rapidamente i problemi in produzione con metriche, visualizzazioni e analisi. Checkmk è uno degli strumenti di monitoraggio dell’infrastruttura più popolari e utili. In questo articolo, ti dirò perché Checkmk merita la sua buona reputazione e come puoi muovere i primi passi con esso.

Che cos’è Checkmk?

Checkmk controlla costantemente il funzionamento di ogni aspetto dei moderni ambienti IT ed è particolarmente adatto per le infrastrutture ibride. Da un lato, Checkmk è flessibile e supporta container, risorse cloud e sistemi locali come switch e server. D’altra parte, è davvero facile iniziare e gestire il monitoraggio, perché Checkmk viene fornito con avvisi automatici basati su molte competenze IT e altre funzionalità intelligenti che ti faranno risparmiare molto tempo.

Se vuoi utilizzare Checkmk gratuitamente, hai due opzioni: in primo luogo, puoi scegliere Checkmk Raw Edition, che è completamente open source e gratuito senza alcuna limitazione. In secondo luogo, c’è il Edizione di prova Checkmk Enterprise che ha tutte le funzionalità aggiuntive delle Edizioni Checkmk Enterprise, ma dopo 30 giorni il numero di host sarà limitato a 25.

In che modo Checkmk risolve il problema?

Checkmk può monitorare applicazioni, server, database, reti, container, storage e quant’altro. Fornisce un enorme elenco di oltre 2.000 plug-in di monitoraggio. Con questi plug-in. Checkmk può essere esteso per monitorare tecnologie specifiche di diversi fornitori disponibili sul mercato. Alcuni popolari plug-in Checkmk sono per Docker, Kubernetes, Cisco, Nginx, VMware, Linux, Windows, AWS, Dell. Con i suoi oltre 2.000 plug-in, Checkmk si distingue come una soluzione di monitoraggio dell’infrastruttura molto promettente attualmente disponibile.

Inoltre, per qualsiasi soluzione di monitoraggio, è fondamentale quanto velocemente e correttamente possano leggere le metriche e impostare avvisi e notifiche intelligenti. La soluzione di Checkmk soddisfa tutti questi criteri. Con la sua funzione di rilevamento automatico, Checkmk è in grado di identificare oltre il 90% di servizi e dispositivi. Ora, la maggior parte delle aziende richiede scalabilità e automazione. Puoi scalare facilmente la capacità di monitoraggio da centinaia di host a migliaia di host in Checkmk e sfruttare i suoi agenti disponibili per l’automazione.

Installa Checkmk in un contenitore Docker

In questo articolo, installerò Checkmk Raw Edition in un contenitore Docker su un server Linux in esecuzione su Ubuntu 20.04. Da Dockerhub, puoi scaricare il file Checkmk Contenitore Docker. Finora ha quasi 5 milioni di pull, il che racconta quanto sia popolare e ampiamente utilizzato Checkmk.

Prendi l’immagine Docker con l’ultima versione di Checkmk ed eseguila all’interno di un container usando il comando 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

Il nome del contenitore sarà ‘monitoraggio’, il server web ascolterà la porta 5000 e si aprirà alla porta 8080 del nodo. Il contenitore utilizzerà il file system temporaneo e il fuso orario locale.

[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

Puoi verificare se l’immagine Docker è stata scaricata eseguendo le immagini della finestra mobile dei comandi.

[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

Esegui la finestra mobile dei comandi ps per vedere se il contenitore Checkmk è in esecuzione.

[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

Per ottenere i dettagli di accesso per l’interfaccia web di Checkmk, stampare il registro del contenitore di 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

Il contenitore Checkmk Docker verrà eseguito per impostazione predefinita all’indirizzo https://localhost:8080/cmk/check_mk. L’output del comando precedente ti dice che il nome utente è cmkadmin e la password, nel mio caso la password è ClFxBPre. Apri l’indirizzo in un browser web e usa le tue credenziali per accedere.

Una volta effettuato l’accesso, apparirà la “Dashboard principale”. È vuoto perché non hai ancora aggiunto alcun host.

Monitorare Docker utilizzando Checkmk

Di solito, installi l’agente Checkmk sulla tua macchina che ospita i tuoi container Docker e quindi utilizzi il plug-in Checkmk per Docker per monitorare tutti i container. Questo plug-in (mk_docker.py) utilizza l’API Python di Docker per tenere traccia dei container Docker e ottenere la piena visibilità del loro stato e delle prestazioni in tempo reale. Puoi leggere maggiori dettagli su Monitoraggio Docker con Checkmk sul sito Checkmk.

Poiché nel mio ambiente Docker è in esecuzione un solo container Docker, il mio container Checkmk Docker, utilizzerò semplicemente l’agente Checkmk in esecuzione nel container Docker e non installerò Checkmk sul mio host Docker. L’agente è preinstallato nel contenitore Checkmk, quindi devo solo aggiungere il mio contenitore Checkmk come host.

Otteniamo l’indirizzo IP su cui è in esecuzione il servizio Docker utilizzando ifconfig sul terminale.

[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

Nel mio caso, il servizio Docker è in esecuzione su 172.17.0.1. Il passaggio successivo consiste nell’aggiungere il servizio Docker come host in Checkmk in modo che possa essere monitorato.

  • Vai su Checkmk e fai clic su Configurazione -> Host.

  • Ora fornisci il nome host e l’indirizzo IP e fai clic su “Salva e vai alla configurazione del servizio”.

  • Una volta fatto, Checkmk avvierà automaticamente il rilevamento del servizio.

Scorri verso il basso per vedere i servizi di monitoraggio in esecuzione nell’host Docker. Puoi vedere che i servizi non vengono attualmente monitorati. Se vuoi monitorare tutto, la soluzione più semplice è fare clic su “Correggi tutto”. Se vuoi configurare quali servizi devono essere monitorati, puoi farlo anche in dettaglio. Fare clic sul segno + se si desidera monitorare un servizio.

Una volta selezionati i servizi che desideri monitorare, verranno visualizzati nella scheda “Servizi monitorati”. Riceverai tutti i dettagli sullo stato di ogni servizio che stai monitorando. Se clicchi su ? segno, quel servizio si sposterà nell’elenco dei servizi indecisi. Se fai clic sul segno X, il servizio si sposterà nella scheda “Servizi disabilitati”.

Ho disabilitato quattro servizi, quindi posso vederli nella scheda Disabilita servizi.

Al termine dell’aggiunta dei servizi, è necessario attivare le modifiche prima che entrino in produzione.

  • Fare clic sul campo evidenziato con il punto esclamativo giallo (!) nell’angolo in alto a destra per visualizzare le modifiche in sospeso.
  • Fare clic su Attiva sui siti selezionati.

Hai monitorato con successo i servizi Docker utilizzando Checkmk!

Conclusione

Quindi era tutto su Checkmk, uno strumento di monitoraggio dell’infrastruttura. È uno strumento molto facile da usare che devi provare a monitorare i tuoi ambienti di produzione. Consiglio di provare il Checkmk Edizione Gratuita per avviare il monitoraggio.