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

L'aggiornamento di Checkmk è un po' diverso da quello della maggior parte degli altri software che conosci. Perché?

Il motivo è che Checkmk non solo permette a più siti indipendenti di funzionare su un singolo server, ma permette anche di installare più versioni del software contemporaneamente. Con questo sistema, ogni sito è assegnato a una versione del software installata. Per illustrare, possiamo prendere la seguente situazione su un server immaginario:

update1

In questo caso, il sito mysite1 utilizza la versione 2.0.0p3.cee, mentre i siti mysite2 e mysite3 utilizzano la versione 2.0.0p1.cre. Sebbene l'istanza Checkmk-Version 2.0.0p1.cfe sia stata installata, al momento non viene utilizzata.

Questo esempio chiarisce che un aggiornamento non significa semplicemente l'installazione di un nuovo pacchetto RPM/DEB di Checkmk su un server. È necessario un ulteriore passo. Prendiamo ad esempio la seguente situazione:

update2

Il sito mysite deve essere aggiornato alla versione Checkmk 2.0.0p3.cee. Il primo passo consiste nello scaricare e installare il pacchetto RPM/DEB appropriato. Questa operazione viene eseguita esattamente come l'installazione iniziale. All'inizio la nuova versione installata non verrà utilizzata da nessun sito e avrà questo aspetto:

update3

Il secondo passo consiste nell'aggiornare il sito da 2.0.0p1.cre alla versione 2.0.0p3.cee. Questa operazione viene eseguita con il comando omd update, di cui parleremo in dettaglio più avanti:

update4

Dopo l'aggiornamento, la versione 2.0.0p1.cre (probabilmente non più necessaria) può essere eliminata disinstallando il pacchetto appropriato.

2. Prima dell'aggiornamento

Se hai intenzione di aggiornare Checkmk dalla versione 2.2.0 alla versione 2.3.0, dovresti prima leggere l'articolo Aggiornamento alla versione 2.3.0, in cui abbiamo raccolto le questioni più importanti che dovresti considerare prima e dopo tale aggiornamento.

Tuttavia, anche se hai già installato una versione 2.3.0 e vuoi aggiornare a una nuova versione patch stabile di 2.3.0, i temi descritti nelle sezioni seguenti possono essere ancora rilevanti.

2.1. Aggiornamento alle versioni principali

Quando si esegue l'aggiornamento a una versione maggiore, è sempre necessario eseguire l'aggiornamento passo dopo passo attraverso tutte le versioni intermedie disponibili fino a raggiungere la versione desiderata, senza saltare le versioni intermedie. Ad esempio, se vuoi aggiornare dalla versione 2.1.0 alla versione 2.3.0, aggiorna prima alla versione intermedia 2.2.0. Il motivo di questa procedura è semplice: a volte ci sono semplicemente così tanti cambiamenti tra due versioni maggiori che saltare le versioni può causare problemi.

Il comando omd update consente anche un "aggiornamento" a una versione inferiore. Questa procedura è prevista solo per le regressioni. Dopo un tale aggiornamento in senso inverso, saranno necessari molti aggiustamenti per rendere la configurazione e l'ambiente di esecuzione nuovamente compatibili, soprattutto, ma non solo, nel caso di un "aggiornamento" a una versione principale inferiore. Per questo motivo sconsigliamo vivamente questa procedura e non forniremo più supporto nel caso di un aggiornamento a una versione inferiore.

2.2. MKP incompatibili e obsoleti

Il tuo sistema di monitoraggio può essere ampliato in modo semplice e comodo utilizzando i pacchetti di estensione di Checkmk (MKP). Da un lato, è possibile che alcuni MKP più vecchi non vengano più mantenuti e quindi non siano più compatibili con le versioni più recenti di Checkmk. Dall'altro lato, continuiamo ad aggiungere nuovi plug-in ed estensioni funzionali a Checkmk, motivo per cui gli MKP a volte diventano obsoleti. La funzionalità di questi plug-in ed estensioni è semplicemente fornita da Checkmk stesso come standard.

Per questo motivo, quando ti prepari a un aggiornamento, ti consigliamo vivamente di rivedere tutti gli MKP installati, per evitare che pacchetti incompatibili interferiscano con l'aggiornamento o che, dopo l'aggiornamento, si verifichino servizi duplicati o comunque molto simili.

A tal fine, controlla i tuoi MKP installati con il nostro Catalogo dei plug-in di controllo e rimuovi tutti i pacchetti che contengono funzioni che ora sono fornite in modo nativo da Checkmk. Puoi anche cogliere l'occasione per rimuovere gli MKP che potrebbero essere stati installati solo per un test-in controllo. Un elenco si trova nel menu Setup alla voce Maintenance > Extension packages. Alla riga di comando, puoi visualizzare le estensioni installate con il comando mkp list. Controlla l'output di questo comando per verificare la presenza di estensioni che non sono più necessarie o che non riesci nemmeno a identificare.

Checkmk supporta l'installazione di MKP per una versione più recente di quella attualmente in uso in preparazione di futuri aggiornamenti. Quando si esegue un aggiornamento, il pacchetto per la versione inferiore di Checkmk viene disabilitato e quello per la versione superiore viene abilitato. I dettagli sono spiegati nell'articolo sull'uso degli MKP.

Attenzione:se hai apportato modifiche locali ai file che originariamente provenivano da MKP, riconfeziona l'MKP dopo aver aumentato il numero di versione. Durante un aggiornamento, i file che sono stati modificati in altro modo saranno sovrascritti da quelli contenuti nell'MKP.

2.3. File locali

I file locali ti permettono di personalizzare ed estendere le funzionalità fornite da Checkmk. Questi file si trovano nella parte locale della struttura della directory del sito, cioè in ~/local. I file locali possono causare problemi al momento dell'aggiornamento, poiché potrebbero non corrispondere più alla nuova versione di Checkmk.

Poiché Checkmk non è in grado di intercettare e gestire le personalizzazioni locali e le estensioni di terze parti durante l'aggiornamento, è necessario controllare il proprio sito Checkmk prima di un aggiornamento per verificare se e quali file locali si stanno utilizzando.

Ottieni una panoramica dei file locali del tuo sito Checkmk eseguendo il seguente comando come utente dell'istanza Checkmk (dove l'opzione -L assicura che vengano seguiti anche i link simbolici):

OMD[mysite]:~$ find -L ~/local -type f

In un'installazione di nuova pertinenza di Checkmk, al momento vedrai elencato solo un file chiamato README.TXT. Qualsiasi cosa al di là di questo dovrebbe essere in top list per la risoluzione dei problemi in caso di problemi di aggiornamento.

Idealmente, i file locali sono già completamente impacchettati in MKP. Usa mkp find per identificare i file non impacchettati. Per ulteriori dettagli sulla creazione dei pacchetti, consulta il nostro articolo sui pacchetti di estensioni Checkmk. Una volta impacchettata, ogni estensione può essere disattivata o riattivata come elemento completo.

2.4. Backup e test

Non c'è bisogno di ricordarti l'importanza di creare un backup immediatamente prima di qualsiasi aggiornamento, in modo da non rischiare di perdere gran parte della cronologia di monitoraggio in caso di guasto durante l'aggiornamento. Ciò che è importante a questo punto è che un backup regolare può essere utile anche per eseguire dei test su un aggiornamento in corso. Questa pratica ti permette di ripristinare il backup con un nome alternativo e di utilizzare il sito newsite per testare l'aggiornamento prima che diventi operativo:

root@linux# omd restore newsite /path/to/backup

In alternativa, puoi anche copiare il tuo sito tramite omd cp. Per questo, però, è necessario interrompere il sito live per un breve periodo:

root@linux# omd stop mysite && omd cp mysite newsite && omd start mysite

Se i test con il sito clonato sono andati a buon fine, di solito vorrai eliminarlo o almeno interromperlo prima dell' aggiornamento del sito di produzione per motivi di spazio e di prestazioni.

Tip

Da Checkmk 2.3.0, se un aggiornamento fallisce, viene ripristinato lo stato di configurazione precedente all'aggiornamento. Un aggiornamento può fallire a causa di un errore interno imprevisto, ma anche a causa dell'input dell'utente durante il processo di aggiornamento, ad esempio selezionando l'opzione del menu abort o premendo la combinazione di tasti CTRL+C. Il ripristino della configurazione non sostituisce un backup completo, ma in molti casi aiuta a ridurre i tempi di manutenzione programmata.

3. Aggiornamento di Checkmk

3.1. Installazione di nuove versioni

Come descritto nell'introduzione, il primo passo da compiere con un aggiornamento è l'installazione della nuova versione di Checkmk desiderata. Questa operazione si svolge esattamente come l'installazione iniziale, ma procederà in modo più rapido poiché la maggior parte dei pacchetti dipendenti sono già stati installati. Nell'esempio seguente stiamo installando il pacchetto per Ubuntu 22.04 (Jammy Jellyfish):

root@linux# apt install /tmp/check-mk-enterprise-2.3.0p1_0.jammy_amd64.deb

Nota: quando installi un pacchetto locale tramite apt install, devi indicare il percorso del file .deb.

Un elenco delle versioni di Checkmk installate può essere visualizzato in qualsiasi momento con il comando omd versions:

root@linux# omd versions
2.1.0p42.cre
2.2.0p22.cee
2.3.0p1.cee (default)

Una di queste versioni elencate è contrassegnata con (default). Questa versione predefinita verrà utilizzata automaticamente quando si creano nuovi siti, a patto che non venga specificata un'altra versione con omd -V myversion create mysite. La versione predefinita attuale può essere interrogata con omd version e può essere modificata con omd setversion:

root@linux# omd version
OMD - Open Monitoring Distribution Version 2.3.0p1.cee
root@linux# omd setversion 2.2.0p22.cee
root@linux# omd version
OMD - Open Monitoring Distribution Version 2.2.0p22.cre

La versione predefinita non ha alcun ruolo nella gestione dei siti esistenti. Il comando omd inizia sempre con la versione appropriata al sito per il quale viene chiamato.

Il comando omd sites fornisce un elenco dei siti attuali e delle versioni utilizzate:

root@linux# omd sites
SITE             VERSION          COMMENTS
mysite           2.2.0p22.cee
test             2.3.0p1.cee      default version

3.2. Eseguire l'aggiornamento

Una volta installata la nuova versione desiderata, è possibile aggiornare il sito. Non sono necessari i permessi di root. Il modo migliore per farlo è come utente dell'istanza:

root@linux# omd su mysite

Assicurati che il sito sia stato interrotto:

OMD[mysite]:~$ omd stop

L'aggiornamento, ovvero lo switch a una versione diversa, può essere eseguito semplicemente con il comando omd update:

OMD[mysite]:~$ omd update

Se è disponibile più di una versione di destinazione, si aprirà un elenco di selezione:

update omd update 2

Nella finestra di dialogo seguente, conferma l'aggiornamento alla nuova versione:

update omd update 3

Per sicurezza, quando esegui l'aggiornamento di un'edizione da Checkmk Raw a una delle edizioni commerciali contemporaneamente all'aggiornamento della versione, ti verrà nuovamente ricordato questo fatto:

update raw to enterprise

Una parte importante di un aggiornamento è il refresh dei file di configurazione originariamente forniti. In questo caso, le modifiche eventualmente apportate a questi file dall'utente non verranno semplicemente scartate, ma verranno unificate. Questo funziona in modo molto simile ai file system di controllo delle versioni che cercano di unire le modifiche apportate a un singolo file contemporaneamente da più sviluppatori.

A volte, quando le modifiche riguardano la stessa posizione del file, questo non funziona e si verifica un conflitto. Il modo in cui puoi risolvere questi conflitti sarà spiegato più avanti.

L'aggiornamento fornisce un elenco di tutti i file e le directory modificate (abbreviato nell'esempio seguente):

2024-04-09 15:55:04 - Updating site 'mysite' from version 2.2.0p23.cee to 2.3.0p1.cee...

 * Installed dir  etc/default
 * Updated        etc/mk-livestatus/nagios.cfg

...
 * Vanished       etc/jmx4perl/config/websphere
 * Vanished       etc/jmx4perl/config
Creating temporary filesystem /omd/sites/mysite/tmp...OK
ATTENTION
  Some steps may take a long time depending on your installation.
  Please be patient.

Cleanup precompiled host and folder files
Verifying Checkmk configuration...
 01/05 Rulesets...
 02/05 UI extensions...
 03/05 Agent based plugins...
 04/05 Autochecks...
 05/05 Deprecated .mk configuration of plugins...
Done (success)

Completed verifying site configuration. Your site now has version 2.3.0p1.cee.
Executing update-pre-hooks script "01_init_state_creation.py"...OK
Executing update-pre-hooks script "01_mkp-disable-outdated"...OK
Executing update-pre-hooks script "02_cmk-update-config"...
-| ATTENTION
-|   Some steps may take a long time depending on your installation.
-|   Please be patient.
-|
-| Cleanup precompiled host and folder files
-| Verifying Checkmk configuration...
-|  01/05 Rulesets...
-|  02/05 UI extensions...
-|  03/05 Agent based plugins...
-|  04/05 Autochecks...
-|  05/05 Deprecated .mk configuration of plugins...
-| Done (success)
-|
-| Updating Checkmk configuration...
-|  01/25 Cleanup microcore config...
...
-|  25/25 Update core config...
-| Generating configuration for core (type cmc)...
-| Starting full compilation for all hosts Creating global helper config...OK
-|  Creating cmc protobuf configuration...OK
-| Done (success)
OK
Finished update.

Se viene visualizzata la riga Completed verifying site configuration evidenziata nell'output precedente, il sito è stato switchato alla nuova versione:

OMD[mysite]:~$ omd version
OMD - Open Monitoring Distribution Version 2.3.0p1.cee

... e può essere avviato:

OMD[mysite]:~$ omd start

3.3. Modifiche incompatibili

Lo sviluppo di un software comporta ovviamente delle modifiche. Poiché lavoriamo sempre attivamente per mantenere Checkmk moderno, a volte è inevitabile tagliare i pesi morti e apportare modifiche che si rivelano incompatibili. Ciò significa che durante l'aggiornamento potrebbe essere necessario adattare la tua configurazione, o almeno verificarla.

Un esempio tipico di questa situazione è rappresentato dai nuovi plug-in di controllo che sostituiscono i plug-in esistenti. Se utilizzi uno dei plug-in interessati, sarà necessaria una nuova scoperta del servizio sull'host interessato.

Una panoramica di tutte le modifiche apportate a Checkmk, compresa una funzione di ricerca, è disponibile online nei nostri Werk.

Ancora più pratica è la funzione di ricerca integrata nell'istanza Checkmk. Dopo aver effettuato il log in, troverai un link evidenziato in rosso nella parte superiore del menu Help con il numero di modifiche incompatibili e non ancora confermate:

“Help menu with link to the list of incompatible changes.”

Checkmk tiene traccia delle modifiche incompatibili avvenute durante l'aggiornamento alla versione corrente e ti chiede di esaminarle e confermarle:

“List of incompatible and open changes.”

Se apri questa pagina tramite il link rosso nel menu Help, vedrai solo i "Werk" (cioè le modifiche) per le quali è necessario fare qualcosa e che sono quindi contrassegnate da Incompatible - TODO. Puoi richiamare ogni Werk singolarmente, visualizzarlo e confermarlo con un clic del mouse, riducendo così progressivamente il numero di modifiche incompatibili aperte. Inoltre, la voce di menu Help > Change log (works) ti dà accesso alla cronologia completa delle modifiche della versione principale corrente.

3.4. L'aggiornamento in dettaglio

Sei curioso di sapere cosa succede esattamente "sotto il cofano" di un aggiornamento o hai riscontrato dei conflitti di dati durante l'esecuzione di omd update? In tal caso, ecco qualche approfondimento.

Durante l'aggiornamento di omd update avvengono tre azioni:

  1. L'aggiornamento dei file predefiniti in ~/etc/ e ~/var/, cioè i file creati da omd create.

  2. Lo switch dalla versione attiva a quella di destinazione modificando il link simbolico version che si trova nella directory del sito.

  3. Post-processing da parte di vari pacchetti (es. Checkmk). In particolare, verrà eseguita automaticamente l'attivazione delle modifiche per generare una configurazione valida per il core.

Aggiornare i file e unire le modifiche

La prima fase è di gran lunga la più completa. Qui Checkmk dimostra un grande vantaggio rispetto alla tipica installazione di un software: Checkmk ti aiuta ad adattare tutti i file di configurazione standard ai prerequisiti della nuova versione. Ciò assomiglia alla procedura di aggiornamento di una distribuzione Linux, ma si spinge oltre nell'implementazione. Checkmk è in grado di gestire una molteplicità di situazioni, ad esempio:

  • Unire le modifiche apportate ai file dall'aggiornamento con quelle apportate localmente dall'utente.

  • File, directory e link simbolici che sono obsoleti nella nuova versione o che sono stati cancellati dall'utente.

  • Modifiche ai permessi.

  • Modifiche al tipo di file (un link simbolico derivato da un file o da una directory o viceversa).

  • Modifiche alla destinazione di un link simbolico.

Checkmk garantisce sempre che le modifiche locali vengano mantenute e che tutte le modifiche richieste dalla nuova versione vengano implementate simultaneamente.

Unire e creare conflitti

Se la nuova versione richiede la modifica di un file di configurazione al quale l'utente ha apportato delle modifiche, Checkmk tenta automaticamente di unire entrambe le serie di modifiche, utilizzando gli stessi metodi dei file system di controllo delle versioni.

Il minor numero di problemi si verifica quando le modifiche dell'utente e quelle di Checkmk hanno una chiara separazione fisica nel testo (almeno qualche riga di distanza). In questo caso, l'unione avverrà automaticamente e senza bisogno dell'intervento dell'utente.

Se due modifiche si "scontrano" perché riguardano entrambe la stessa posizione nei dati, Checkmk non può e non deciderà quale delle modifiche è più importante. In questa situazione verrai avvisato come utente e potrai risolvere il conflitto in modo interattivo:

omd update

Nella situazione mostrata sopra, hai a disposizione le seguenti opzioni:

d

Mostra le differenze tra la nuova versione predefinita e la tua versione del file sotto forma di "diff unificato" (diff -u).

y

È simile alla precedente, ma in base alla versione predefinita precedente mostra quali modifiche hai apportato al file.

n

Questa terza opzione in effetti "chiude il triangolo" mostrando le modifiche che Checkmk intende apportare al file.

e

Risolve il conflitto manualmente in un editor.

t

Selezionando t, il tuo file originale - senza le modifiche già unite con successo - verrà aperto in un editor. Ora modifica il file per aggirare i possibili conflitti. Una volta chiuso l'editor, Checkmk tenterà nuovamente l'unione.

k

Qui puoi decidere se accettare i dati "così come sono". Le modifiche inserite con successo vengono mantenute. A parte questo, il file rimane come personalizzato dall'utente.

r

Con questa opzione puoi tornare alla vecchia versione del tuo file e fare a meno dell'aggiornamento di Checkmk per questo file. Le eventuali personalizzazioni devono essere eseguite manualmente.

i

Installa la nuova versione predefinita del file: le modifiche apportate al vecchio file andranno perse.

s

Se non sei sicuro, puoi aprire una shell con s. Ti troverai in una directory contenente il file in questione e potrai farti un'idea della situazione. Esci dalla shell con CTRL+D per procedere con l'aggiornamento.

a

Interrompe l'aggiornamento. Il sito mantiene la vecchia versione e la sua configurazione precedente viene ripristinata. Puoi avviare un nuovo tentativo di aggiornamento in qualsiasi momento.

Ulteriori situazioni di conflitto

Oltre alla fusione dei contenuti dei file, c'è tutta una serie di altre situazioni in cui Checkmk richiede le tue decisioni. Alcune di queste sono situazioni molto insolite, che tuttavia devono essere gestite correttamente. In questi casi Checkmk ti darà sempre la possibilità di scegliere se mantenere la tua versione o adottare la nuova versione predefinita. Inoltre, c'è sempre la possibilità di interrompere l'aggiornamento o di aprire una shell. Esempi di queste situazioni "difficili" sono:

  • modifiche contrastanti ai tipi di file (es. quando un file viene sostituito da un link simbolico)

  • modifiche contrastanti ai permessi dei file

  • file modificati che non sono richiesti dalla nuova versione del software

  • file, directory o link creati da un utente che entrano in conflitto con i file/directory/link della nuova versione.

Spiegazione dell'output durante un aggiornamento

La procedura di aggiornamento fornisce sempre una riga di spiegazione quando apporta automaticamente una modifica a un file. Le situazioni possibili sono le seguenti: in questo caso ci si riferisce ai file, ma ciò vale anche per i link e le directory:

Aggiornato

Un file è stato modificato con la nuova versione. Poiché non hai apportato alcuna modifica al file, Checkmk installa semplicemente la nuova versione predefinita del file.

Unito

Un file è stato modificato con la nuova versione e allo stesso tempo l'utente ha apportato altre modifiche al file. Entrambe le versioni del file possono essere unite in un'unica versione senza conflitti.

Identico

Un file è stato modificato nella nuova versione e allo stesso tempo l'utente ha già apportato modifiche identiche al file. Checkmk non deve eseguire alcuna azione.

Installato

La nuova versione include un nuovo file di configurazione che è stato appena installato.

Identico nuovo

La nuova versione include un file di cui l'utente ha già installato una copia identica.

Obsoleto

La nuova versione ha reso obsoleto un file (vale anche per un link o una directory). L'utente l'ha comunque già cancellato. Nessuna azione.

Scomparso

Un altro file è obsoleto nella nuova Checkmk e l'utente non ha né cancellato né modificato la versione esistente. Checkmk elimina questo file automaticamente.

Non desiderato

L'utente ha eliminato un file normalmente presente. Poiché la versione del nuovo Checkmk non presenta modifiche rispetto all'ultima versione del file, Checkmk permette che il file sia assente.

Mancante

L'utente ha già cancellato un file, ma nel nuovo Checkmk questo file contiene modifiche rispetto alla versione precedente. Checkmk installa il nuovo file e notifica l'azione all'utente.

Permessi

Checkmk ha aggiornato i permessi di un file perché nella nuova versione sono stati impostati permessi diversi.

3.5. Aggiornamento senza l'interazione dell'utente

Vuoi automatizzare gli aggiornamenti del software di Checkmk? All'inizio potresti avere delle difficoltà con le risposte interattive di omd update. C'è una soluzione semplice per questo scenario: il comando ha delle opzioni che sono state concepite appositamente per essere utilizzate negli script:

  • Le opzioni -f o --force che seguono direttamente omd inibiscono tutti i tipi di domande "Sei sicuro...?".

  • L'opzione --conflict= che segue direttamente update determina il comportamento desiderato se si verifica un conflitto di file.

I valori possibili per --conflict= sono:

--conflict=keepold

In caso di conflitto, viene mantenuta la versione del file modificata dall'utente. È tuttavia possibile che Checkmk non sia eseguibile e che sia necessaria una correzione manuale.

--conflict=install

In caso di conflitto, verrà installata la nuova versione standard del file. In questo modo, le modifiche locali al file andranno almeno in parte perse.

--conflict=abort

In caso di conflitto, l'aggiornamento viene eliminato e viene ripristinata la configurazione precedente della vecchia versione,

--conflict=ask

Questa è la procedura standard, quindi in questo modulo l'opzione è di fatto superflua.

Di seguito è riportato un esempio di comando completo per un aggiornamento automatico alla versione 2.3.0p1.cee di mysite:

root@linux# omd stop mysite ; omd -f -V 2.3.0p1.cee update --conflict=install mysite && omd start mysite

Attraverso && prima di omd start si eviterà il riavvio del sito se omd update viene interrotto da un errore. Sostituisci && con un punto e virgola (;) se l'avvio deve essere tentato anche in questa situazione.

Se sei certo che sul server è in esecuzione un'unica istanza Checkmk, il nome da utilizzare in uno shell script può essere semplicemente inserito in una variabile:

root@linux# omd sites --bare
mysite
root@linux# SITENAME=$(omd sites --bare)
root@linux# echo $SITENAME
mysite

In questo modo, la riga precedente è indipendente dal nome del sito. Ad esempio, un piccolo script di shell potrebbe essere simile a questo:

update.sh
#!/bin/bash
SITE=$(omd sites --bare)
VERSION=2.3.0p1.cee

omd stop $SITE
omd -f -V $VERSION update --conflict=install $SITE  && omd start $SITE

4. Aggiornamento in ambienti distribuiti

Esistono due diverse procedure per eseguire l'aggiornamento di tutti i siti inclusi in un monitoraggio distribuito: il sito centrale e tutti i siti remoti da esso controllati.

Importante:qualunque sia l'approccio scelto, come primo passo devi creare dei backup di tutti i siti dell'ambiente.

La procedura preferibile e più sicura è quella di aggiornare in un'unica soluzione, eseguendo i seguenti passaggi:

  1. Per prima cosa, arresta tutti i siti

  2. Poi esegui l'aggiornamento per tutti i siti

  3. Riavvia i siti aggiornati

Se questo non è possibile - ad esempio perché l'ambiente è distribuito tra diversi fusi orari e con diversi team di assistenza - è possibile attuare un'operazione mista temporanea a condizioni rigorose. Le versioni non possono differire di più di una versione per gli aggiornamenti principali e presuppongono sempre un livello di patch specifico per la versione corrente (esistente).

È fondamentale seguire esattamente questa sequenza: In primo luogo, aggiorna tutti i siti remoti e solo in seguito aggiorna il sito centrale, in modo da garantire che in nessun momento una configurazione creata da una versione Checkmk più recente finisca in una versione Checkmk più vecchia.

La seguente tabella mostra le possibili combinazioni per l'aggiornamento da 2.2.0 a 2.3.0:

Sito centrale Sito remoto Permesso? Note

2.2.0

2.2.0

Dichiara prima di aggiornare tutti i siti.

2.2.0

2.3.0

Durante l'aggiornamento sono previste lievi perdite di funzionalità, quindi opera come ambiente misto solo per un breve periodo di tempo. Non c'è pericolo per i dati e la configurazione.

2.3.0

2.2.0

No

Attenzione: Con una configurazione centralizzata, in questa situazione c'è il rischio di danneggiare irrimediabilmente i siti remoti. Evita questa condizione a tutti i costi!

2.3.0

2.3.0

Stato dopo l'aggiornamento di tutti i siti.

4.1. Premesse tecniche

La ragione tecnica dell'approccio all'aggiornamento descritto in precedenza risiede nei protocolli utilizzati: il sito centrale accede ai dati dei siti remoti principalmente in lettura tramite Livestatus e, nel caso di una configurazione centrale, con un ulteriore accesso in scrittura tramite un'API HTTP non pubblica. In entrambe le situazioni, le nuove versioni introducono dei veri e propri superset dei protocolli utilizzati. Pertanto, un sito centrale più vecchio utilizza solo un vero e proprio sottoinsieme delle funzionalità dei siti remoti più recenti. Se il sito centrale venisse aggiornato per primo, potrebbe effettuare chiamate API o richieste Livestatus ai siti remoti che questi non "capiscono" ancora.

La differenza massima di una versione principale deriva ancora una volta dal fatto che la rimozione delle interfacce è accompagnata da un periodo di tolleranza di una versione esatta. Ad esempio, l'API web non era più utilizzata internamente dall'istanza Checkmk 2.1.0, ma la sua rimozione non è avvenuta fino alla versione 2.2.0. Per questo motivo, un sito centrale 2.1.0 funziona con i siti remoti 2.2.0, ma un sito centrale 2.0.0 non funzionerà con i siti remoti 2.2.0.

4.2. Pacchetti di estensione da utilizzare nelle configurazioni centralizzate

Per facilitare questi aggiornamenti graduali, Checkmk offre la possibilità di memorizzare pacchetti di estensione con lo stesso nome in versioni diverse - una corrispondente al sito centrale più vecchio, una ai siti remoti più recenti - per esempio. La versione appropriata verrà attivata per ogni sito. I dettagli sono descritti nell'articolo sui pacchetti di estensione (MKP).

4.3. Livestatus a cascata

Con l'estensione dei siti visualizzatori, i siti visualizzatori possono essere aggiornati solo dopo i siti di cui visualizzano i dati. Se un sito visualizzatore mostra solo i dati dei siti remoti, può essere aggiornato non appena questi vengono aggiornati. Se invece mostra anche i dati del sito centrale, l'aggiornamento del visualizzatore può avvenire solo per ultimo.

5. Aggiornare un Docker container

L'aggiornamento di un'istanza Checkmk nel container Docker è molto semplice. Gli unici requisiti sono i seguenti:

  • Il container non viene cancellato quando viene fermato, cioè l'opzione --rm non è stata utilizzata all'avvio.

  • Conosci l'ID del volume per il container. Normalmente dovresti aver assegnato un ID univoco al volume quando hai avviato il container. Se non sei sicuro dell'ID del tuo volume, puoi recuperare le informazioni sul container chiamato myContainer con il comando docker inspect myContainer.

Se hai seguito la guida all'installazione di Checkmk in Docker dovresti soddisfare automaticamente i requisiti.

Il processo di aggiornamento si svolge in 3 fasi:

  1. Arresta il container. Se il container Checkmk si chiama myContainer, il comando sarà: docker stop myContainer.

  2. Rimuovi il container. Il comando è: docker rm myContainer.

  3. Avvia un nuovo container con il comando docker container run con la versione desiderata e monta il volume conosciuto. Se il tuo volume si chiama myVolume, l'opzione corrispondente è -v myVolume:/omd/sites. Tutte le opzioni del comando si trovano nella guida all'installazione di Checkmk in Docker.

Checkmk farà automaticamente il resto: aggiornerà e avvierà la tua istanza Checkmk. In seguito potrai effettuare il log in come al solito.

6. Aggiornamenti

L'aggiornamento da Checkmk Raw a una delle edizioni commerciali o da una delle edizioni commerciali a un'altra con maggiori funzionalità è semplice in qualsiasi momento. La procedura è essenzialmente sempre la stessa: installa il pacchetto desiderato e switcha le relative istanze con omd update. Se passi a una delle edizioni commerciali, devi ottenere la licenza dopo l'aggiornamento.

Quando si passa a una versione commerciale con una gamma di funzioni più ampia, la licenza deve essere sempre reinserita dopo l 'aggiornamento. Questo vale anche nel caso in cui il tuo contatto commerciale ti abbia assicurato che puoi già utilizzare il tuo ambiente Checkmk "inferiore" con la licenza "superiore" dopo l'aggiornamento della licenza: quando si esegue l'aggiornamento, lo stato della licenza viene resettato (la cronologia viene mantenuta), quindi la licenza deve essere reinserita.

6.1. Aggiornamento di Checkmk Raw a una delle edizioni commerciali

Questo capitolo tratta principalmente l'aggiornamento a Checkmk Enterprise. Puoi anche effettuare l'aggiornamento a Checkmk Cloud in un unico passaggio, ma in questo caso fai riferimento alle note della sezione seguente.

Poiché le edizioni commerciali hanno molti moduli e funzionalità aggiuntive, ci sono alcune cose da tenere a mente dopo qualsiasi aggiornamento. Il punto cruciale è che quando si creano nuovi siti in Checkmk Raw o in una delle edizioni commerciali, vengono impostate diverse impostazioni predefinite.

Nagios vs. CMC

Poiché Checkmk Raw supporta solo Nagios come core, questa è l'impostazione predefinita per le istanze create con Checkmk Raw. Questa configurazione verrà mantenuta quando si passa a Checkmk Enterprise. Ciò significa che dopo un aggiornamento si continuerà a lavorare con Nagios come core. La migrazione al CMC si effettua con omd config ed è descritta nell'articolo Migrazione al CMC.

Il formato RRD

Le edizioni commerciali supportano un formato alternativo per l'archiviazione dei dati storici delle misurazioni, che genera una quantità di I/O su disco significativamente inferiore. Questo formato viene automaticamente preimpostato per i siti delle nuove edizioni commerciali. Anche in questo caso, le istanze Checkmk Raw non vengono convertite automaticamente durante un aggiornamento. Le modalità di switch dei formati dei dati sono descritte in una sezione separata dell'articolo sui valori misurati e i grafici.

Ulteriori differenze

Per trarre il massimo vantaggio da Checkmk Enterprise, consulta la panoramica delle differenze tra Checkmk Raw e Checkmk Enterprise.

6.2. Aggiornamento da Checkmk Enterprise a Checkmk Cloud

Per quanto riguarda il nucleo di monitoraggio e il sistema di notifica, non ci sono differenze tra Checkmk Enterprise e Checkmk Cloud. A seconda del focus del deployment, spesso si utilizzerà il set di funzionalità più ampio solo quando si aggiungono nuovi host. In alcuni casi, tuttavia, è consigliabile rivedere le impostazioni esistenti.

Per una panoramica completa delle funzionalità aggiuntive, consulta l'articolo su Checkmk Cloud.

Plug-in di controllo per i servizi cloud

Quando monitorizzi Amazon Web Services (AWS), Microsoft Azure o Google Cloud Platform (GCP), i servizi negli host esistenti riservati a Checkmk Cloud inizialmente non saranno abilitati. Puoi abilitare questi servizi nella regola XYZ services to monitor (dove XYZ è il nome della piattaforma cloud). Quindi esegui una scoperta del servizio su questi host per trovare i servizi che saranno ora disponibili.

Agent Controller in modalità push

Grazie alla possibilità di monitorare direttamente gli host che possono raggiungere il server Checkmk ma che non sono accessibili da esso, in molti casi si elimina la necessità di soluzioni homegrown con programmi di origine dati. Puoi switchare questi host in modalità push per abilitare un monitoraggio diretto.

6.3. Aggiornamento delle edizioni in ambienti distribuiti

Tieni presente che negli ambienti distribuiti l'aggiornamento della versione deve essere sempre eseguito per primo prima di procedere all'aggiornamento dell'edizione. Non è supportata una sequenza diversa o un crossgrade (aggiornamento della versione e aggiornamento dell'edizione in un'unica azione). Come procedura generale, ti consigliamo l'aggiornamento offline, in cui puoi passare da un'edizione inferiore a un'edizione superiore.

Per due scenari di aggiornamento frequentemente richiesti(da Checkmk Raw a Checkmk Enterprise e da Checkmk Enterprise a Checkmk Cloud), l'operazione mista è possibile per un periodo di tempo limitato. Mentre l'aggiornamento offline funziona con tutte le versioni, i due scenari online richiedono almeno Checkmk 2.2.0p23.

Aggiornamento offline (tutte le combinazioni)

Poiché la combinazione delle edizioni è possibile solo in alcune combinazioni, in genere consigliamo di aggiornare l'edizione offline. Per farlo, procedi come segue:

  1. Arresta tutti i siti.

  2. Esegui l'aggiornamento del sito centrale.

  3. Se lo desideri (e l'abbondanza di notifiche non è un problema), il sito centrale può essere riavviato immediatamente.

  4. Ora è il momento di aggiornare i siti remoti. Puoi farlo in parallelo e riavviare i siti remoti subito dopo l'aggiornamento.

Naturalmente, puoi aspettare che tutti i siti siano stati aggiornati prima di riavviarli, in modo da ridurre il numero di notifiche generate.

Da Checkmk Raw a Checkmk Enterprise (online)

Checkmk consente solo il funzionamento misto di Checkmk Enterprise come sito centrale e Checkmk Raw o Checkmk Cloud come siti remoti. Per l'aggiornamento a Checkmk Enterprise, ciò significa che il sito centrale riceve per primo l'aggiornamento. Durante il funzionamento misto, la configurazione non deve essere trasferita dal sito centrale ai siti remoti che non hanno ancora ricevuto l'aggiornamento. Per questo motivo, ti consigliamo di evitare che la configurazione venga modificata per tutta la durata dell'operazione mista sul sito centrale tramite Setup > General > Read only mode. In teoria, questa operazione mista di Checkmk Enterprise come sito centrale e Checkmk Raw come sito remoto può durare tutto il tempo necessario.

La sequenza per l'aggiornamento è la seguente:

  1. Aggiornare il sito centrale a Checkmk Enterprise.

  2. Inserisci e invia i dati dell'abbonamento come descritto nell'articolo sulle licenze. I servizi forniti da tutti i siti remoti sono trattati allo stesso modo quando si calcola l'abbonamento, cioè durante il funzionamento misto, i servizi dei siti remoti Checkmk Raw sono già fatturati come Checkmk Enterprise.

  3. Aggiorna gradualmente i siti remoti.

  4. Se non hai disattivato il trasferimento della configurazione a livello globale, ma separatamente per ogni sito remoto, puoi riattivare il trasferimento della configurazione per ogni sito remoto che ha ricevuto l'aggiornamento.

  5. Nel monitoraggio distribuito senza configurazione distribuita, anche i siti remoti devono essere disponibili su licenza subito dopo l'aggiornamento.

Dopo aver aggiornato tutti i siti, puoi attivare le funzioni specifiche di Checkmk Enterprise.

Tip

Perché si consiglia di non sincronizzare la configurazione durante l'aggiornamento?

I siti remoti scartano le impostazioni con cui "non possono fare nulla". Questo non comporta alcuna interruzione, ma può creare problemi. Supponiamo che tu attivi un'impostazione specifica di Checkmk Enterprise - ad esempio i tempi di manutenzione programmata- prima che tutti i siti remoti abbiano ricevuto l'aggiornamento. In questo caso, i siti Checkmk Raw scartano l'impostazione, il che significa che non sarà disponibile nemmeno dopo l'aggiornamento. L'impostazione sarà disponibile solo quando sarà stata modificata nuovamente dopo l'aggiornamento.

Se è inevitabile non sincronizzare la configurazione durante l'aggiornamento, verifica la coerenza delle impostazioni specifiche di Checkmk Enterprise dopo l'aggiornamento completo.

Da Checkmk Enterprise a Checkmk Cloud (online)

Come già accennato, Checkmk consente solo il funzionamento misto di Checkmk Enterprise come sito centrale e Checkmk Raw o Checkmk Cloud come siti remoti. Per l'aggiornamento a Checkmk Cloud, ciò significa che il sito centrale riceve l'aggiornamento per ultimo. L'aggiornamento dell'intero ambiente deve essere completato entro 30 giorni. Durante il funzionamento misto, la configurazione può essere trasferita dal sito centrale ai siti remoti.

Questo comporta la seguente sequenza per l'aggiornamento:

  1. Aggiorna i siti remoti a Checkmk Cloud.Importante: un'operazione mista con Checkmk Enterprise come sito centrale è possibile solo nello stato della licenza "Prova" di 30 giorni. Non memorizzare ancora i dati dell'abbonamento a Checkmk Cloud!

  2. Archivia i dati dell'abbonamento a Checkmk Cloud nel sito centrale sotto l'istanza Checkmk Enterprise.

  3. Aggiorna il sito centrale a Checkmk Cloud.

  4. Nel monitoraggio distribuito senza configurazione distribuita, anche i siti remoti devono essere disponibili su licenza subito dopo l'aggiornamento.

Se vuoi aggiornare direttamente da Checkmk Raw a Checkmk Cloud, devi aggiornare il sito centrale a Checkmk Enterprise come passo intermedio: prima aggiorna il sito centrale da Checkmk Raw a Checkmk Enterprise, poi aggiorna i siti remoti direttamente da Checkmk Raw a Checkmk Cloud. Infine, aggiorna il sito centrale da Checkmk Enterprise a Checkmk Cloud.

7. Downgrade

Il downgrade è un'azione più complessa e quindi più lunga, poiché alcune funzioni potrebbero non funzionare nell'edizione di destinazione e dovranno essere disattivate manualmente e sostituite da un'alternativa forse meno efficiente o meno conveniente.

Il downgrade vero e proprio deve essere eseguito con il comando omd update, proprio come un aggiornamento o un upgrade. I dettagli sono riportati nella sezione Esecuzione dell'aggiornamento.

Se cerchi di effettuare il downgrade da Checkmk Cloud a Checkmk Enterprise, ad esempio, Checkmk verificherà se questa è la tua intenzione:

update downgrade ce se

Non appena confermi questa finestra di dialogo con yes, il downgrade inizia immediatamente. Di seguito troverai le informazioni necessarie per effettuare il downgrade.

I downgrade diversi da quelli descritti di seguito non sono previsti e non sono supportati da noi, ad esempio un downgrade di Checkmk MSP. In questo caso, ti consigliamo di iniziare con un'istanza Checkmk MSP nuova.

7.1. Downgrade da Checkmk Cloud a Checkmk Enterprise

Per preparare il downgrade da Checkmk Cloud a Checkmk Enterprise, devi apportare almeno le seguenti modifiche:

  • Imposta gli host che operano in modalità push in modalità pull. In caso contrario, Checkmk non riceverà i dati di monitoraggio da essi e gli host associati diventeranno generalmente in stallo.

  • Riconfigura i pacchetti dell'agente per le cartelle in modo da interrompere la registrazione automatica, quindi crea nuovamente i pacchetti dell'agente.

Inoltre, alcuni servizi cloud e dashboard non saranno più disponibili. Di conseguenza, dovrai ripulire i servizi scomparsi.

Se in Checkmk Cloud utilizzavi il plug-in di Grafana dal "Grafana Store", dovrai sostituirlo con uno installato dall'archivio zip.

Una panoramica delle differenze tra Checkmk Cloud e Checkmk Enterprise è fornita dall'articolo Checkmk Cloud.

7.2. Downgrade da Checkmk Enterprise a Checkmk Raw

Per preparare il downgrade da Checkmk Enterprise a Checkmk Raw, dovrai apportare almeno le seguenti modifiche:

  • Cambia il formato del database RRD con la regola Configuration of RRD databases of hosts in Multiple RRDs per host/service. Oltre a leggeri svantaggi in termini di prestazioni, va notato che la conversione dei dati esistenti non è inclusa, quindi i dati storici del monitoraggio non saranno più visibili.

  • Switch del nucleo di monitoraggio da CMC a Nagios: in primo luogo questo cambiamento potrebbe comportare svantaggi in termini di prestazioni.

Inoltre, alcune dashboard, le impostazioni dei grafici, i plug-in dell'agente e gli agenti speciali non sono più disponibili. Con l'articolo Checkmk Enterprise puoi determinare quante funzionalità di Checkmk Enterprise andranno perse in caso di downgrade a Checkmk Raw e dove è necessario apportare ulteriori modifiche.

7.3. Downgrade delle edizioni in ambienti distribuiti

Gli scenari di downgrade presentati nelle due sezioni precedenti possono essere eseguiti anche in ambienti distribuiti. Nota che negli ambienti distribuiti, l'aggiornamento della versione deve sempre essere eseguito per primo prima cosa prima che possa seguire il downgrade dell'edizione. Non è supportata una sequenza diversa o un crossgrade (aggiornamento della versione e downgrade dell'edizione in un'unica azione).

Non esiste uno scenario di downgrade in cui Checkmk supporta un'operazione mista tra edizioni diverse. Per questo motivo, ti consigliamo vivamente di eseguire il downgrade dell'edizione offline. Per farlo, procedi come segue:

  1. Arresta tutti i siti.

  2. Esegui il downgrade del sito centrale.

  3. Se lo desideri (e l'abbondanza di notifiche non è un problema), il sito centrale può essere riavviato immediatamente.

  4. Ora è il momento di eseguire il downgrade dei siti remoti. Puoi farlo in parallelo e riavviare i siti remoti subito dopo il loro downgrade.

Naturalmente, puoi aspettare che tutti i siti siano stati declassati prima di riavviarli, in modo da ridurre il numero di notifiche generate.

8. Disinstallazione di Checkmk

8.1. Panoramica

La disinstallazione delle versioni di Checkmk non più necessarie si effettua utilizzando il gestore di pacchetti del sistema operativo. Per farlo, inserisci il nome del pacchetto installato, non il nome del file RPM/DEB originale.
Importante: Elimina solo le versioni di Checkmk che non vengono più utilizzate da nessun sito!

Le istanze Checkmk che non sono più necessarie possono essere semplicemente rimosse con omd rm (cancellando così anche tutti i dati!):

root@linux# omd rm mysite

8.2. SLES, Red Hat Enterprise Linux, CentOS

Ecco come identificare i pacchetti Checkmk utilizzati nei sistemi basati su RPM:

root@linux# rpm -qa | grep check-mk
check-mk-enterprise-2.3.0p1-el9-38.x86_64.rpm
check-mk-raw-2.2.0p25-el9-38.x86_64.rpm
check-mk-raw-2.1.0p34-el8-38.x86_64.rpm

L'eliminazione viene eseguita con rpm -e:

root@linux# rpm -e check-mk-raw-2.1.0p34-el8-38.x86_64.rpm

8.3. Debian, Ubuntu

Utilizza la seguente procedura per identificare i pacchetti installati:

root@linux# dpkg -l | grep check-mk
ii  check-mk-enterprise-2.3.0p1  0.jammy  amd64  Checkmk - Best-in-class infrastructure & application monitoring
ii  check-mk-raw-2.2.0p25        0.jammy  amd64  Checkmk - Best-in-class infrastructure & application monitoring
ii  check-mk-raw-2.1.0p34        0.jammy  amd64  Checkmk - Best-in-class infrastructure & application monitoring

La disinstallazione viene eseguita con dpkg --purge:

root@linux# dpkg --purge check-mk-raw-2.1.0p34
(Reading database ... 567850 files and directories currently installed.)
Removing check-mk-raw-2.1.0p34 (0.jammy) ...
...

9. Diagnosi dei guasti

Se si verifica un errore durante l'aggiornamento di Checkmk, di solito è dovuto a una delle tre cause seguenti, già menzionate nei capitoli precedenti:

10. File e directory

I file e le directory rilevanti per questo articolo si trovano qui. Come sempre, i percorsi che non iniziano con / si applicano dopo la directory home del sito (/omd/sites/mysite).

Percorso del file Funzione

~/version

Collegamento simbolico all'installazione della versione di Checkmk utilizzata da questo sito.

/omd/versions

In questa directory esiste una sottodirectory per ogni versione di Checkmk installata. I file appartenenti a root non vengono mai modificati.

/omd/sites

In questa directory, per ogni sito c'è una directory home contenente i suoi file di configurazione e i dati delle variabili. Questi dati appartengono all'utente dell'istanza e possono essere modificati dalla configurazione e dagli operatori.

/usr/bin/omd

Comando di gestione per le istanze Checkmk. Si tratta di un collegamento simbolico alla directory bin della versione predefinita. Quando si accede a un determinato sito, il comando omd si sostituisce a quello della versione appropriata.

In questa pagina