![]() |
This is a machine translation based on the English version of the article. It might or might not have already been subject to text preparation. If you find errors, please file a GitHub issue that states the paragraph that has to be improved. |
1. Le basi
Ci sono numerose ragioni per cui molti utenti desiderano utilizzare un software in un container Docker. Checkmk può essere utilizzato anche in un ambiente Docker. Uno scenario applicativo può essere quello di monitorare un gruppo di container creato dinamicamente e di rendere Checkmk parte di questo gruppo. Se il gruppo di container non è più necessario, anche l'istanza Checkmk può essere rimossa.
Importante: anche se è possibile e molto facile integrare Checkmk in un'infrastruttura containerizzata, non è sempre la soluzione migliore. Poiché le prestazioni si riducono con ogni virtualizzazione e il monitoraggio in generale dovrebbe avere un minimo di dipendenze fisiche, non è una buona soluzione utilizzare un container Checkmk per monitorare l'intera infrastruttura. Tuttavia, potrebbe essere una buona opzione integrare un container Checkmk in un cluster di container autonomo, perché in questo caso saresti in grado di monitorare questo cluster dall'interno. Quindi, soprattutto in questo caso, verifica se lo strumento Docker/Container è la soluzione migliore per le tue reali esigenze.
Per semplificare al massimo l'installazione, forniamo ogni edizione di Checkmk comprensiva della propria immagine specifica, che contiene il sistema operativo Linux Ubuntu oltre a Checkmk:
Checkmk Raw |
|
Edizioni commerciali |
Pagina di download di Checkmk (da Checkmk Cloud in poi, cioè Checkmk Cloud e Checkmk MSP), portale clienti Checkmk |
Nota: il deployment in Docker Hub ti permette di scaricare e installare con un unico comando, come ti mostreremo nel capitolo dedicato all'installazione di Checkmk Raw.
In questo articolo ti guideremo nell'installazione di Checkmk in Docker e ti mostreremo alcuni trucchi che renderanno più facile la vita con Checkmk in Docker. Ulteriori informazioni sono disponibili nell'articolo Il server Checkmk in un container Docker.
2. Prerequisiti
Per eseguire i comandi presentati in questo articolo è necessaria un'installazione funzionante di Docker Engine e una conoscenza di base del suo utilizzo.
3. Installazione di Checkmk Raw
Iniziare a usare Checkmk Raw in Docker è facile. Puoi ottenere un'immagine adatta direttamente da Docker Hub. Questo avviene con un solo comando sulla riga di comando. Con questo comando non solo viene creato un container Docker con Checkmk, ma viene anche creato e avviato un sito di monitoraggio chiamato cmk
. Questo sito sarà immediatamente disponibile per un login come utente dell'istanza cmkadmin
.
root@linux# docker container run -dit -p 8080:5000 -p 8000:8000 --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.3.0-latest
Unable to find image 'checkmk/check-mk-raw:2.3.0-latest' locally
2.3.0-latest: Pulling from checkmk/check-mk-raw
43f89b94cd7d: Pull complete
c6b4550f40cc: Pull complete
86f6e730bc27: Pull complete
cf0f3e792f33: Pull complete
81777b9c4e2e: Pull complete
da44e2c4d930: Pull complete
Digest: sha256:8a71002e019fab358bcefb204d6bff3390713781df99fb5c6587b289df9796e4
Status: Downloaded newer image for checkmk/check-mk-raw:2.3.0-latest
86e14b7d604033cc44f4b92c25ce67f45967c82db3e84f2e16fee76f4ff48fdf
Ulteriori informazioni sulle opzioni disponibili:
Opzione | Descrizione |
---|---|
|
Per impostazione predefinita, il server web del container è in ascolto sulla porta 5000. In questo esempio, la porta 8080 del nodo Docker sarà pubblicata sulla porta del container in modo che sia accessibile dall'esterno. Se non hai un altro container o processo che utilizza la porta HTTP standard 80, puoi anche collegare il container ad essa. In questo caso, l'opzione sarà simile a questa: |
|
Poiché Checkmk 2.1.0 devi pubblicare anche la porta dell'Agent Receiver per poter registrare il controller dell'agente. |
|
Per ottenere prestazioni ottimali, puoi utilizzare un file system temporaneo direttamente nella RAM del nodo Docker. Il percorso di questo file system viene specificato con questa opzione. Se cambi l'ID del sito, anche questo percorso deve essere modificato di conseguenza. |
|
Questa opzione vincola i dati del sito in questo container a una posizione persistente nel file system del nodo Docker. I dati non vengono persi se il container viene cancellato. Il codice prima dei due punti determina il nome: in questo modo potrai identificare chiaramente la posizione di archiviazione in seguito, ad esempio con il comando |
|
Definisce il nome del container, che deve essere unico e non può essere riutilizzato sul nodo Docker. |
|
Questa opzione ti permette di utilizzare nel container lo stesso fuso orario utilizzato nel nodo Docker - allo stesso tempo il file viene integrato come di sola lettura ( |
|
Normalmente un container non si riavvia automaticamente dopo essere stato fermato. Con questa opzione puoi fare in modo che si riavvii sempre automaticamente. Tuttavia, se fermi manualmente un container, questo verrà riavviato solo se il daemon Docker si riavvia o il container stesso viene riavviato manualmente. |
|
L'etichetta dell'immagine Checkmk nel formato |
Dopo che tutti i file necessari sono stati caricati e il container è stato avviato, puoi accedere alla GUI di Checkmk tramite http://localhost:8080/cmk/check_mk/
:

Ora puoi effettuare il primo accesso e provare Checkmk adesso. Troverai la password provvisoria per l'account cmkadmin
nei log scritti per questo container (in questo esempio l'output è abbreviato alle informazioni essenziali):
root@linux# docker container logs monitoring
Created new site cmk with version 2.3.0p1.cre.
The site can be started with omd start cmk.
The default web UI is available at http://73a86e310b60/cmk/
The admin user for the web applications is cmkadmin with password: 2JLysBmv
For command line administration of the site, log in with 'omd su cmk'.
After logging in, you can change the password for cmkadmin with 'cmk-passwd cmkadmin'.
Nota: l'URL visualizzato nel log per accedere all'interfaccia web con l'ID del container è riconosciuto solo all'interno del container e non è adatto per l'accesso dall'esterno nel browser web.
3.1. Container di breve durata
Se sei sicuro che i dati dell'istanza Checkmk debbano essere disponibili solo in questo contenitore speciale, puoi evitare di assegnare un archivio dati persistente al contenitore oppure puoi rimuovere automaticamente questo archivio quando il contenitore viene fermato.
Per non assegnare un archivio persistente, è sufficiente omettere l'opzione -v monitoring:/omd/sites
:
root@linux# docker container run -dit -p 8080:5000 -p 8000:8000 --tmpfs /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 --name monitoring -v /etc/localtime:/etc/localtime:ro --restart always checkmk/check-mk-raw:2.3.0-latest
Per creare un archivio persistente e rimuoverlo automaticamente all'arresto del container, usa il seguente comando
root@linux# docker container run --rm -dit -p 8080:5000 -p 8000:8000 --tmpfs /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 -v /omd/sites --name monitoring -v /etc/localtime:/etc/localtime:ro checkmk/check-mk-raw:2.3.0-latest
Questo comando, a differenza del precedente, ha solo altre due opzioni:
-
Utilizza l'opzione
--rm
all'inizio per comunicare al comando che anche l'archiviazione dei dati del container deve essere rimossa quando il container si ferma. Questo ti evita di dover riordinare manualmente se hai molti container Checkmk che hanno vita breve.Importante: all'arresto, il container stesso viene completamente rimosso!
L'opzione
-v /omd/sites
è modificata rispetto a quella precedente. Non contiene più un nome auto-assegnato, altrimenti la memorizzazione dei dati non verrà eliminata correttamente.
4. Installazione delle edizioni commerciali
Le immagini delle edizioni commerciali non sono disponibili gratuitamente tramite Docker Hub. Scarica l'edizione e la versione desiderata dalla pagina di download di Checkmk (a partire da Checkmk Cloud) o dal portale clienti di Checkmk.
Carica l'immagine Docker dal file di archivio tar scaricato, nell'esempio seguente per Checkmk Cloud:
root@linux# docker load -i check-mk-cloud-docker-2.3.0p1.tar.gz
1f35d34cf8fa: Loading layer [==================================================>] 2.048kB/2.048kB
9fcc49e3e223: Loading layer [==================================================>] 365.5MB/365.5MB
96507768f1a4: Loading layer [==================================================>] 261.2MB/261.2MB
a65c9018ee9b: Loading layer [==================================================>] 1.27GB/1.27GB
4dbb1e959fe6: Loading layer [==================================================>] 7.168kB/7.168kB
Loaded image: checkmk/check-mk-cloud:2.3.0p1
Puoi quindi avviare il container con un comando molto simile a quello descritto in precedenza, facendo solo attenzione a utilizzare il nome di Loaded image
dall'output del comando precedente nel comando di avvio successivo, quindi in questo esempio checkmk/check-mk-cloud:2.2.0p1
:
root@linux# docker container run -dit -p 8080:5000 -p 8000:8000 --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-cloud:2.3.0p1
f00d10fcb16313d3539065933b90c4dec9f81745f3d7283d794160f4f9b28df1
Dopo aver avviato il container, puoi accedere all'interfaccia web di Checkmk come descritto nella sezione Installazione di Checkmk Raw.
5. Aggiornamento
Come aggiornare Checkmk in un container Docker è descritto nell'articolo Aggiornamenti e upgrade.
6. Disinstallazione
Durante la disinstallazione, rimuovi il container Docker e, facoltativamente, i dati creati al momento della creazione del container.
I container Docker sono elencati:
root@linux# docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9a82ddbabc6e checkmk/check-mk-cloud:2.3.0p1 "/docker-entrypoint.…" 57 minutes ago Up 53 minutes (healthy) 6557/tcp, 0.0.0.0:8080->5000/tcp monitoring
Riprendi il sito CONTAINER ID
dall'output del comando per i comandi successivi.
Prima arresta il container e poi rimuovilo:
root@linux# docker container stop 9a82ddbabc6e
9a82ddbabc6e
root@linux# docker container rm 9a82ddbabc6e
9a82ddbabc6e
Se hai creato il container con l'opzione -v monitoring:/omd/sites
, puoi anche rimuovere il volume Docker creato:docker volume ls
visualizza i volumi e docker volume rm <VOLUME NAME>
elimina il volume.
Infine, puoi rimuovere l'immagine in modo simile: con docker images
ottieni l'elenco delle immagini e docker rmi <IMAGE ID>
rimuove l'immagine selezionata.