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.
Sommario:
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.