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

Checkmk supporta il concetto di etichette, di cui puoi assegnarne un numero qualsiasi a un host. Le etichette e i tag host funzionano in modo molto simile:

  • Le etichette vengono "associate" agli host allo stesso modo dei tag.

  • Le etichette possono essere utilizzate come condizioni per le regole allo stesso modo dei tag.

  • Le etichette vengono create in modo simile ai tag secondo il principio "key:value".

Allora perché c'è un nuovo concetto qui? Beh, il mondo IT sta cambiando e sta diventando molto più dinamico. I sistemi cloud e container come Amazon Web Services (AWS), Microsoft Azure e Kubernetes creano ed eliminano in modo autonomo quelli che chiamano "oggetti" — che corrispondono agli host in Checkmk. In queste tecnologie le etichette e i tag giocano un ruolo importante perché creano le connessioni tra gli oggetti monitorati e le loro funzioni. I nomi degli host, invece, sono sempre più casuali e privi di significato.

Checkmk può creare automaticamente questi host dinamici grazie alla gestione dinamica degli host e può anche ricevere informazioni su eventuali etichette/tag già presenti. Queste etichette/tag possono poi essere utilizzate per condizioni di regole, ricerche, valutazioni, dashboard e altre attività.

Ovviamente sorge la domanda: perché non mappiamo semplicemente queste etichette dinamiche al concetto esistente di tag host? A prima vista sembra una conclusione molto ovvia. Tuttavia, i tag host hanno una proprietà molto importante che renderebbe tutto ciò molto difficile e complicato: Checkmk definisce rigidamente quali tag e gruppi di tag sono presenti. Tutto è ben definito. Ogni host ha esattamente un tag per ogni gruppo. Tutti possono fare affidamento su questo. Non possono verificarsi errori di digitazione nell'ortografia dei tag — nemmeno con host che non seguono lo schema — perché la sua conformità è rigorosamente controllata da Checkmk. Questo è molto importante e utile in ambienti molto eterogenei con molte migliaia di host gestiti manualmente.

Al contrario, le etichette dinamiche di Kubernetes e simili sono di fatto "a forma libera" e, anche se seguono uno schema, questo è sconosciuto a Checkmk. Inoltre, potresti effettuare il monitoraggio di diverse piattaforme, che a loro volta utilizzano le etichette in modi molto diversi.

Ecco perché è stato introdotto un concetto di etichette Checkmk che si adatta a questa dinamica in crescita. Naturalmente puoi usare le etichette anche se non utilizzi connessioni ad ambienti cloud.

Per rispondere alla domanda "Quando usare le etichette e quando usare i tag host?", trovi maggiori informazioni nell'articolo sulla strutturazione degli host.

Ecco le caratteristiche delle etichette:

  • Le etichette non devono essere predefinite da nessuna parte. Non esiste uno schema fisso per le etichette. Tutto è a forma libera. Tutto è permesso.

  • Ogni host può avere tutte le etichette che vuoi. Queste possono essere gestite manualmente, definite tramite regole o create automaticamente.

  • Le etichette sono strutturate secondo il principio "key:value". Ogni host può avere un solo valore per chiave. Quindi un host che ha l'etichetta foo:bar non può avere allo stesso tempo foo:bar2.

  • A differenza dei tag host, sia la chiave che il valore — con l'eccezione dei due punti (:) — possono contenere qualsiasi carattere.

  • Non c'è distinzione tra ID e titolo (o nome visualizzato): la chiave dell'etichetta è entrambe le cose allo stesso tempo.

Le etichette hanno i seguenti compiti:

  • Costituiscono la base per le condizioni nelle regole di configurazione, ad esempio: "Tutti gli host con l'etichetta os:windows devono essere sottoposti a monitoraggio allo stesso modo."

  • È molto facile memorizzare informazioni aggiuntive o commenti su un host (ad esempio, location:RZ 74/123/xyz) e visualizzarli, ad esempio, nelle visualizzazioni.

2. Creazione delle etichette

2.1. Etichette esplicite

È possibile assegnare etichette a un host in diversi modi.

Il primo è semplice: Nella pagina delle proprietà dell'host, che viene visualizzata quando crei o modifichi un host nel Setup, puoi assegnare a un host tutte le etichette che vuoi:

Dialog with properties of a host for defining labels.

Seleziona la checkbox "Labels", quindi clicca nel campo "Add some label", inserisci la definizione dell'etichetta seguendo lo schema key:value e conferma con Invio.

Puoi modificare un'etichetta esistente cliccandoci sopra nel testo, oppure eliminarla con la piccola "x".

Tip

Sia la chiave che il valore di un'etichetta possono includere qualsiasi carattere, tranne i due punti (:)! Tuttavia, dovresti riflettere attentamente sull'uso dei caratteri e delle maiuscole/minuscole, poiché se in seguito definisci delle condizioni tramite le etichette, l'ortografia sia della chiave che del valore deve essere rigorosamente rispettata.

Naturalmente le etichette possono anche essere ereditate da una cartella. Come altri attributi, le etichette possono trovarsi nelle sottocartelle o sull'host, per poi essere sovrascritte nuovamente secondo necessità — in realtà singolarmente. Se, ad esempio, l'etichetta location:munich è impostata nella cartella, questa verrà ereditata da tutti gli host in questa cartella che non hanno già l'etichetta location definita. Le altre etichette che un host potrebbe avere rimarranno inalterate.

Le etichette definite esplicitamente per host o cartelle appaiono in viola nell'elenco degli host:

List entry of a host with the assigned explicit labels.

2.2. Creazione di etichette tramite regole

Come di consueto in Checkmk, gli attributi possono essere assegnati agli host e ai servizi anche tramite regole. Questo ti renderà indipendente dalla struttura delle cartelle e vale anche per le etichette. Per questa funzione è disponibile un set di regole Host labels, che puoi trovare rapidamente tramite una ricerca nel menu di configurazione.

La seguente regola aggiunge l'etichetta "hw:real" a tutti gli host nella cartella "Bavaria" che hanno il tag host "Real Hardware":

Rule for specifying labels for hosts.

Avrai notato che le etichette non possono essere utilizzate nelle condizioni di questa regola. Non si tratta di un errore, ma di una scelta intenzionale, che evita dipendenze ricorsive e altre anomalie.

Le etichette aggiunte tramite regole appaiono in rosso sull'host visualizzato, ma non compaiono nell'elenco degli host nel Setup, bensì solo nella visualizzazione dello stato dell'host.

2.3. Etichette generate automaticamente

Il terzo modo in cui è possibile creare le etichette è in modo completamente automatico. Varie sorgenti dati, come gli agenti speciali per il monitoraggio dei sistemi cloud e container, generano automaticamente le etichette. In particolare, vanno menzionati qui gli agenti speciali per AWS, Azure e Kubernetes. A volte questi elementi vengono chiamati anche tag sulle rispettive piattaforme e vengono creati in Checkmk come etichette dell'host o di servizio. I rispettivi set di regole forniscono informazioni sufficienti al riguardo.

Il bello è che non devi configurare assolutamente nulla. Non appena queste sorgenti dati sono attive, le etichette corrispondenti vengono generate.

Nella sezione Etichette dell'host generate automaticamente troverai una panoramica delle etichette che Checkmk genera automaticamente.

2.4. Specificare le etichette tramite un plug-in dell'agente

Un modo semplice per manipolare direttamente le etichette è aggiungere un plug-in dell'agente che, analogamente ai check locali, crea una sezione chiamata "labels". In questo modo puoi assegnare etichette in modo più dettagliato rispetto alla sola valutazione dell'inventario HW/SW — ad esempio, in base alle sfumature dell'hardware installato (come le caratteristiche della CPU) o in relazione ai processi effettivamente in esecuzione (anziché semplicemente al software installato).

L'output dell'etichetta deve essere formattato come un dizionario Python, come nell'esempio seguente:

<<<labels:sep(0)>>>
{"cpu/vendor": "zilog"}

Evita conflitti con le etichette assegnate automaticamente da Checkmk stesso e da altri plug-in, poiché non è possibile garantire un ordine di valutazione particolare.

2.5. Inclusione delle etichette trovate nel discovery check

Se hai abilitato il discovery check — che è l'impostazione predefinita per le nuove installazioni — ti avviserà quando vengono trovate nuove etichette dell'host che non sono ancora state aggiunte alle proprietà dell'host nel Setup. Ad esempio, apparirà così:

Service list with the service 'Check_MK Discovery'.

Hai due opzioni per rispondere a questo avviso. La prima è aggiungere le nuove etichette richiamando la configurazione del servizio per l’host in Setup e aggiornando la configurazione delle etichette con la voce di menu “Hosts > Update host labels”. Il discovery check rOKrà nuovamente alla prossima esecuzione (con un ritardo massimo di due ore), anche se non hai ancora attivato le modifiche. Se non vuoi aspettare così a lungo, puoi anche aggiornare manualmente il servizio immediatamente selezionando "Reschedule check" nel menu azione del servizio.

Se questo riguarda molti host contemporaneamente, sicuramente non vorrai visitare la configurazione del servizio per ogni singolo host. La cosa migliore da fare in questo caso è eseguire l’azione massiva per “Run bulk service discovery” e selezionare “Only discover new host labels” come modalità — oppure, in alternativa, “Add unmonitored services and new host labels” se vuoi anche cogliere l’occasione per aggiungere nuovi servizi.

Il secondo modo per far diventare verde il discovery check è riconfigurarlo in modo che non ti avvisi più delle nuove etichette. Per farlo, vai al set di regole "Periodic service discovery" e modifica la regola esistente: lì troverai l'opzione "Severity of new host labels":

Rule for periodic service discovery.

Per impostazione predefinita, questa opzione è impostata su "Warning". Scegli "OK - do not alert, just display" e il check non emetterà più alcun avviso.

Le etichette trovate tramite il discovery check vengono visualizzate in giallo-ocra.

2.6. Ordine di priorità nell'assegnazione delle etichette

In teoria, la stessa etichetta può essere definita con valori diversi in più fonti contemporaneamente. Ecco perché esiste il seguente ordine di priorità:

  1. Innanzitutto, le etichette esplicite, ovvero quelle che definisci per l'host o la cartella direttamente nel Setup.

  2. Al secondo posto ci sono le etichette create dalle regole.

  3. All'ultimo posto ci sono le etichette generate automaticamente.

Queste regole di precedenza ti offrono il massimo controllo sulle etichette.

3. Le etichette come condizioni nelle regole

3.1. Condizioni nelle regole

Una funzione importante delle etichette è la stessa delle caratteristiche dell'host: ovvero, il loro utilizzo come condizione nelle regole. Questo è particolarmente utile per le etichette generate automaticamente, perché puoi adattare il tuo monitoraggio in modo completamente automatico sulla base delle informazioni provenienti da AWS, Azure, Kubernetes e simili.

Aggiungi le condizioni con Add to condition per le etichette dell'host o di servizio. Ora seleziona is o not per formulare una condizione positiva o negativa e poi inserisci l'etichetta nel formato usuale key:value. Presta attenzione all’ortografia esatta, comprese le maiuscole. Poiché le etichette possono essere definite senza specifiche, Checkmk non è in grado di riconoscere gli errori di battitura. Tuttavia: quando digiti un’etichetta, Checkmk suggerisce le etichette esistenti se corrispondono a ciò che hai digitato in precedenza. Nei suggerimenti non viene fatta alcuna distinzione tra etichette di host e di servizio: vengono proposte tutte le etichette corrispondenti. Presta attenzione all’ortografia corretta, poiché errori di ortografia, maiuscole errate, ecc. comporteranno il mancato funzionamento della regola.

Tuttavia, la definizione della condizione va oltre: Per affinare ulteriormente la condizione, hai a disposizione anche gli operatori booleani Not, And e Or. Qui, Not è l'abbreviazione di And Not.

  • Not significa che la condizione A deve essere soddisfatta e la condizione B non deve essere soddisfatta allo stesso tempo.

  • And significa che sia la condizione A che la condizione B devono essere soddisfatte contemporaneamente.

  • Or significa che deve essere soddisfatta o la condizione A o la condizione B, ma possono essere soddisfatte anche entrambe le condizioni.

Important

Gli operatori vengono elaborati esattamente in questa priorità — Not, And, Or — cioè non necessariamente nell'ordine in cui appaiono nell'elenco. Questo corrisponde allo standard dell'algebra booleana. Ad esempio, A And B Not C Or D corrisponderebbe alle parentesi (A And (B Not C)) Or D.

Ad esempio, per trovare host con l'etichetta cmk/site:today ma senza l'etichetta cmk/piggyback_source_today:yes, la condizione potrebbe essere simile a questa:

Condition for host labels.

Puoi affinare questa condizione con is o not aggiungendo qualsiasi altra specifica. Oppure puoi aggiungere un nuovo gruppo di condizioni con Add to condition, il che rende la condizione, ora più complessa, più facile da leggere, ma non cambia la valutazione dell'algebra booleana:

multiple conditions for host labels.
Tip

Se non hai definito né Host tagsHost labels, la regola in questione viene sempre applicata a tutti gli host o servizi. Se hai creato diverse regole, le regole successive potrebbero non essere più valutate, vedi Tipi di analisi delle regole.

Puoi utilizzare sia le etichette che i tag host in una regola. Questi vengono automaticamente collegati con un AND. La regola si applica quindi solo se entrambe le condizioni sono soddisfatte contemporaneamente.

3.2. Condizioni nelle regole di notifica

Puoi utilizzare le etichette anche come condizioni nelle regole di notifica. L'utilizzo è lo stesso delle altre condizioni, quindi non devi imparare nulla di nuovo per usarle. Seleziona "Match host labels" e inserisci semplicemente quali etichette deve avere un host o un servizio, in modo da attivare una notifica tramite questa regola. Anche in questo caso, più etichette sono collegate dall'operazione AND.

4. Etichette nelle visualizzazioni

Finora abbiamo parlato solo delle etichette nell'ambiente di configurazione (o, in breve: il Setup). Le etichette sono visibili anche nell'ambiente di monitoraggio, ad esempio nella visualizzazione di stato di un host:

Dialog with the host state and the assigned labels.

Qui puoi vedere le etichette in diversi colori a seconda di come sono state create: le etichette esplicite in viola, quelle create dalle regole in rosso e quelle create da un discovery check in giallo-ocra.

L'evidenziazione colorata delle etichette non solo risalta visivamente nella visualizzazione, ma è anche pratica perché puoi cliccarci sopra, il che ti porta a una ricerca di tutti gli host con questa etichetta:

Filter bar with filter to search for a label.

Qui puoi cercare gli host con questa etichetta (utilizzando l'is predefinito) o senza questa etichetta (utilizzando l'opzione is not).

Puoi anche utilizzare gli operatori booleani Not, And e Or nella ricerca per etichetta, come descritto nella sezione Condizioni nelle regole. Ad esempio, per trovare host Linux che si trovano a Monaco e che non sono server web, il filtro potrebbe essere simile a questo:

Filter options with 3 label filters linked by logical operators.

Puoi affinare ulteriormente questo filtro, ad esempio per trovare anche host Windows che siano sia "headless" (con or), sia francesi (con and). Puoi inserire le tre nuove righe per questa estensione del filtro direttamente sotto quelle esistenti — oppure puoi creare un nuovo gruppo con Add to query, il che rende il filtro, ora più complesso, più facile da leggere, ma non modifica la valutazione dell'algebra booleana:

Filter options with 6 label filters linked by logical operators.
Tip

Se ti interessa sapere quale sostituzione di parentesi genera Checkmk dai filtri di etichetta inseriti, puoi visualizzare la query Livestatus associata. Per farlo, attiva Setup > General > Global settings > Debug Livestatus queries.

Nella barra dei filtri puoi ovviamente combinare la ricerca per etichette con gli altri parametri di ricerca disponibili.

5. Etichette di servizio

Anche i servizi possono avere delle etichette. Sono simili alle etichette dell'host, ma con alcune piccole differenze:

  • Non puoi definire le etichette di servizio in modo esplicito. Queste possono essere create solo tramite regole (Service labels) o automaticamente.

  • Puoi anche formulare condizioni con le etichette di servizio. In un set di regole, le etichette di servizio vengono proposte come input solo se la regola può corrispondere a un servizio.

6. Etichette agenti

Checkmk Ultimate include l'opzione per creare host automaticamente. A tal fine, l'intera catena di registrazione dell'agente, creazione dell'host, scoperta del servizio e attivazione delle modifiche è automatizzata. La creazione dell'host avviene dopo la registrazione.

Questa automazione crea alcune difficoltà nella strutturazione degli host appena creati. Finora, il sistema operativo (memorizzato nell'etichetta dell'host cmk/os_family) poteva essere determinato solo dall'output dell'agente. Tuttavia, per ottenerlo, l'host deve essere già stato creato.

Per questo motivo è stato introdotto il concetto di etichette agente volatili. Queste etichette vengono inviate durante la registrazione e sono quindi disponibili prima della creazione del primo agente. Durante la registrazione, puoi utilizzare le etichette agente per determinare se un host debba effettivamente essere creato nel monitoraggio e, in tal caso, per influenzare la cartella dell’host, nonché altri attributi dell’host. Una volta completata la registrazione, non è più possibile accedere alle etichette agente.

Durante la registrazione vengono sempre trasferite due etichette agente predefinite:

  • cmk/os-family contiene la famiglia del sistema operativo (attualmente Windows o Linux).

  • cmk/hostname-simple contiene il nome del computer in forma abbreviata (cioè senza la parte relativa al dominio)

Puoi assegnare liberamente etichette agenti aggiuntive e personalizzate, ad esempio: organizational/department:documentation.

Agli host registrati automaticamente viene assegnata l'etichetta dell'host cmk/agent_auto_registered:yes. L'assegnazione diretta di etichette dell'host in base a specifiche etichette agente non è supportata. Tuttavia, hai la possibilità di registrare gli host in una cartella (temporanea) e poi assegnare etichette dell'host a tutti gli host presenti in quella cartella.

7. Ulteriori informazioni

7.1. Etichette dell'host generate automaticamente

Chiave Valori

cmk/agent_auto_registered

yes , se un host è stato creato tramite registrazione automatica

cmk/aws/ec2

instance per tutte le istanze EC2

cmk/aws/account

Nome dell'account AWS a cui appartiene l'host

cmk/aws/tag/{key}:{value}

Tag dagli oggetti AWS

cmk/azure/resource_group

Gruppo di risorse a cui appartiene l'oggetto Azure

cmk/azure/tag/{key}:{value}

Tag dagli oggetti Azure

cmk/azure/vm

instance per tutte le VM Azure

cmk/check_mk_server

yes per tutti i server Checkmk

cmk/device_type

Nome del dispositivo SNMP trasmesso, ad es. appliance , fcswitch , firewall , printer , router , sensor , switch , ups , wlc.

cmk/docker_image

Immagine Docker, ad es. docker.io/library/nginx:latest

cmk/docker_image_name

Nome dell'immagine Docker, ad es. nginx.

cmk/docker_image_version

Versione dell'immagine Docker, ad es. latest.

cmk/docker_object

container , se l'host è un Docker container; node , se l'host è un nodo Docker

cmk/kubernetes/annotation/{key}:{value}

Queste etichette vengono generate per qualsiasi etichetta Kubernetes che sia un'annotazione Kubernetes valida (configurabile tramite la regola Kubernetes).

cmk/kubernetes

yes se l'host è un oggetto Kubernetes.

cmk/kubernetes/cluster

nome del cluster Kubernetes

cmk/kubernetes/cluster-host

nome dell'host del cluster Kubernetes

cmk/kubernetes/cronjob

Cronjob Kubernetes

cmk/kubernetes/daemonset

Nome del DaemonSet

cmk/kubernetes/deployment

Nome del deployment

cmk/kubernetes/namespace

Nome dello spazio dei nomi Kubernetes associato

cmk/kubernetes/node

Nome del nodo Kubernetes associato. Gli host Checkmk di tipo Pod o Node ricevono questa etichetta.

cmk/kubernetes/object

Tipo di oggetto Kubernetes, ad es. endpoint se l'host è un oggetto endpoint Kubernetes.

cmk/kubernetes/statefulset

Nome dello StatefulSet

cmk/meraki

yes per tutti i dispositivi Meraki

cmk/meraki/device_type

Tipo di dispositivo Meraki, ad es. switch o wireless

cmk/meraki/net_id

ID di rete a cui appartiene il dispositivo Meraki

cmk/meraki/org_id

ID dell'organizzazione a cui appartiene il dispositivo Meraki

cmk/meraki/org_name

Nome dell'organizzazione a cui appartiene il dispositivo Meraki

cmk/nutanix/object

control_plane per l'host con l'special agent Nutanix; node per un host Nutanix; vm per le VM Nutanix

cmk/os_family

Sistema operativo, segnalato dall'agente come AgentOS (ad es. windows o linux )

cmk/os_type

Tipo di sistema operativo, segnalato dall'agente come OS type (ad es. windows, linux o unix)

cmk/os_name

Nome del sistema operativo, segnalato dall'agente come OSName (ad es. Microsoft Windows 10 Pro, Ubuntu o Oracle Solaris)

cmk/os_platform

Piattaforma del sistema operativo, segnalata dall'agente come OSPlatform (ad es. Ubuntu per i derivati di Ubuntu come Xubuntu), se memorizzata in /etc/os-release; se questa riga manca nell'output dell'agente, l'etichetta riceve il valore di cmk/os_family.

cmk/os_version

Versione del sistema operativo, segnalata dall'agente come OSVersion (ad es. 22.04 per Ubuntu o 10.0.19045 per Windows)

cmk/vsphere_object

vm se l'host è una macchina virtuale; server se l'host è un sistema host ESXi.

cmk/vsphere_vcenter

yes se l'host è un VMware vCenter.


Last modified: Mon, 12 Jan 2026 17:09:31 GMT via commit 134c5fe31
In questa pagina