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. Nozioni di base
Docker ti permette di effettuare l’installazione di Checkmk all’interno di un ambiente container leggero e autonomo. In questo articolo ti guideremo nella configurazione di Checkmk in Docker e ti mostreremo alcuni trucchi che possono semplificarti la vita con Checkmk in Docker.
Checkmk fornisce immagini Docker ufficiali, ma non ha alcun controllo sulle caratteristiche del sistema host su cui configuri i container corrispondenti.
In questo caso valgono i vantaggi e gli svantaggi noti degli ambienti container.
In casi particolari, potrebbero verificarsi problemi di performance imprevisti, ad esempio se il kernel del sistema host è significativamente più recente o più vecchio rispetto a quello previsto dall'installazione di Checkmk nel container.
In questi casi, potrebbero essere necessarie ulteriori impostazioni di |
2. Prerequisiti
Per eseguire i comandi presentati in questo articolo, avrai bisogno di un'installazione funzionante di Docker Engine e di una conoscenza di base su come utilizzarlo.
L'uso di Checkmk basato sulle immagini qui presentate è supportato solo all'interno di Docker stesso. Altri ambienti container compatibili con Docker potrebbero funzionare, ma non sono supportati da Checkmk. In questi casi, li usi a tuo rischio e pericolo e non sono consigliati per ambienti di produzione. |
3. Ottenere un'immagine Checkmk
Per renderti il più semplice possibile l'utilizzo di Checkmk come container, mettiamo a disposizione immagini separate per ogni edizione di Checkmk in vari modi. Le immagini provenienti dalle diverse fonti per una stessa edizione sono identiche.
|
— |
— |
||
|
— |
|||
|
— |
|||
|
— |
Quando una di queste immagini viene avviata per la prima volta, non solo verrà eseguito il container appropriato, ma verrà anche configurata e avviata un'istanza di monitoraggio denominata cmk.
Questo sarà pronto per il login immediato con l'utente cmkadmin.
Le immagini ufficiali sono inoltre disponibili gratuitamente su varie piattaforme per le edizioni commerciali Checkmk Ultimate e Checkmk Ultimate con Multi-Tenancy.
Queste edizioni di Checkmk possono essere testate con tutte le funzionalità nell’ambito di un periodo di prova di 30 giorni.
Se non acquisti una licenza per l'edizione selezionata, al termine del periodo di prova passerai allo stato di licenza "Free".
Con questo stato, potrai effettuare il monitoraggio di fino a 750 servizi e sarai limitato a un'unica istanza.
3.1. Esecuzione automatica dello scaricamento delle immagini quando avvii un container per la prima volta
Se è disponibile una connessione Internet, Docker Engine cerca automaticamente su Docker Hub il nome dell'immagine specificato durante la creazione di un container. Per le edizioni le cui immagini sono disponibili su Docker Hub secondo la tabella sopra riportata, puoi passare direttamente alla sezione Avvio di un container Checkmk.
Le immagini per Checkmk Pro sono memorizzate nel Checkmk Docker Registry. Qui il Docker Engine può trovare e effettuare automaticamente lo scaricamento delle immagini in base al loro nome completo e al percorso del file. Tuttavia, devi prima accedere al registro con le tue credenziali dal portale clienti Checkmk. Per accedere, usa il Docker Credential Store o il seguente comando:
Dopo aver effettuato l'accesso, il Docker Engine può accedere alle immagini Checkmk tramite il registro. Per farlo, specifica il percorso completo dell'immagine desiderata all'avvio del container. Il Docker Engine verifica quindi se l'immagine è già disponibile localmente e, in caso contrario, effettua l'scaricamento automaticamente.
Per la versione 2.4.0p24 di Checkmk Pro, ad esempio, specifica il percorso completo dell'immagine all'avvio del container come segue:
registry.checkmk.com/enterprise/check-mk-enterprise:2.4.0p24
3.2. Scaricamento e preparazione delle immagini manualmente
Le immagini possono anche essere scaricate come file di archivio e salvate sul sistema su cui vuoi avviare il container.
Questo può essere utile, ad esempio, se il tuo host Docker non dispone di una connessione internet al momento dell'avvio del container.
Scarica l'immagine desiderata e trasferisci il file sul tuo host Docker utilizzando il metodo che preferisci.
Quindi usa docker load -i per rendere il file dell'immagine disponibile al Docker Engine sul tuo sistema:
4. Avvio di un container Checkmk
Puoi avviare le immagini Checkmk sia con docker compose e un file compose, sia con docker container run, specificando una serie di parametri.
L'opzione da scegliere dipende dal tuo utilizzo specifico.
4.1. Avvio condocker compose
L'esempio seguente mostra la variante che utilizza docker compose, con la quale basta un minimo sforzo di Setup per avviare container aggiuntivi in parallelo.
Nel file compose.yaml, si utilizzano i parametri per descrivere le proprietà desiderate per il Docker container da avviare.
Qui è possibile descrivere anche più container, che vengono poi avviati insieme.
Il seguente esempio di un file compose.yaml adatto mostra i parametri per avviare un singolo container Checkmk.
I parametri contenuti e i loro valori sono spiegati di seguito.
Maggiori informazioni sulle opzioni utilizzate:
| Opzione | Descrizione |
|---|---|
|
Nome descrittivo personalizzato per il servizio Docker per il quale deve essere avviato il Docker container Checkmk. |
|
Nome dell'immagine Checkmk nel formato Puoi leggere i nomi delle immagini esistenti utilizzando il comando Se ottieni l'immagine dal registro Docker di Checkmk, devi specificare l'immagine con il percorso completo. |
|
Nome descrittivo scelto dall'utente per il container. Questo nome deve essere univoco e non può essere utilizzato una seconda volta sul nodo Docker. |
environment: - CMK_PASSWORD=mypassword - TZ=Europe/Berlin |
Usa la variabile d'ambiente
Se non vuoi impostare il fuso orario in modo esplicito, puoi in alternativa adottare le impostazioni di ora dall'host Docker.
Per farlo, monta il file |
volumes: - monitoring:/omd/sites |
Questa specifica associa i dati dell’istanza in questo container a una posizione persistente nel file system del nodo Docker.
Il volume denominato |
tmpfs: - /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 |
Per performance ottimali, puoi utilizzare un file system temporaneo direttamente nella RAM del nodo Docker. Con questa opzione, devi specificare il percorso di questo file system. Se specifichi un nome diverso durante la creazione dell'istanza, anche questo percorso deve essere aggiornato di conseguenza. |
ports: - 8080:5000 - 8000:8000 |
Il server web del container ascolta sulla porta 5000 per impostazione predefinita.
In questo esempio, la porta 8080 del nodo Docker è associata alla porta 5000 del container in modo che la sua interfaccia web sia accessibile dall'esterno.
Se non hai un altro container o processo che utilizza la porta HTTP standard 80, puoi anche associare il container a essa.
In questo caso, l'opzione sarebbe simile a questa:
Per alcuni scenari che vanno oltre le funzionalità di base di Checkmk, è necessario abilitare esplicitamente delle porte aggiuntive. Questo vale, ad esempio, per l'accesso a Livestatus via TCP nel monitoraggio distribuito o per l'uso della Console degli Eventi all'interno di un container Checkmk. Una panoramica delle porte rilevanti è disponibile nell'articolo Porte. |
|
Normalmente, un container non si riavvia quando viene arrestato. Questa opzione garantisce che si riavvii automaticamente. Tuttavia, se arresti un container manualmente, questo si riavvierà solo quando il daemon Docker si riavvia o quando il container stesso viene riavviato manualmente. |
volumes: monitoring: |
Qui vengono specificati tutti i volumi richiesti all'interno dei servizi.
In questo caso, si tratta solo del volume |
Oltre al servizio Docker Compose checkmk, nel tuo file compose.yaml puoi definire servizi aggiuntivi che devono essere avviati nello stesso gruppo di container.
Una volta descritto tutto come desideri, puoi creare e avviare il contenitore o i contenitori.
Per farlo, esegui docker compose up nella directory in cui si trova il tuo file compose.yaml.
docker compose up assicura che tutti i contenitori e i volumi associati vengano creati correttamente.
Con docker compose up -d (per detached), i contenitori vengono avviati in background.
Se non hai ancora effettuato lo scaricamento di un'immagine e l'hai salvata sul tuo sistema, l'esecuzione di docker compose up richiederà alcuni minuti, poiché a questo punto l'immagine specificata verrà caricata da Docker Hub o dal registro Docker di Checkmk.
Se sul tuo host Docker esiste già un'immagine con il nome specificato, non ci sarà alcun scaricamento di una nuova immagine, quindi la tua immagine locale potrebbe già essere obsoleta quando avvii il container per la prima volta.
Per assicurarti di lavorare con l'immagine più recente, esegui |
L'output qui riportato si basa su uno scenario in cui l'immagine è stata preparata con docker load -i.
Interrompi l'esecuzione dei container con docker compose stop.
Per riavviare i container già creati, esegui docker compose start.
Per la visualizzazione dell'output del container monitoring utilizza docker container logs monitoring.
Con docker inspect monitoring ottieni informazioni dettagliate sul container, ad esempio i volumi che include.
4.2. Avvia condocker container run
In alternativa all’esecuzione con docker compose, puoi avviare l’immagine Checkmk con docker container run.
Per farlo, passa le informazioni dal file compose.yaml come parametri.
Il comando seguente crea lo stesso container con le stesse proprietà dell'esempio mostrato sopra.
L'output mostrato si basa su uno scenario in cui l'immagine non è stata ancora scaricata manualmente.
Facoltativamente, puoi forzare l'scaricamento dell'immagine più recente anteponendo docker pull checkmk/check-mk-raw:2.4.0-latest.
Qui il container viene eseguito in modalità distaccata (-d).
Per la visualizzazione dell'output del container, usa docker container logs monitoring.
Per informazioni dettagliate sul container, usa docker inspect monitoring.
Quando si avvia con |
4.3. Opzioni di Setup aggiuntive
Gli esempi mostrati finora riguardano il Setup semplice dei container Checkmk. Sono disponibili diverse opzioni aggiuntive per scenari applicativi speciali.
HTTPS
Puoi anche proteggere l’interfaccia web del tuo sito tramite HTTPS all’interno di un Docker container. La pratica comune per farlo è utilizzare un proxy inverso, che funge da interfaccia per le connessioni HTTP(S) tra i container nel tuo sistema e il mondo esterno. Questo proxy può garantire che solo le connessioni HTTPS vengano accettate o inoltrate al container Checkmk.
Se utilizzi un proxy inverso, non abilitare esplicitamente alcuna porta all'avvio del tuo container Checkmk. In questo modo, tutte le connessioni in entrata e in uscita saranno handle esclusivamente tramite il proxy inverso.
Variabili d'ambiente aggiuntive
La tabella mostra tutte le variabili d'ambiente specifiche di Checkmk che puoi utilizzare all'avvio del container per configurarlo come desideri.
Per farlo, specifica i valori delle variabili nel file compose o nell'elenco dei parametri quando chiami docker container run, nella stessa forma delle variabili d'ambiente menzionate in precedenza CMK_PASSWORD e TZ.
|
Nome personalizzato dell'istanza Checkmk da creare all'interno del container, se vuoi discostarti dal nome predefinito dell'istanza |
|
Impostazione per l'utilizzo di Livestatus tramite TCP.
Se selezioni |
|
Indirizzo di un server di inoltro della posta fornito da te (ad es. |
5. Utilizzo di Checkmk nel container in esecuzione
Una volta caricati tutti i file necessari e avviato il container, dovresti poter accedere alla GUI di Checkmk tramite http://localhost:8080/cmk/check_mk/ o tramite l'indirizzo del nodo Docker:

Ora puoi effettuare il primo accesso e provare Checkmk.
Per farlo, usa l'utente cmkadmin e la password che hai scelto durante la creazione del container.
Se la tua istanza ha un nome diverso da cmk, modifica il nome nell'URL.
Per accedere al tuo sito all'interno del container tramite la riga di comando, accedi al container come utente dell’istanza.
In Checkmk, questo utente ha sempre lo stesso nome dell’istanza che gestisce.
Usa il seguente comando per aprire una sessione Bash interattiva nel container monitoring e accedi come utente cmk:
6. Aggiornamento
Come aggiornare Checkmk nel Docker container è descritto nell'articolo Aggiornamenti e upgrade.
7. Disinstallazione
Se non hai più bisogno di un container, puoi rimuoverlo e, se necessario, eliminare i volumi associati. I comandi per farlo sono riportati nelle sezioni seguenti.
7.1. Disinstallazione con `docker compose
`
Per rimuovere un container, esegui docker compose down (con il container in esecuzione) oppure docker compose rm (con il container arrestato).
Se aggiungi l'opzione -v, anche i volumi associati sul nodo Docker verranno rimossi insieme al container.
Usa l'opzione |
7.2. Disinstallazione dopo l'avvio condocker container run
Puoi arrestare un container denominato monitoring avviato con docker container run utilizzando docker container stop monitoring. Puoi quindi rimuovere il container utilizzando docker rm monitoring. Puoi eliminare un volume denominato monitoring di cui non hai più bisogno dopo aver rimosso il container associato utilizzando docker volume rm monitoring.
7.3. Eliminazione dell'immagine Checkmk
Se non desideri più utilizzare l'immagine Checkmk selezionata, puoi rimuoverla con docker rmi myimageid.
Il comando docker images crea un elenco di tutte le immagini esistenti.
Identifica l'immagine che desideri eliminare e aggiungi l'ID immagine corrispondente alla tua chiamata a docker rmi.
