6.7. Tagging¶
Contenuti
- Tagging
- Introduzione
- Organizzazione ad albero di tag: tag e tagtree
- Rename dei tag
- Tagging (Assegnamento) manuale di nodi ai tag
- Assegnamento automtico di nodi ai tag (flag all-nodes)
- Tagging parziale
- Assegnamento univoco di elementi in un tagtree (Flag ‘unique’)
- Copia di tag tra nodi
- Meta-informazioni associate ai tag
- Stato e colorazione dei tag
- Allarmi e notifiche
6.7.1. Introduzione¶
I tag sono un sistema di etichette di classificazione per catalogare tutti gli elementi definiti di Sanet.
Un tag quindi e’ composto da due informazioni principali:
- una stringa puramente informativa, detta anche nome del tag.
- una descrizione.
Ad un tag possono essere associati:
- altri tag, chiamati sotto-tag o sub-tag
- elementi del monitoraggio (nodi, interfacce, storage, ecc…)
Questa struttura di associazioni (ricorsiva) permette di definire “alberi” di tag e sub-tag chiamati tagtree.
6.7.2. Organizzazione ad albero di tag: tag e tagtree¶
Il tagtree e’ una entita’ puramente logica utilizzata per poter associare a tutti i tag dello stesso albero le stesse proprieta (il proprietario, i permessi, ecc.).
Un tagtree puo’ avere un solo tag come radice, chiamato root tag o root.
Una volta definito un tag radice e’ possibile definire ricorsivamente un numero illimitato di sotto-tag.
A ogni tag dell’albero e’ possibile associare gli elementi di monitoraggio.
6.7.2.1. Pagina principale e vista dei tag¶
Nella pagina principale di un tenant sono visibili tutti e soli i tag radice di tutti i tagtree visibili dall’utente che si sta utilizzando.
6.7.2.2. Visibilita di tagtree e gruppi utenti¶
Si distinguino due tipologie di tagtree:
- tagree di sistema: Non sono associati a nessun utente.
- tagree definiti dall’utente : Sono tagtree create dagli utenti via web.
6.7.2.2.1. Tagree utente¶
I tagtree utente sono visibili all’utente che li ha creati.
Se l’utente vuole rendere visibile il tagtree a tutti gli altri utenti dei gruppi di cui lui fa parte deve esplicitare questa configurazione.
6.7.2.3. Configurazione Web¶
Per creare nuovi tag bisogna accedere alla lista dei tag nella spalla a sinistra e cliccare sul pulsante “Aggiungi Tag”:
Inserire ii dati di creazione del tag e le autorizzazioni necessarie:
6.7.2.4. Configurazione CLI¶
La definizione di tagtree e tag avviene utilizzando gli omonimi comandi ‘tagtree’ e ‘tag’.
tagree <name>
tag <name>
...
exit
exit
Le gerarchie di tag vengono definite utilizzando ricorsivamente il comando ‘tag’.
tagtree geo
tag Globale
tag Bologna
tag Muratori
exit
exit
exit
exit
Per cancellare un intero tree si usa il comando:
no tagtree <name> <name>
Per cancellare tag si usa il comando:
no tag <name>
6.7.3. Rename dei tag¶
E’ possibile cambiare il nome logico di tagtree e tag.
6.7.3.1. Configurazione WEB¶
Questa funzionalita’ non e’ al momento disponibile via interfaccia web.
6.7.3.2. Configurazione CLI¶
Per rinominare un tagtree:
rename tagtree <oldname> <newname>
Esempio:
conf t
rename tagree geo geographic
Per rinominare un tag all’interno di un tagree si deve entrare nella sezione di configurazione del tagree (al livello del tag di interesse) ed usare il comando:
rename tag <oldname> <newname>
Esempio:
conf t
tagree geo
tag Global
rename tag Bologna City
exit
exit
6.7.4. Tagging (Assegnamento) manuale di nodi ai tag¶
Quando si associa un elemento o una condition ad un tag, si sta taggando l’elemento.
Il tagging puo’ essere:
diretto
L’elemento da taggare e tutti i suoi sotto-elementi (interfacce, datagroup, condition, ecc.) vengono automaticamente taggati.
QUESTA E’ LA MODALITA’ DI DEFAULT
IMPORTANTE: sotto-elementi aggiunti successivamente vengono taggati ricorsivamente in maniera automaticamente.
indiretto
Un elemento viene taggato perche’ figlio di un elemento taggato indirettamente.
Questa operazione deve essere esplicitata manualmente ogni volta.
6.7.4.1. Configurazione WEB¶
Per associare un elemento di monitoraggio ad un tag bisogna fare drag & drop dell’elmento sull’icona del tag.
6.7.4.2. Configurazione CLI¶
6.7.4.2.1. Taggare¶
Per assegnare un elemento all’interno di un tag i comandi sono i seguenti:
node <name>
exit
interface <node name> <name>
exit
storage <node name> <name>
exit
service <node name> <name>
exit
device <node name> <name>
exit
condition <path>
6.7.4.2.2. Esempi¶
Esempio di configurazione di un tree:
tagtree tree1
tag tag1
tag tag2
storage mason root
exit
exit
tag tag3
condition foo::datagroup:check explosive group 1
condition bar::datagroup:check explosive group 1
condition bob::datagroup:check explosive group 2
condition adam::datagroup:check explosive group 2
exit
interface xha eth0
exit
node mason
exit
condition xha;;prova
exit
exit
6.7.5. Assegnamento automtico di nodi ai tag (flag all-nodes)¶
E’ possibile configurare il sistema per assegnare automaticamente un nodo ad un tag all’interno di un tag tree secondo regole configurabili.
Per fare questo deve essere attivato il flag all nodes di tagtree (vedi Configurazione Web. ).
IMPORTANTE: L’assegnamento automatico funziona solo in fase di creazione di un nuovo nodo. Se il nodo viene rinominato successivamente rimane taggato ai tag gia’ assegnati.
6.7.5.1. Configurazione WEB¶
Questa funzionalita’ non e’ al momento disponibile via interfaccia web.
6.7.5.2. Configurazione CLI¶
Per attivare il flag all nodes su un tag tree bisogna dare il comando:
allnodes true|false
Esempio:
tagree geo
allnodes true
exit
6.7.5.3. Le Regole di assegnamento automatico¶
Ad ogni tag di un tagtree possono essere assegnate una o piu’ regole di assegnamento automatico. Una regola di assegnamento e’ una tupla:
< tag , expressione regolare >
In fase di creazione di un nuovo nodo, se il nome fa match con l’espressione regolare di una o piu’ regole, il nodo viene assegnato al tag corrispondente.
Se il tag radice non ha regole di assegnamento, tutti i nodi che non sono stati ancora assegnati a nessun tag vengono aggiunti al tag radice.
IMPORTANTE: Se anche il tag radice ha regole di assegnamento che possono escludere dei nodi, e’ possibile che alcuni nodi non vengano assegnati a nessun tag:
6.7.5.3.1. Configurazione WEB¶
Questa funzionalita’ non e’ al momento disponibile via interfaccia web.
6.7.5.3.2. Configurazione CLI¶
Per definire regole di assegnamento ad un tag bisogna posizionarsi all’interno di un tag e dare il comando:
insert-rule <regular expression>
Esempio: Tagga tutti i nodi switch o router, tutti i nodi che non fanno match finiscono in “Visione globale”
tagtree geo
allnodes true
tag "Visione globale"
tag switchs
insert-rule sw.*
exit
tag routers
insert-rule rt.*
exit
exit
exit
Esempio: Tagga tutti i nodi cisco o hp, tutti i nodi che non fanno match finiscono in “Visione globale”:
tagtree apparati
allnodes true
tag "Marche"
tag cisco
insert-rule hp
exit
tag hp
insert-rule cs
exit
exit
exit
Esempio: Suddivide i nodi tra sede1, sede2. I nodi che matchano con “sd3*” finiscono in visione globale. Tutti quelli che non matchano non vengono aggiunti al tree.
tagtree prova
allnodes true
tag "Visione globale"
insert-rule sd3.*
tag sede1
insert-rule sd1-.*
exit
tag sede2
insert-rule sd2-.*
exit
exit
exit
6.7.5.4. Refresh di un tagtree¶
All’interno di un tagtree, e’ possibile usare il comando refresh per applicare nuovamente le regole di assegnamento automatico.
Anche dopo il refresh, i nodi non perdono i tag assegnati in precedenza.
La modalita’ di refresh e’ additiva, e non distruttiva.
6.7.6. Tagging parziale¶
Quando si tagga un elemento di monitoraggio vengono taggati automaticamente:
- L’elemento stesso
- Tutte le sue condition
- Tutti i sotto element (e tutte le loro condition)
Se all’elemento vengono aggiunti nuove entita’ (sotto elementi, datagroup, condition, ecc.) queste vengono automaticamente taggate.
In un secondo momento pero’ e’ possibile pero’ staggare le diverse entita’ taggate automaticamente.
6.7.6.1. Configurazione WEB¶
Questa funzionalita’ non e’ al momento disponibile via interfaccia web.
6.7.6.2. Configurazione CLI¶
Bisogna: * entrare nella sezione di configurazione di un tag * entrare nell’elemento desiderato * esplicitare la dissocaizione al tag
Esempio:
tagtree tree
tag tag1
tag tag2
node localhost
no interface wlan0
exit
exit
exit
exit
6.7.7. Assegnamento univoco di elementi in un tagtree (Flag ‘unique’)¶
All’interno di un tag tree una entita’ (nodo, interfaccia, condition) puo’ essere taggata piu’ volte in tag diversi.
Questo comportamento puo’ essere cambiato e forzare che una entita compaia (sia taggata) solo una volta all’interno del tagtree.
Questo modalita’ attivabile impostatondo il flag “unique” a true.
IMPORTANTE: il flag unique e’ impostato a false di default.
6.7.7.1. Comandi di tagging con il flag unique attivo¶
Quando il flag “unique” e’ attivo e si cerca di taggare un elemento gia’ taggato in un altro tag dello stesso albero, l’elmento e tutti i suoi sotto-elementi (interfacce, datagroup, condition, ecc.) vengono “staggati” e “ritaggati” con il nuovo tag.
L’effetto pratico e’ che si sposta un elemento taggato da un tag ad un altro.
6.7.7.1.1. Configurazione flag unique da WEB¶
Questa funzionalita’ non e’ al momento disponibile via interfaccia web.
6.7.7.1.2. Configurazione flag unique da CLI¶
Esempio:
tagtree geo
unique true
tag "Visione globale"
...
exit
exit
6.7.7.2. Limiti sull’attivazione del flag unique¶
Se si cerca di attivare il flag “unique” in un albero che contiene elementi taggati in piu’ punti il sistema dara’ errore.
Per attivare il flag e’ necessario “staggare” tutti elementi con tag multipli in modo da rendere univoco il tagging.
Esempio: Se si cercasse di attivare il flag unique su questo albero il sistema darebbe errore. E’ necessario togliere il nodo “localhost” da Tag2 o Tag3.
tagtree prova
tag Tag1
tag Tag2
node localhost
exit
tag Tag3
node localhost
exit
exit
exit
6.7.8. Copia di tag tra nodi¶
6.7.8.1. Configurazione via CLI¶
Per copiare i tag tra diversi nodi sono disponibili i seguenti comandi:
copy tags node <nodo1> like <nodo2> [ask-confirm]
Tagga <nodo1> con i tag di <nodo2>. Se <nodo1> era gia’ associato ad altri tag, l’associazione NON viene persa. (tagging in aggiunta)
copy tags node <nodo1> exactly-as <nodo2> [ask-confirm]
Tagga <nodo1> con esattamente gli stessi tag di <nodo2>. Se <nodo1> era gia’ associato ad altri tag, i tag vecchi vengono “disassociati”.
6.7.9. Meta-informazioni associate ai tag¶
E’ possibile associare informazioni testuali generiche ai tag. In gergo sono chiamate meta-informazioni.
Tutte le meta-informazioni sono identificate da un nome (key) e un valore in formato stringa.
< key, string value >
IMPORTANTE: La key e’ univoca per tag.
6.7.9.1. Configurazione via CLI¶
6.7.9.1.1. Aggiungere¶
Per aggiungere meta-dati ad un tag e’ necessario posizionarsi all’interno dell’albero di configurazione di un tag e usare il comando
meta <nome meta-attributo> <valore in formato stringa>
Esempio:
tag Sede1
meta indirizzo "Via Carlo Carli"
meta telefono "3312596071"
meta referenti "foo@bar.com"
exit
IMPORTANTE: il valore di un meta-attributo e’ sempre codificato con una stringa. Questa stringa puo’ contenere caratterei di interlinea o altri caratteris speciali usando il normale escaping.
meta referenti "referente1@mycompany.com\nreferente2@maicompany.com"
6.7.9.1.2. Rimuovere¶
Per rimuovere un meta-dato bisogna dare il comando:
no meta <nome meta-attributo> <nome meta-attributo>
Esempio:
tag Sede1
no meta refrenti referenti
exit
6.7.10. Stato e colorazione dei tag¶
6.7.10.1. Introduzione¶
Sanet calcola uno stato delle seguenti entita’ in base alla struttura del tagging:
- Tagtree: lo stato corrisponde dallo stato del tag radice.
- Tag: lo stato dipende dallo stato dei sotto-tag e di tutti gli elementi e condition taggati all’interno.
- Elementi di monitoraggio taggati: lo stato dipende dalle condition e sotto-elementi taggati indirettamente.
- Condition
6.7.10.2. Stati di tag ed elementi taggati.¶
Gli stati dei tag e degli elementi taggati si possono distinguere in base al colore:
STATO DESCRIZIONE VERDE (UP) Il tag o l’elemento taggato non contengono condition allarmate. (*) GIALLO/NERO (FAILING) IL tag o l’elemento contengono condition in stato FAILING o DOWN (*) ROSSO (DOWN) Il tag o l’elemento taggato contegono condition (A) solo esclusivamente condition DOWN (B) COndition critical, (C) stati esplosivi. Vai a Definire elementi esplosivi. GRIGIO (UNCHECK) Lo stato dell’elemento non puo’ essere calcolato poiche’ non ci sono condition “significative” da analizzare (uncheckable o fuori sogli di rilevanza)
(*) non sono conteggiate le condition uncheckable o con priority sotto minimum level.
6.7.10.2.1. Contatori¶
Via web le icone di tag e elementi taggati possono presentare due glifi aggiuntivi per indicare:
- Numero di condition allarmate con priorita’ sopra il minimum level.
- Icona con segnale di avvertenza (Punto esclamativo) per indicare che ci sono condition sopra “critical level”.
6.7.10.3. Sottosistema di calcolo degli stati (Tagsd)¶
Gli stati dei tag viene calcolato da un sottosistema di Sanet (processo Tagsd).
Il compito di Tags e’ il seguente:
- Legge dal Database la configurazione del tagging
- Comunica con le interfacce di sanet (CLI e WEB) rispondendo alle interrogazioni e inviando i dati sugli stati.
Schema di funzionamento:
+----------------------------+
| sanetd | +-----+
| | +-------> | CLI |
| +-----+ | | +----- +-----+
| |tagsd| ----------------------------+ |
| +-----+ | STATO (4) | | +-----+
| ^ | | +--|----> | WEB |
+-------------|-|------------+ +----- +-----+
| | |
(2) NOTIFICA | | LETTURA (3) |
| v |
+-------+ UPDATE (1) |
| SANET | <-----------------------------+
| DB |
+-------+
Quando viene modificata la configurazione di Sanet (configurazioni di nodi o del taggging) viene notificato al sistema Tagsd che e’ necessario aggiornare gli stati calcolati.
Warning
il sistema tagsd mantiene in memoria lo stato degli elementi taggati. La quantita’ di memoria occupata dipende linearmente dal numero di TagTree con flag nostate=False ( vedi sezione Tag senza stato (flag no-state)) e di elementi taggati.
Se il server centrale di sanet non e’ in esecuzione, Tags non e’ in esecuzione e puo’ rispondere alle richieste di interrogazione lo stato dei tag ed elementi taggati.
Quando tagsd non e’ in esecuzione lo stato del tagging mostrato via CLI e in alcune sezioni dell’interfaccia WEB e’ rappresentato come UNCHECKABLE (grigio).
6.7.10.4. Criteri di calcolo degli stati (algoritmo di calcolo)¶
Le condition che vengono considerate per il calcolo degli stati dipendono dal critical level e minimum level (vedi Livelli priorita minimo e critico)
6.7.10.5. Tag senza stato (flag no-state)¶
Per alcuni tag (tagtree) si potrebbe non voler calcolare lo stato, per diversi motivi:
- nessun interesse a voler calcolarne lo stato
- evitare computazione inutile da parte del server
- ecc.
Per evitare che il Sanet calcoli lo stato di alcuni tag e’ necessario marcare il tagtree corrispondente come nostate.
I tagtree configurati con nostate vengono visualizzati in prima pagina in una sezione a parte Tag di Servizio.
Important
settando il flag nostate a “false” viene automaticamente settato a “false” anche il flag nomap illustrato sotto.
Important
settando il flag nostate a “true”, il flag nomap NON viene settato a “true”.
Important
settando il flag nomap a true|false, il flag nostate rimane invariato.
6.7.10.5.1. Configurazione Web¶
Questa funzionalita’ non e’ al momento disponibile via interfaccia web.
6.7.10.5.2. Configurazione CLI¶
Comando:
tagtree geo
nostate true|false
exit
Esempio:
tagtree geo
nostate true
exit
6.7.10.6. Definire elementi esplosivi¶
E possibile alterare il normale calcolo di stato di un tag definendo degli elementi taggati come esplosivi.
Se un elemento taggato e’ flaggato come esplosivo, il suo stato DOWN forza lo stato DOWN del tag in cui e’ contenuto e di tutti i tag della gerarchia.
Esempio: il nodo node2 e’ taggato (associato) sia al tag Cisco che al tag Posta, ma solo per il tag Posta e’ marcato come esplosivo. Lo stato del tag Posta e di tutti i tag dell’albero e’ DOWN.
NOTA: Questo sistema permette di gestire alcuni elementi critici del monitoraggio in situazioni particolari. Ad esempio, lo stato di un disco puo’ essere critico per la gestione complessiva del servizio di posta, ma completamente insignificante per la gestione della rete.
6.7.10.6.1. Gruppi di elementi¶
All’interno di uno stesso tag e’ possibile raggruppare elementi taggati in gruppi esplosivi.
Quando e’ definito un gruppo esplosivo, la gestione dell’esplositiva entra in funzione solo se tutti gli elementi del gruppo sono DOWN.
I gruppi sono identificati da un numero intero
Note
la numerazione dei gruppi puo’ partire da qualunque valore (non necessariamente da 1).
6.7.10.6.1.1. Configurazione CLI¶
Per settare il flag di esplosivita’ su un elemento taggato bisogna espressamente dare i comandi :
explosive node <NODE> [ group <NUM> ]
explosive interface <NODE> <IFACE> [ group <NUM> ]
explosive service <NODE> <SERVICE> [ group <NUM> ]
explosive storage <NODE> <STORAGE> [ group <NUM> ]
explosive device <NODE> <DEVICE> [ group <NUM> ]
explosive condition <path> [ group <NUM> ]
Esempio:
tagtree geo
tag Global
node www.google.com
exit
node localhost
exit
explosive node www.google.com group 666
explosive node localhost group 666
exit
exit
6.7.10.6.1.2. Configurazione Web¶
Questa funzionalita’ non e’ al momento disponibile via interfaccia web.
6.7.11. Allarmi e notifiche¶
6.7.11.1. Wildcard disponibili¶
E’ possibile espandere i valori dei customfield associati ad un nodo monitorato utilizzando la seguente wildcard:
Simbolo Descrizione {{ tags.tree.<<tree name>> }} Stringa con tutti i tag del tree specificato associati alla condition (e all’elemento) che ha generato l’allarme.
Esempio:
I tag associati a questo allarme sono: {{tags.tree.geo}}