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 è leggermente diverso rispetto alla maggior parte degli altri pacchetti software che conosci. Perché?
Il motivo è che Checkmk non solo permette di far girare più istanze indipendenti su un unico server, ma consente anche di effettuare l'installazione di più versioni del software contemporaneamente. Con questo sistema, ogni istanza viene assegnata a una versione installata del software. Per illustrare il concetto, prendiamo la seguente situazione su un server fittizio:

Qui l'istanza mysite1 utilizza la versione 2.4.0p3.cee, mentre le istanze mysite2 e mysite3 utilizzano la versione 2.4.0p1.cre.
Sebbene sia stata effettuata l'installazione della versione Checkmk 2.4.0p1.cce, 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 anche un passo aggiuntivo. Prendiamo come esempio la seguente situazione:

Qui l'istanza mysite deve essere aggiornata alla versione Checkmk 2.4.0p3.cee.
Il primo passo è effettuare lo scaricamento e l'installazione del pacchetto RPM/DEB appropriato.
Questo viene eseguito esattamente come per l'installazione iniziale.
All'inizio la versione appena installata non verrà utilizzata da nessuna istanza e apparirà così:

Il secondo passo sarà ora aggiornare l'istanza da 2.4.0p1.cre a 2.4.0p3.cee.
Questo si fa con il comando omd update, di cui parleremo in dettaglio qui sotto:

Dopo l'aggiornamento, la versione 2.4.0p1.cre, che (probabilmente) non serve più, può essere eliminata tramite la disinstallazione del pacchetto appropriato.
2. Prima dell'aggiornamento
Se hai intenzione di aggiornare Checkmk dalla versione 2.3.0 alla versione 2.4.0, dovresti prima leggere l'articolo Aggiornamento alla versione 2.4.0, in cui abbiamo raccolto le questioni più importanti da considerare prima e dopo tale aggiornamento.
Tuttavia, anche se hai già effettuato l'installazione della versione 2.4.0 e desideri aggiornare all'ultima versione patch 2.4.0p24, i temi descritti nelle sezioni seguenti potrebbero comunque essere rilevanti.
2.1. Aggiornamento a una versione principale superiore
Quando si esegue l'aggiornamento a una versione principale superiore, è necessario passare sempre alla versione principale successiva, senza saltare alcuna versione principale intermedia. Se desideri passare dalla 2.2.0 alla 2.4.0, esegui prima l'aggiornamento alla 2.3.0. Il motivo di questa procedura è semplice: a volte ci sono così tante modifiche tra due versioni principali che saltarne una causerebbe problemi. Utilizza sempre la versione patch più recente quando esegui l'aggiornamento.
Questo vale anche per la versione sorgente. Un aggiornamento dalla 2.2.0p1 alla 2.4.0p24 segue quindi questo percorso:
2.2.0p1 2.2.0p47 2.3.0p45 2.4.0p24
2.2. «Aggiornamento» a una versione precedente
Il comando omd update permette anche un "aggiornamento" a una versione precedente.
Questa procedura è pensata solo per i casi di regressione.
Dopo un aggiornamento in senso inverso, saranno necessarie molte modifiche per rendere nuovamente compatibili la configurazione e l'ambiente di esecuzione, specialmente, ma non solo, nel caso di un "aggiornamento" a una versione principale precedente. Sconsigliamo quindi vivamente questa procedura e non forniremo più assistenza in caso di aggiornamento a una versione precedente. |
2.3. MKP incompatibili e obsolete
Il tuo sistema di monitoraggio può essere esteso in modo abbastanza semplice e comodo utilizzando i pacchetti di estensione 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. D'altro canto, continuiamo ad aggiungere nuovi plug-in ed estensioni funzionali a Checkmk, motivo per cui gli MKP a volte diventano obsoleti. Le funzionalità di questi plug-in ed estensioni sono semplicemente fornite da Checkmk stesso come standard.
Per questo motivo, quando ti prepari per un aggiornamento, ti consigliamo vivamente di controllare tutti gli MKP installati. Questo eviterà che pacchetti incompatibili interferiscano con l'aggiornamento o che, dopo l'aggiornamento, si creino servizi duplicati o almeno molto simili.
Per farlo, confronta i tuoi MKP installati con il nostro catalogo dei plugin per i controlli e rimuovi tutti i pacchetti che contengono funzioni ora fornite nativamente da Checkmk.
Puoi anche cogliere l'occasione per rimuovere gli MKP che potrebbero essere stati installati solo per una prova.
Puoi trovare un elenco nel menu "Setup" alla voce "Maintenance > Extension packages".
Dalla riga di comando, puoi visualizzare le estensioni installate con il comando "mkp list".
Check l'output di questo comando per individuare le estensioni che non servono più o che non riesci nemmeno a identificare.
Checkmk supporta l'installazione di MKP per una versione più recente di quella attualmente in esecuzione, in preparazione di futuri aggiornamenti. Quando si esegue un aggiornamento, il pacchetto per la versione Checkmk precedente viene disabilitato e quello per la versione successiva viene abilitato. I dettagli sono spiegati nell'articolo sull'uso degli MKP.
Attenzione: se hai apportato modifiche locali a file che originariamente provenivano da MKP, ricompila l'MKP dopo aver aumentato il numero di versione. Durante un aggiornamento, i file che sono stati modificati in altro modo verranno sovrascritti da quelli contenuti nell'MKP.
2.4. File locali
I file locali ti consentono di personalizzare ed estendere le funzionalità fornite da Checkmk.
Questi file si trovano nella parte locale della struttura delle directory dell'istanza, ovvero in ~/local.
I file locali possono causare problemi durante l'aggiornamento, poiché potrebbero non corrispondere alla nuova versione di Checkmk.
Poiché Checkmk non è in grado di intercettare e handle le personalizzazioni locali e le estensioni di terze parti durante un aggiornamento, dovresti controllare la tua istanza Checkmk prima di un aggiornamento per verificare se e quali file locali stai utilizzando.
Ottieni una panoramica dei file locali della tua istanza Checkmk eseguendo il seguente comando come utente dell’istanza (dove l'opzione -L assicura che vengano seguiti anche i collegamenti simbolici):
In una nuova installazione di Checkmk, al momento vedrai elencato solo un file chiamato README.TXT.
Qualsiasi cosa oltre a questo dovrebbe essere in cima alla tua lista di risoluzione dei problemi nel caso in cui avessi difficoltà con l'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 estensione di Checkmk.
Una volta impacchettata, ogni estensione può essere disattivata o riattivata come elemento completo.
2.5. Backup e prova
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 tua cronologia di monitoraggio in caso di errore durante l'aggiornamento.
Ciò che è rilevante a questo punto è che un backup regolare può anche tornarti utile per eseguire prove di un aggiornamento in sospeso.
Questa pratica ti consente di effettuare il ripristino del backup con un nome alternativo e quindi utilizzare l'istanza newsite per testare l'aggiornamento prima che venga pubblicato:
In alternativa puoi anche copiare la tua istanza tramite omd cp.
Per farlo, però, è necessario arrestare l'istanza live per un breve periodo:
Esegui quindi l'aggiornamento prima su questa nuova istanza clonata, ad esempio per verificare che le modifiche locali sopra menzionate siano state apportate nel nuovo ambiente. Se i test con l'istanza clonata hanno avuto esito positivo, di solito è consigliabile eliminarla o almeno arrestarla prima dell'aggiornamento effettivo dell'istanza di produzione per motivi di spazio e performance.
Poiché Checkmk 2.3.0 , se un aggiornamento fallisce, verrà effettuato il ripristino dello stato di configurazione precedente all'aggiornamento.
Un aggiornamento può fallire a causa di un errore interno imprevisto, ma anche a causa di un intervento dell'utente durante il processo di aggiornamento, ad esempio selezionando l'opzione di menu |
3. Aggiornamento di Checkmk
3.1. Installazione delle nuove versioni
Come descritto nell'introduzione, il primo passo per un aggiornamento è l'installazione della nuova versione desiderata di Checkmk. Questo si ottiene esattamente allo stesso modo dell'installazione iniziale — tuttavia, procederà un po' più rapidamente poiché la maggior parte dei pacchetti richiesti è già stata installata. Nell'esempio seguente installiamo un pacchetto per Ubuntu 24.04 (Noble Numbat):
Nota: durante l'installazione di un pacchetto locale tramite apt install, devi specificare il percorso di download del file .deb.
Puoi visualizzare in qualsiasi momento un elenco delle versioni di Checkmk installate con il comando omd versions:
Una delle versioni elencate è contrassegnata con (default).
Questa versione predefinita verrà utilizzata automaticamente durante la creazione di nuove istanze, a meno che non venga specificata un'altra versione con omd -V myversion create ....
La versione predefinita attuale può essere interrogata con omd version e può essere modificata con omd setversion:
La versione predefinita non ha alcun ruolo nella gestione delle istanze esistenti.
Il comando omd inizia sempre con la versione appropriata all'istanza per cui viene chiamato il comando.
Il comando omd sites fornisce un elenco delle istanze attuali e delle versioni che utilizzano:
3.2. Eseguire l'aggiornamento
Una volta completata l’installazione della nuova versione desiderata, è possibile aggiornare il sito.
Per farlo non sono necessari permessi di tipo `root`.
Il modo migliore per farlo è come utente dell’istanza:
Assicurati che l'istanza sia stata arrestata:
L'aggiornamento — che in pratica significa switchare a una versione diversa — ora può essere eseguito semplicemente con il comando omd update:
Se è disponibile più di una versione di destinazione, si aprirà un elenco di selezione:
┌─────────Choose target version────────────┐ │ Please choose the version this site │ │ should be updated to │ │ ┌──────────────────────────────────────┐ │ │ │ 2.4.0p1.cre Version 2.4.0p1.cre │ │ │ │ 2.4.0p1.cee Version 2.4.0p1.cee │ │ │ │ │ │ │ │ │ │ │ └──────────────────────────────────────┘ │ ├──────────────────────────────────────────┤ │ <Update now> < Cancel > │ └──────────────────────────────────────────┘
Nella box di dialogo seguente, conferma l'aggiornamento selezionato alla nuova versione:
┌──────────────────────────────────────────────────┐ │ You are going to update the site mysite from │ │ version 2.3.0p32.cre to version 2.4.0p1.cre. │ │ This will include updating all of your │ │ configuration files and merging changes in the │ │ default files with changes made by you. In case │ │ of conflicts your help will be needed. │ ├──────────────────────────────────────────────────┤ │ <Update!> < Abort > │ └──────────────────────────────────────────────────┘
Per sicurezza, quando esegui un upgrade da una versione della Comunità Checkmk a una delle edizioni commerciali contemporaneamente all'aggiornamento della versione, ti verrà ricordato nuovamente questo fatto:
┌───────────────────────────┐ │ You are updating from │ │ Community to Pro. Is this │ │ intended? │ ├───────────────────────────┤ │ < yes > < no > │ └───────────────────────────┘
Una parte importante dell'aggiornamento è l'aggiornamento dei file di configurazione forniti in origine. In questo caso, le modifiche che l'utente potrebbe aver apportato a questi file non verranno semplicemente ignorate, ma verranno invece unite. Questo funziona in modo molto simile ai sistemi di controllo delle versioni che cercano di unire le modifiche apportate a un singolo file contemporaneamente da più sviluppatori.
Occasionalmente — quando le modifiche interessano la stessa posizione nel file — ciò non funziona e si verifica un conflitto. Come risolvere tali conflitti verrà spiegato più avanti.
L'aggiornamento fornisce un elenco di tutti i file e le directory modificati (abbreviato nell'esempio seguente):
2025-05-19 13:47:54 - Updating site 'mysite' from version 2.3.0p45.cre to 2.4.0p24.cre...
* Updated .profile
* Installed dir var/check_mk/packages_local
...
Installed default file of version 2.4.0p24.cre.
* Installed link etc/rc.d/60-ui-job-scheduler
* Installed link etc/rc.d/85-rabbitmq
...
Creating temporary filesystem /omd/sites/mysite/tmp...OK
Executing 'cmk-update-config --conflict ask --dry-run'
-| 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/08 Legacy check plug-ins...
-| 02/08 Rulesets...
...
-| 07/08 Invalid hosts labels...
-| 08/08 Deprecated .mk configuration of plugins...
-| Done (success)
-|
Completed verifying site configuration. Your site now has version 2.4.0p24.cre.
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/08 Legacy check plug-ins...
-| 02/08 Rulesets...
...
-| 29/30 Validating configuration files...
-| 30/30 Update core config...
-| Generating configuration for core (type nagios)...
-| Precompiling host checks...OK
-| Done (success)
OK
Finished update.Se viene visualizzata la riga Completed verifying site configuration evidenziata nell'output sopra, l'istanza è stata switchata alla nuova versione:
… e poi puoi iniziare:
3.3. Modifiche incompatibili
Lo sviluppo del software consiste ovviamente in modifiche. Poiché lavoriamo sempre attivamente per mantenere Checkmk al passo con i tempi, a volte è inevitabile eliminare il superfluo e apportare modifiche che si rivelano incompatibili. Ciò significa che durante l'aggiornamento potrebbe essere necessario adattare la tua configurazione, o almeno controllarla.
Un tipico esempio di una situazione del genere è dato dai nuovi plug-in di controllo che sostituiscono quelli esistenti. Se utilizzi uno dei plug-in interessati, sarà necessaria una nuova scoperta del servizio sull'host interessato.
Una panoramica di tutte le modifiche in Checkmk, inclusa una funzione di ricerca, è disponibile online nel nostro Werks.
Ancora più pratica, però, è la funzione di ricerca integrata in Checkmk. Dopo aver effettuato l'accesso all'istanza, troverai un link evidenziato in rosso nella parte superiore del menu "Help" con il numero di modifiche incompatibili e non ancora confermate:

Checkmk ha traccia delle modifiche incompatibili avvenute durante l'aggiornamento alla versione attuale e ti chiede di esaminarle e poi dare la conferma:

Se apri questa pagina tramite il link rosso nel menu "Help", vedrai solo i "Werk" (cioè le modifiche) per i quali è necessario intervenire e che sono quindi contrassegnati con "Incompatible - TODO". Puoi richiamare ogni Werk singolarmente, effettuare la visualizzazione, confermarlo con un clic del mouse — e ridurre così progressivamente il numero di modifiche incompatibili in sospeso. Inoltre, la voce di menu "Help > Change log (works)" ti dà accesso alla cronologia completa delle modifiche nella versione principale attuale.
3.4. L'aggiornamento in dettaglio
Sei curioso di sapere cosa succede esattamente "dietro le quinte" di un aggiornamento?
Oppure sono comparsi conflitti di dati durante l'esecuzione di "omd update"?
In tal caso, ecco qualche approfondimento.
Durante l'esecuzione di omd update vengono eseguite tre azioni:
L'aggiornamento dei file predefiniti in
~/etc/e~/var/– ovvero i file creati daomd create.Il passaggio dalla versione attiva alla versione di destinazione modificando il collegamento simbolico
versionche si trova nella directory dell'istanza.Post-elaborazione tramite vari pacchetti (ad es. Checkmk). In particolare, verrà eseguita automaticamente un'operazione per attivare le modifiche per generare una configurazione valida per il core.
Aggiornamento dei file, unione delle modifiche
Il primo passo è di gran lunga il più completo. Qui Checkmk dimostra un grande vantaggio rispetto alla tipica installazione di software: Checkmk ti aiuta ad adattare tutti i file di configurazione standard ai prerequisiti della nuova versione. Questo assomiglia alla procedura di aggiornamento di una distribuzione Linux, ma va oltre nell'implementazione. Checkmk è in grado di gestire una molteplicità di situazioni, ad esempio:
Unire le modifiche ai file apportate dall'aggiornamento con eventuali modifiche effettuate localmente dall'utente.
File, directory e collegamenti simbolici che sono obsoleti nella nuova versione o che sono stati eliminati dall'utente.
Modifiche ai permessi.
Modifiche al tipo di file (un collegamento simbolico derivato da un file o da una directory, o viceversa).
Modifiche alla destinazione di un collegamento simbolico.
Checkmk garantisce sempre che le tue modifiche locali vengano mantenute e che tutte le modifiche richieste dalla nuova versione vengano implementate contemporaneamente.
Unire e conflitti
Se la nuova versione richiede la modifica di un file di configurazione su cui anche l'utente ha apportato modifiche, Checkmk tenta automaticamente di unire entrambe le serie di modifiche. Ciò avviene utilizzando gli stessi metodi impiegati dai sistemi di controllo delle versioni.
Si riscontrano meno problemi quando le modifiche dell’utente e quelle di Checkmk presentano una chiara separazione fisica nel testo (almeno a distanza di alcune righe). Si uniranno quindi automaticamente, senza bisogno dell’intervento dell’utente.
Se due modifiche "entrano in conflitto" perché interessano entrambe la stessa posizione nei dati, Checkmk non può e non deciderà quale delle due modifiche sia più importante. In una situazione del genere riceverai una notifica come utente e potrai risolvere il conflitto in modo interattivo:
Conflicts in etc/mk-livestatus/nagios.cfg! I've tried to merge the changes from version 2.3.0p32.cre to 2.4.0p1.cre into etc/mk-livestatus/nagios.cfg. Unfortunately there are conflicts with your changes. You have the following options: diff Show differences between the new default and your version you Show your changes compared with the old default version new Show what has changed from 2.3.0p32.cre to 2.4.0p1.cre edit Edit half-merged file (watch out for >>>>> and <<<<<) try again Edit your original file and try again keep Keep half-merged version of the file restore Restore your original version of the file install Install the new default version shell Open a shell for looking around abort Stop here and abort update!
Nella situazione mostrata sopra, ora hai le seguenti opzioni:
d |
Questo mostra le differenze tra la nuova versione predefinita e la tua versione del file sotto forma di "unified diff" ( |
y |
È simile a quanto sopra, ma, basandosi sulla versione predefinita precedente, mostra quali modifiche hai apportato al file. |
n |
Questa terza opzione, in pratica, "chiude il triangolo" mostrando le modifiche che Checkmk intende apportare al file. |
e |
Risolvi 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 eventuali conflitti. Una volta chiuso l'editor, Checkmk riproverà a unire i file. |
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 versione precedente del tuo file e rinunciare all'aggiornamento di Checkmk per questo file. Eventuali personalizzazioni necessarie dovranno essere eseguite manualmente. |
i |
Esecuzione dell'installazione della nuova versione predefinita del file: le modifiche apportate al vecchio file andranno perse. |
s |
Se sei indeciso, 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 |
Interrompi l'aggiornamento. L'istanza mantiene la vecchia versione e viene effettuato il ripristino della configurazione precedente. Puoi avviare un nuovo tentativo di aggiornamento in qualsiasi momento. |
Altre situazioni di conflitto
Oltre all'unione dei contenuti dei file, c'è tutta una serie di altre situazioni in cui Checkmk richiede la tua decisione. 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 un aggiornamento o di aprire una shell. Esempi di tali situazioni "difficili" sono:
modifiche in conflitto ai tipi di file (ad es. quando un file viene sostituito da un collegamento simbolico)
modifiche in conflitto ai permessi dei file
file modificati che non sono richiesti dalla nuova versione del software
file, directory o collegamenti creati da un utente, che sono in conflitto con i file/directory/collegamenti della nuova versione
Spiegazione dell'output durante un aggiornamento
La procedura di aggiornamento visualizzerà sempre una riga di spiegazione quando apporta automaticamente una modifica a un file. Sono possibili le seguenti situazioni – qui si fa riferimento ai file, ma ciò vale analogamente anche per i collegamenti e le directory:
Aggiornato |
Un file è stato modificato con la nuova versione. Dato che non hai apportato modifiche al file, Checkmk effettua semplicemente l'installazione della 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. |
Nuovo identico |
La nuova versione include un file di cui l'utente ha già effettuato l'installazione. |
Obsoleto |
La nuova versione ha reso obsoleto un file (vale anche per un collegamento o una directory). L'utente lo ha comunque già eliminato. Nessuna azione. |
Scomparso |
Un altro file è obsoleto nel nuovo Checkmk e l'utente non ha né cancellato né modificato la versione esistente. Checkmk cancella automaticamente questo file. |
Non desiderato |
L'utente ha cancellato un file che normalmente è presente. Poiché la versione nel nuovo Checkmk non presenta modifiche rispetto all'ultima versione del file, Checkmk consente 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 registra una notifica di questa azione per l'utente. |
Permessi |
Checkmk ha aggiornato i permessi di un file perché nella nuova versione sono impostati permessi diversi. |
3.5. Aggiornamento senza interazione dell'utente
Vuoi automatizzare gli aggiornamenti software di Checkmk?
All'inizio potresti avere difficoltà con le risposte interattive di omd update.
C'è una soluzione semplice per questo scenario.
Il comando ha delle opzioni pensate appositamente per l'uso negli script:
Le opzioni
-fo--forcesubito dopoomddisattivano tutti i tipi di domande del tipo "Sei sicuro...?".L'opzione
--conflict=subito dopoupdatedetermina il comportamento desiderato in caso di conflitto tra file.
I valori possibili per --conflict= sono:
|
In caso di conflitto, viene mantenuta la versione modificata del file dall'utente. È tuttavia possibile che Checkmk non sia eseguibile e che sia necessaria una correzione manuale. |
|
In caso di evento, verrà effettuata l'installazione della nuova versione standard del file. In questo modo, le modifiche locali al file andranno almeno in parte perse. |
|
In caso di evento di conflitto, l'aggiornamento viene eliminato e viene effettuato il ripristino della configurazione precedente della vecchia versione, |
|
Questa è la procedura standard, quindi in questo modulo l'opzione è in realtà superflua. |
Di seguito trovi un esempio del comando completo per un aggiornamento automatico alla versione 2.4.0p24.cre di mysite:
Grazie all'&& prima di omd start, il riavvio dell'istanza verrà impedito se l'omd update viene interrotto da un errore.
Sostituisci && con un punto e virgola (;) se vuoi che il riavvio venga tentato anche in una situazione del genere.
Se sei certo che sul server sia in esecuzione una sola istanza Checkmk, il nome da utilizzare in un shell script può essere semplicemente inserito in una variabile:
Questo permette alla riga sopra di essere indipendente dal nome dell’istanza. Ad esempio, un piccolo shell script potrebbe essere simile a questo:
4. Aggiornamento in ambienti distribuiti
Esistono due diverse procedure per eseguire l'aggiornamento di tutte le istanze incluse in un monitoraggio distribuito, ovvero l'istanza centrale e tutte le istanze remote da essa controllate.
Importante: Qualunque approccio tu scelga, come primo passo dovresti creare dei backup di tutte le istanze nell'ambiente.
La procedura preferibile e più sicura è quella di eseguire l'aggiornamento in un'unica operazione, seguendo questi passaggi:
Per prima cosa, ferma tutte le istanze
Quindi esegui l'aggiornamento per tutte le istanze
Riavvia le istanze aggiornate
Se ciò non è possibile — ad esempio perché l'ambiente è distribuito su più istanze, fusi orari e con team di supporto diversi — è possibile implementare un funzionamento misto temporaneo a condizioni rigorose. Le versioni non possono differire di più di una versione per gli aggiornamenti principali e si presuppone sempre un livello di patch specifico per la versione attuale (esistente).
È essenziale seguire esattamente questa sequenza: prima aggiorna tutte le istanze remote e solo dopo aggiorna l'istanza centrale. Questo garantisce che in nessun momento una configurazione creata da una versione più recente di Checkmk finisca in una versione precedente di Checkmk.
La tabella seguente mostra le combinazioni possibili quando si aggiorna dalla 2.3.0 alla 2.4.0:
| Istanza centrale | Istanza remota | Consentito? | Note |
|---|---|---|---|
2.3.0 |
2.3.0 |
Sì |
Indica prima di aggiornare tutte le istanze. |
2.3.0 |
2.4.0 |
Sì |
Durante l'aggiornamento sono previste lievi perdite di funzionalità, quindi opera in ambiente misto solo per un breve periodo di tempo. Non c'è alcun pericolo per i dati e la configurazione. |
2.4.0 |
2.3.0 |
No |
Attenzione: con un Setup centralizzato, in questa situazione c'è il rischio di danneggiare irreparabilmente le istanze remote. Evita questa condizione a tutti i costi! |
2.4.0 |
2.4.0 |
Sì |
Stato dopo l'aggiornamento di tutte le istanze. |
4.1. Contesto tecnico
Il motivo tecnico dell'approccio di aggiornamento descritto sopra risiede nei protocolli utilizzati: L'istanza centrale accede ai dati sulle istanze remote principalmente tramite lettura tramite Livestatus e, nel caso di un Setup centrale, con accesso in scrittura aggiuntivo tramite un'API HTTP non pubblica. In entrambe le situazioni, le nuove versioni introducono veri e propri superset dei protocolli utilizzati. Pertanto, un'istanza centrale più vecchia utilizza solo un vero sottoinsieme delle funzionalità delle istanze remote più recenti. Se l'istanza centrale venisse aggiornata per prima, potrebbe inviare chiamate API o richieste Livestatus alle istanze remote che queste ultime non sono ancora in grado di "comprendere".
La differenza massima di una versione principale deriva ancora una volta dal fatto che la rimozione delle interfacce è accompagnata da un periodo di grazia di esattamente una versione.
4.2. Pacchetti di estensione da utilizzare in un Setup centrale
Per facilitare questi aggiornamenti graduali, Checkmk offre la possibilità di memorizzare pacchetti di estensione con lo stesso nome in versioni diverse — ad esempio, una che corrisponde all'istanza centrale più vecchia e una che corrisponde alle istanze remote più recenti. Per ogni istanza verrà attivata la versione appropriata. I dettagli sono descritti nell'articolo sui pacchetti di estensione (MKP).
4.3. Livestatus a cascata
Con l'estensione delle istanze-viewer, queste possono essere aggiornate solo dopo le istanze remote di cui visualizzano i dati. Se un'istanza-viewer mostra solo i dati delle istanze remote, può essere aggiornata non appena queste vengono aggiornate. Se, invece, mostra anche i dati dell'istanza centrale, l'aggiornamento dell'istanza-viewer può avvenire solo per ultimo.
5. Aggiornamento di un Docker container
L'aggiornamento di un'istanza Checkmk nel Docker container è molto semplice. Ecco gli unici requisiti:
Il container non viene eliminato quando viene arrestato, ovvero non è stata utilizzata l'opzione
--rmall'avvio.Conosci l'ID del volume del container. Normalmente dovresti aver assegnato un ID univoco al suo spazio di archiviazione quando hai avviato il container. Se non sei sicuro dell'ID del tuo volume, puoi recuperare le informazioni sul container denominato
myContainercon il comandodocker 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 passaggi:
Arresta il container. Se il container Checkmk si chiama
myContainer, il comando sarà:docker stop myContainer.Rimuovi il container. Il comando è:
docker rm myContainer.Avvia un nuovo container con il comando
docker container runcon la versione desiderata e monta il volume noto. Se il tuo volume si chiamamyVolume, l'opzione corrispondente è-v myVolume:/omd/sites. Tutte le opzioni del comando sono disponibili nella guida all'installazione di Checkmk in Docker.
Checkmk si occuperà automaticamente del resto, aggiornando e avviando la tua istanza Checkmk. Dopodiché potrai effettuare l'accesso come al solito.
6. Aggiornamenti
Gli aggiornamenti da una versione della Comunità Checkmk
a una delle edizioni commerciali o da una delle edizioni commerciali a un'altra con maggiori funzionalità sono semplici e possono essere effettuati in qualsiasi momento.
La procedura è sostanzialmente sempre la stessa:
Installa il pacchetto desiderato e switcha le istanze interessate tramite omd update.
Se esegui l'aggiornamento a una delle edizioni commerciali, devi attivare la licenza dopo l'aggiornamento.
Quando si esegue l'aggiornamento da una versione commerciale a una con una gamma di funzioni più ampia, la licenza deve sempre essere reinserita dopo l'aggiornamento. Questo vale anche nei casi in cui il tuo referente commerciale ti abbia assicurato che, a seguito di un aggiornamento della licenza, puoi già utilizzare il tuo ambiente Checkmk "inferiore" con la licenza "superiore": Durante l'aggiornamento, lo stato della licenza viene azzerato (la cronologia viene mantenuta), quindi la licenza deve essere inserita nuovamente.
6.1. Aggiornamento della Comunità Checkmk a una delle edizioni commerciali
Questo capitolo tratta principalmente l'aggiornamento a Checkmk Pro dall'
.
Puoi anche passare a Checkmk Ultimate in un unico passaggio, ma in questo caso fai riferimento anche alle note nella sezione seguente.
Poiché le edizioni commerciali dispongono di numerosi moduli e funzionalità aggiuntivi, ci sono alcuni aspetti da tenere a mente dopo qualsiasi aggiornamento. Il punto cruciale è che quando si creano nuove istanze in Comunità Checkmk o in una delle edizioni commerciali, vengono impostate diverse impostazioni predefinite.
Nagios vs. CMC
Poiché la Comunità Checkmk supporta solo Nagios come core, questa è l'impostazione predefinita per le istanze create con la Comunità Checkmk.
Questa configurazione verrà mantenuta durante l'aggiornamento a Checkmk Pro.
Ciò significa che dopo un aggiornamento continuerai inizialmente a utilizzare Nagios come core.
La migrazione al CMC viene effettuata tramite omd config ed è descritta in un articolo dedicato: Migrazione al CMC.
Il formato RRD
Le edizioni commerciali supportano un formato alternativo per l'archiviazione dei dati storici di misurazione, che genera un I/O su disco significativamente inferiore. Questo formato è preimpostato automaticamente per le nuove istanze delle edizioni commerciali. Anche in questo caso, le istanze della Comunità Checkmk non vengono convertite automaticamente durante un aggiornamento. Come cambiare i formati dei dati è descritto in una sezione separata nell'articolo sui valori misurati e la creazione di grafici.
Altre differenze
Per sfruttare appieno Checkmk Pro, consulta la panoramica delle differenze tra Comunità Checkmk e Checkmk Pro.
6.2. Aggiornamento da Checkmk Pro a Checkmk Ultimate
Per quanto riguarda il nucleo di monitoraggio e il sistema di notifica, non ci sono differenze tra Checkmk Pro e Checkmk Ultimate. A seconda dell'obiettivo del deployment, spesso utilizzerai il set di funzionalità più ampio solo quando aggiungi nuovi host. In alcuni casi, tuttavia, è comunque consigliabile rivedere le impostazioni esistenti.
Per una panoramica completa delle funzionalità aggiuntive, consulta l'articolo su Checkmk Ultimate.
Controlla i plug-in per i servizi cloud
Quando monitori Amazon Web Services (AWS), Microsoft Azure o Google Cloud Platform (GCP), i servizi negli host esistenti riservati a Checkmk Ultimate 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 ora saranno disponibili.
Agent Controller in modalità push
Grazie alla possibilità di monitorare direttamente gli host che possono raggiungere il server Checkmk ma non sono accessibili da esso, in molti casi non è più necessario ricorrere a soluzioni interne con programmi di origine dati. Puoi switchare questi host alla 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 sempre essere eseguito prima che possa seguire l'aggiornamento dell'edizione. Una sequenza diversa o un crossgrade (aggiornamento della versione e dell'edizione in un'unica azione) non è supportato. Come procedura generale, consigliamo l'aggiornamento offline, in cui puoi passare da qualsiasi edizione inferiore a qualsiasi edizione superiore.
Per due scenari di aggiornamento richiesti frequentemente (da Comunità Checkmk a Checkmk Pro e da Checkmk Pro a Checkmk Ultimate), è possibile un'operazione mista per un periodo di tempo limitato.
Aggiornamento offline (tutte le combinazioni)
Poiché la combinazione di edizioni è possibile solo in poche combinazioni, in genere consigliamo di effettuare l'aggiornamento dell'edizione offline. Per farlo, procedi come segue:
Arresta tutte le istanze.
Esegui l'aggiornamento dell'istanza centrale.
Se lo desideri (e l'abbondanza di notifiche non è un problema), l'istanza centrale può essere riavviata immediatamente.
Ora è il momento di aggiornare le istanze remote. Puoi farlo in parallelo e riavviare le istanze remote subito dopo l'aggiornamento.
Naturalmente, puoi aspettare che tutte le istanze siano state aggiornate prima di riavviarle, il che ridurrà in parte il numero di notifiche generate.
Comunità Checkmk a Checkmk Pro (online)
Checkmk consente solo il funzionamento misto di Checkmk Pro come istanza centrale con Comunità Checkmk o Checkmk Ultimate come istanze remote. Per l'aggiornamento a Checkmk Pro, ciò significa che l'istanza centrale riceve l'aggiornamento per primo. Durante il funzionamento misto, la configurazione non dovrebbe essere trasferita dall'istanza centrale alle istanze remote che non hanno ancora ricevuto l'aggiornamento. Ti consigliamo quindi di impedire che la configurazione venga modificata per tutta la durata del funzionamento misto sull'istanza centrale tramite Setup > General > Read only mode. In teoria, questo funzionamento misto di Checkmk Pro come istanza centrale con la Comunità Checkmk come istanza remota può durare tutto il tempo necessario.
Ne risulta la seguente sequenza per l'aggiornamento:
Esegui l'aggiornamento dell'istanza centrale a Checkmk Pro.
Inserisci e invia i dati dell'abbonamento come descritto nell'articolo sulle licenze. I servizi forniti da tutte le istanze remote vengono trattati allo stesso modo nel calcolo dell'abbonamento, cioè durante il funzionamento misto, i servizi delle istanze remote della Comunità Checkmk vengono già fatturati come Checkmk Pro.
Esegui gradualmente l'aggiornamento delle istanze remote.
Se non hai disattivato il trasferimento della configurazione a livello globale, ma separatamente per ogni istanza remota, puoi riattivare il trasferimento della configurazione per ogni istanza remota che ha ricevuto l'aggiornamento.
Nel monitoraggio distribuito senza configurazione centrale, anche le istanze remote devono essere concesse in licenza immediatamente dopo l'aggiornamento.
Dopo aver aggiornato tutte le istanze, puoi attivare le funzionalità specifiche di Checkmk Pro.
|
Perché consigliamo di non sincronizzare la configurazione durante l'aggiornamento? Le istanze remote in realtà ignorano le impostazioni che "non possono utilizzare". Questo non causa alcun danno, ma può creare confusione. Supponiamo che tu attivi un'impostazione specifica di Checkmk Pro — ad esempio, le tempistiche di manutenzione programmata — prima che tutte le istanze remote abbiano ricevuto l'aggiornamento. In questo caso, le istanze della Comunità Checkmk scarteranno l'impostazione, il che significa che non sarà disponibile nemmeno dopo l'aggiornamento. L'impostazione sarà disponibile solo dopo essere stata modificata nuovamente dopo l'aggiornamento. Se è inevitabile non sincronizzare la configurazione durante l'aggiornamento, controlla la coerenza delle impostazioni specifiche di Checkmk Pro dopo il completamento dell'aggiornamento. |
Da Checkmk Pro a Checkmk Ultimate (online)
Come già accennato, Checkmk consente solo il funzionamento misto di Checkmk Pro come istanza centrale con la Comunità Checkmk o Checkmk Ultimate come istanze remote. Per l'aggiornamento a Checkmk Ultimate, ciò significa che l'istanza 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 dall'istanza centrale alle istanze remote.
Ne risulta la seguente sequenza per l'aggiornamento:
Esegui l'aggiornamento delle istanze remote a Checkmk Ultimate. Importante: un funzionamento misto con Checkmk Pro come istanza centrale è possibile solo nello stato della licenza "Trial" di 30 giorni. Non salvare ancora i dati dell'abbonamento a Checkmk Ultimate!
Salva i dati dell'abbonamento a Checkmk Ultimate nell'istanza centrale sotto Checkmk Pro.
Esegui l'aggiornamento dell'istanza centrale a Checkmk Ultimate.
Nel monitoraggio distribuito senza Setup centrale, anche le istanze remote devono ora essere concesse in licenza immediatamente dopo l'aggiornamento.
Se desideri effettuare l'aggiornamento direttamente dalla Comunità Checkmk a Checkmk Ultimate, devi prima aggiornare l'istanza centrale a Checkmk Pro come fase intermedia: Aggiorna prima l'istanza centrale dalla Comunità Checkmk a Checkmk Pro, seguito dall'aggiornamento delle istanze remote direttamente dalla Comunità Checkmk a Checkmk Ultimate. Infine, aggiorna l'istanza centrale da Checkmk Pro a Checkmk Ultimate.
7. Passaggi a versioni precedenti
È possibile anche effettuare il downgrade tra diverse edizioni. Il downgrade è un'operazione più complessa e quindi più dispendiosa in termini di tempo, poiché alcune funzionalità potrebbero non funzionare nell'edizione di destinazione e dovranno essere disattivate manualmente e sostituite da un'alternativa potenzialmente meno efficiente o meno comoda.
Il downgrade vero e proprio deve essere eseguito con il comando omd update, proprio come un aggiornamento o un upgrade.
I dettagli sono disponibili nella sezione Eseguire l'aggiornamento.
Se provi a effettuare un downgrade da Checkmk Ultimate a Checkmk Pro, ad esempio, Checkmk verificherà se questa è effettivamente la tua intenzione:
┌─────────────────────────────┐ │ You are updating from │ │ Ultimate to Pro. Is this │ │ intended? │ ├─────────────────────────────┤ │ < yes > < no > │ └─────────────────────────────┘
Non appena confermi questo dialogo con yes, il downgrade inizia immediatamente. Scopri qui sotto cosa devi fare prima di questo downgrade.
I downgrade diversi da quelli descritti di seguito non sono previsti e non sono supportati da noi, ad esempio un downgrade di Checkmk Ultimate con Multi-Tenancy. In tal caso, ti consigliamo invece di iniziare con una nuova istanza.
7.1. Downgrade da Checkmk Ultimate a Checkmk Pro
In preparazione al downgrade da Checkmk Ultimate a Checkmk Pro, devi apportare almeno le seguenti modifiche:
Imposta gli host che operano in modalità push in modalità pull. Altrimenti Checkmk non riceverà i dati di monitoraggio da essi e gli host associati diventeranno solitamente in stallo.
Riconfigura i pacchetti degli agenti per le cartelle per interrompere la registrazione automatica. Quindi ricompila i pacchetti degli agenti.
Inoltre, alcuni servizi cloud e dashboard non saranno più disponibili. Di conseguenza, dovrai ripulire i servizi scomparsi.
Se con Checkmk Ultimate utilizzavi il plug-in Grafana dal "Grafana Store", dovrai sostituirlo con uno installato dall'archivio zip.
Una panoramica delle differenze tra Checkmk Ultimate e Checkmk Pro è fornita dall'articolo su Checkmk Ultimate.
7.2. Downgrade da Checkmk Pro a Comunità Checkmk
Per prepararti al downgrade da Checkmk Pro a Comunità Checkmk, 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 lievi svantaggi in termini di performance, va notato che la conversione dei dati esistenti non è inclusa, quindi i dati storici di monitoraggio non saranno più visibili.
Passa dal nucleo di monitoraggio CMC a Nagios — in primo luogo, questa modifica comporterà probabilmente un calo delle prestazioni.
Inoltre, alcune dashboard, impostazioni dei grafici, plug-in di notifica e special agents non saranno più disponibili. Con l'articolo su Checkmk Pro puoi determinare quante funzionalità di Checkmk Pro andranno perse in caso di downgrade a Comunità Checkmk e dove potrebbe essere 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. Tieni presente che negli ambienti distribuiti, l’aggiornamento della versione deve sempre essere eseguito prima che possa seguire il downgrade dell’edizione. Una sequenza diversa o un crossgrade (aggiornamento della versione e downgrade dell’edizione in un’unica operazione) non è supportato.
Non esiste uno scenario di downgrade in cui Checkmk supporti un'operazione mista tra edizioni diverse. Per questo motivo, ti consigliamo vivamente di eseguire il downgrade dell'edizione offline. Per farlo, procedi come segue:
Arresta tutte le istanze.
Esegui il downgrade dell'istanza centrale.
Se lo desideri (e l'abbondanza di notifiche non è un problema), l'istanza centrale può essere riavviata immediatamente.
Ora è il momento di eseguire il downgrade delle istanze remote. Puoi farlo in parallelo e riavviare le istanze remote subito dopo il loro downgrade.
Naturalmente, puoi aspettare che tutte le istanze siano state sottoposte al downgrade prima di riavviarle, il che ridurrà in parte il numero di notifiche generate.
8. Disinstallazione di Checkmk
8.1. Panoramica
La disinstallazione delle versioni di Checkmk non più necessarie viene eseguita 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 nessuna istanza!
Le istanze Checkmk che non servono più possono essere semplicemente rimesse con omd rm (cancellando così anche tutti i dati!):
8.2. Debian, Ubuntu
Usa quanto segue per identificare quali pacchetti sono stati installati:
La disinstallazione viene eseguita con dpkg --purge:
8.3. SLES, Red Hat Enterprise Linux, CentOS
Ecco come identificare quali pacchetti Checkmk vengono utilizzati nei sistemi basati su RPM:
L'eliminazione viene eseguita con rpm -e:
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:
Non è stata eseguita la performance dell'intervento manuale richiesto da una modifica incompatibile.
Hai effettuato l'installazione di un pacchetto di estensioni (MKP) incompatibile.
Ci sono script incompatibili nei file locali della struttura delle directory dell'istanza.
10. File e directory
I file e le directory relativi a questo articolo sono disponibili qui.
Come sempre, i percorsi che non iniziano con / si riferiscono alla directory home dell'istanza (/omd/sites/mysite).
| Percorso del file | Funzione |
|---|---|
|
Collegamento simbolico all'installazione della versione di Checkmk utilizzata da questa istanza. |
|
In questa directory esiste una sottodirectory per ogni versione di Checkmk installata. I file che appartengono a |
|
In questa directory, per ogni istanza c'è una directory home contenente i suoi file di configurazione e i dati variabili. Questi dati appartengono all'utente dell'istanza e possono essere modificati tramite configurazione e operazioni. |
|
Comando di gestione per le istanze Checkmk. Questo è un collegamento simbolico alla directory |
