Checkmk
to checkmk.com

Important

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.

Tip

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 sysctl.

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.

Important

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.

CRE Comunità Checkmk

Docker Hub

Pagina di download di Checkmk

 — 

 — 

CSE Checkmk Pro

 — 

Pagina di download di Checkmk

Portale clienti Checkmk

Registro Docker di Checkmk

CSE Checkmk Ultimate

Docker Hub

Pagina di download di Checkmk

Portale clienti Checkmk

 — 

CME Checkmk Ultimate con Multi-Tenancy

Docker Hub

Pagina di download di Checkmk

Portale clienti Checkmk

 — 

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.

CEE 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.

CEE

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:

root@linux# docker login registry.checkmk.com --username myusername
Password:
Login Succeeded
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

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:

root@linux# docker load -i check-mk-*.tar.gz
346f14bf17b9: Loading layer [==================================================>]  80.41MB/80.41MB
87334b162001: Loading layer [==================================================>]  2.048kB/2.048kB
4c6fcf6a2c87: Loading layer [==================================================>]  335.7MB/335.7MB
1ba0c3ef2749: Loading layer [==================================================>]  279.7MB/279.7MB
bebf82ffc112: Loading layer [==================================================>]  1.291GB/1.291GB
88b55249828a: Loading layer [==================================================>]  7.168kB/7.168kB
Loaded image: checkmk/check-mk-raw:2.4.0p24
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

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.

compose.yaml
services:
  checkmk:
    image: "checkmk/check-mk-raw:2.4.0-latest"
    container_name: "monitoring"
    environment:
      - CMK_PASSWORD=mypassword
      - TZ=Europe/Berlin
    volumes:
      - monitoring:/omd/sites
    tmpfs:
      - /opt/omd/sites/cmk/tmp:uid=1000,gid=1000
    ports:
      - 8080:5000
      - 8000:8000
    restart: always

volumes:
  monitoring:
Copia il contenuto del file negli appunti
Contenuto del file copiato con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Maggiori informazioni sulle opzioni utilizzate:

Opzione Descrizione

checkmk:

Nome descrittivo personalizzato per il servizio Docker per il quale deve essere avviato il Docker container Checkmk.

image: "checkmk/check-mk-raw:2.4.0-latest"

Nome dell'immagine Checkmk nel formato <repository>:<tag>.

Puoi leggere i nomi delle immagini esistenti utilizzando il comando docker images.

Se ottieni l'immagine dal registro Docker di Checkmk, devi specificare l'immagine con il percorso completo.

container_name: "monitoring"

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 CMK_PASSWORD per specificare la password per l'accesso come utente cmkadmin nell'istanza Checkmk. Puoi modificare questa password in qualsiasi momento eseguendo cmk-passwd cmkadmin come utente dell’istanza all'interno del container.

 

TZ è il fuso orario che hai impostato per il container. Se ometti questa impostazione, il container (e quindi la tua istanza Checkmk) utilizzerà automaticamente l'UTC finché non modificherai l'impostazione nel container.

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 /etc/localtime che si trova sull'host come volume nel container. Tuttavia, ti consigliamo di usare la variabile d'ambiente TZ, poiché questo evita possibili problemi di compatibilità dipendenti dalla piattaforma quando si usa /etc/localtime.

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 monitoring viene montato nel container nel percorso /omd/sites. I volumi sono gestiti dal Docker Engine e possono essere visualizzati o modificati con docker volume. Se il container viene rimosso, i dati non vanno persi.

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: 80:5000. L'uso di HTTPS è spiegato nella sezione HTTPS. Inoltre, devi pubblicare la porta dell'Agent Receiver per eseguire la registrazione dell'Agent Controller, nel caso in cui desideri includere nel monitoraggio un host con un agente Checkmk installato.

 

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.

restart: always

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 monitoring.

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.

Tip

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 docker compose pull && docker compose up (facoltativamente con il parametro -d) per avviare il container.

L'output qui riportato si basa su uno scenario in cui l'immagine è stata preparata con docker load -i.

root@linux# docker compose up
[+] Running 3/3
  Network cmk_compose_default      Created                           0.0s
  Volume "cmk_compose_monitoring"  Created                           0.0s
  Container monitoring             Created                           0.0s
Attaching to monitoring
monitoring  | ### CREATING SITE 'cmk'
monitoring  | Generating configuration for core (type nagios)...
monitoring  | Precompiling host checks...OK
monitoring  | Adding /opt/omd/sites/cmk/tmp to /etc/fstab.
monitoring  | Going to set TMPFS to off.
monitoring  | Updating core configuration...
monitoring  | Executing post-create script "01_create-sample-config.py"...OK
monitoring  | Executing post-create script "02_cmk-compute-api-spec"...OK
monitoring  | Executing post-create script "03_message-broker-certs"...OK
monitoring  | Adding /opt/omd/sites/cmk/tmp to /etc/fstab.
monitoring  | Going to set TMPFS to off.
monitoring  | Skipping Apache restart.
monitoring  | Created new site cmk with version 2.4.0p24.cre.
monitoring  |
monitoring  |   The site can be started with omd start cmk.
monitoring  |   The default web UI is available at http://2403d4ed552d/cmk/
monitoring  |
monitoring  |   The admin user for the web applications is cmkadmin with password: mypassword
monitoring  |   For command line administration of the site, log in with 'omd su cmk'.
monitoring  |   After logging in, you can change the password for cmkadmin with 'cmk-passwd cmkadmin'.
monitoring  |
monitoring  | ### STARTING XINETD
monitoring  |  * Starting internet superserver xinetd
monitoring  |    ...done.
monitoring  | ### STARTING SITE
monitoring  | Starting agent-receiver...OK
monitoring  | Starting mkeventd...OK
monitoring  | Starting rrdcached...OK
monitoring  | Starting redis...OK
monitoring  | Starting npcd...OK
monitoring  | Starting automation-helper...OK
monitoring  | Starting ui-job-scheduler...OK
monitoring  | Starting nagios...OK
monitoring  | Starting apache...OK
monitoring  | Starting crontab...OK
monitoring  | ### STARTING CRON
monitoring  | ### CONTAINER STARTED
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

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.

root@linux# docker container run -dit \
          --name monitoring  \
          -e CMK_PASSWORD='mypassword' \
          -e TZ='Europe/Berlin' \
          -v monitoring:/omd/sites \
          --tmpfs /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 \
          -p 8080:5000 \
          -p 8000:8000 \
          --restart always \
          checkmk/check-mk-raw:2.4.0-latest
Unable to find image 'checkmk/check-mk-raw:2.4.0-latest' locally
2.4.0-latest: Pulling from checkmk/check-mk-raw
215ed5a63843: Pull complete
942691e22878: Pull complete
fafdf3fa2522: Pull complete
1888d204a5e5: Pull complete
c126aa904d34: Pull complete
b469f01932b5: Pull complete
Digest: sha256:bbabed3f4f5e88775f872bcf0f1df36660e13d0ebf613e4e6141f4c81e5c6354
Status: Downloaded newer image for checkmk/check-mk-raw:2.4.0-latest
c850572de41592afff9de610d1ef3faecb267bf4fbccf2a9d8dae92dec11aacb
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

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.

Tip

Quando si avvia con docker container run, è possibile specificare fin dall'inizio che il container e i suoi volumi debbano essere rimossi automaticamente dopo l'arresto. L'archiviazione dati persistente viene creata dal parametro -v monitoring:/omd/sites. Se si omette questa opzione, non verrà creata alcuna archiviazione persistente.

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.

CMK_SITE_ID

Nome personalizzato dell'istanza Checkmk da creare all'interno del container, se vuoi discostarti dal nome predefinito dell'istanza cmk.

CMK_LIVESTATUS_TCP

Impostazione per l'utilizzo di Livestatus tramite TCP. Se selezioni on come valore, il comando omd config set LIVESTATUS_TCP on viene eseguito all'interno del container per l'istanza.

MAIL_RELAY_HOST

Indirizzo di un server di inoltro della posta fornito da te (ad es. mailrelay.mydomain.com) per l'invio delle notifiche di Checkmk. Le notifiche vengono prima inoltrate dall'istanza all'interno del container al server e-mail specificato qui (server di inoltro SMTP, smarthost senza autenticazione) all'esterno del container, da dove vengono poi inviate alla destinazione effettiva.

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:

Checkmk login dialog.

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:

root@linux# docker container exec -it -u cmk monitoring bash
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Puoi quindi trasmettere i tuoi comandi all'istanza.

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).

root@linux# docker compose down
[+] Running 2/2
  Container monitoring         Removed                    6.3s
  Network cmk_compose_default  Removed                    0.1s
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Se aggiungi l'opzione -v, anche i volumi associati sul nodo Docker verranno rimossi insieme al container.

Important

Usa l'opzione -v solo se sei certo di non aver più bisogno dei dati di configurazione e di monitoraggio dai volumi del container. Non c'è modo di effettuare il ripristino dei volumi eliminati in un secondo momento se non sono stati salvati nei backup regolari.

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.


Last modified: Mon, 15 Dec 2025 13:15:22 GMT via commit a9387833c
In questa pagina