7.4. Tag disponibili¶
Contenuti
7.4.1. Builtin¶
I simboli definiti da questo tag sono definiti nella seguente tabella.
Poiche' questo e' un tag fornito dal sistema tutti i tag definiti sono accessibili anche tramite degli shortcut:
7.4.1.1. Dati generici sull'allarme¶
TAG
Shortcut
Descrizione
{{builtin.alarm.uuid}}
{{alarm.uuid}}
UUID Allarme
{{builtin.alarm.ts}}
{{alarm.ts}}
Alarm creation timestamp
{{builtin.alarm.dateiso}}
{{alarm.dateiso}}
Alarm creation in ISO format
{{builtin.rawalarm}}
{{rawalarm}}
Testo contenente allarme in formato json
7.4.1.2. Dati sul tenant¶
TAG
Shortcut
Descrizione
{{builtin.tenant.name}}
{{tenant.name}}
Nome del tenant
{{builtin.tenant.uuid}}
{{tenant.uuid}}
UUID del tenantl
7.4.1.3. Dati sull'elemento di monitoraggio¶
TAG
Shortcut
Descrizione
{{builtin.element.kind}}
{{element.kind}}
Tipo di elemento del monitoraggio
{{builtin.element.type}}
{{element.type}}
Tipo di elemento del monitoraggio (numerico)
{{builtin.element.url}}
{{url}}
URL della risorsa monitorata
TAG
Shortcut
Descrizione
{{builtin.node.name}}
{{node.name}}
Nome del nodo
{{builtin.node.description}}
{{node.description}}
Descrizione del nodo
{{builtin.node.sysdescr}}
{{node.sysdescr}}
SMNP SysDescr nodo
{{builtin.node.ip4s}}
{{node.ip4s}}
Indirizzi IPv4 del nodo separati da ','
TAG
Shortcut
Descrizione
{{builtin.iface.name}}
{{iface.name}}
Nome interfaccia
TAG
Shortcut
Descrizione
{{builtin.storage.name}}
{{storage.name}}
Nome storage
TAG
Shortcut
Descrizione
{{builtin.service.name}}
{{service.name}}
Nome servizio
TAG
Shortcut
Descrizione
{{builtin.device.name}}
{{device.name}}
Nome device
TAG
Shortcut
Descrizione
{{builtin.linked_node.name}}
{{linked_node.name}}
Nome nodo collegato
{{builtin.linked_iface.name}}
{{linked_iface.name}}
Nome interfaccia collegata
7.4.1.4. Dati sul cluster dell'elemento¶
TAG
Shortcut
Descrizione
{{builtin.node.cluster.master.name}}
{{node.cluster.master.name}}
Nome del nodo master a cui il nodo e' associato
7.4.1.5. Dati sul datagroup legato all'allarme¶
TAG
Shortcut
Descrizione
{{builtin.params.<param name>}}
{{params.<param name>}}
Value of datagroup's parameter <param name>.
Esempio: Se un datagroup definisce un parametro param1:
entables -t notify -A DEFAULT -j SMTP --smtp_rcpt_to '{{mail.to}}' --smtp_subject '{{mail.subject}}' --smtp_message '{{mail.body}} {{params.param1}}'
7.4.1.6. Dati sulla condition legata all'allarme¶
TAG
Shortcut
Descrizione
{{builtin.condition.status}}
{{condition.status}}
Stato della condition
{{builtin.condition.laststatus}}
{{condition.laststatus}}
Stato precedente della condition
{{builtin.condition.statuslastchange}}
{{condition.statuslastchange}}
Ultima variaizone di stato della condition
{{builtin.condition.verbstatus}}
{{condition.verbstatus}}
Verbstatus del check
{{builtin.condition.priority}}
{{condition.priority}}
Priorita' dell'allarme
{{builtin.condition.path}}
{{condition.path}}
Path della condition
{{builtin.condition.maxtries}}
{{condition.maxtries}}
Max tries della condition
{{builtin.condition.classification}}
{{condition.classification}}
Classificazione della condition
{{builtin.snmpval}}
{{snmpval}}
Valore variabile SNMP letta dalla condition
{{builtin.snmpvalues}}
{{snmpvalues}}
Valori SNMP letti per effettuare il controllo
{{builtin.now}}
{{now}}
Timestamp orario elaborazione dell'allarme
{{builtin.now_iso}}
{{now_iso}}
Orario elaborazione allarme in formato ISO
Dati sul flapping:
TAG
Shortcut
Descrizione
{{builtin.condition.flap_isflapping}}
{{condition.flap_isflapping}}
Stato del flapping sull'allarme ("True" o "False")
{{builtin.condition.flap_lastchange}}
{{condition.flap_lastchange}}
Ora in formato ISO di quando e' avvenuto l'ultimo cambio di stato del flapping.
{{builtin.condition.flap_cur_penalty}}
{{condition.flap_cur_penalty}}
Valore corrente della penalty.
{{builtin.condition.flap_cur_penalty_start}}
{{condition.flap_cur_penalty_start}}
Ora (in formato ISO) di quanto la penalty ha cominciato a salire.
{{builtin.condition.flap_penalty}}
{{condition.flap_penalty}}
Valore di incremento della penalty.
{{builtin.condition.flap_unpenalty}}
{{condition.flap_unpenalty}}
Valore di decremento della penalty.
{{builtin.condition.flap_penalty_limit}}
{{condition.flap_penalty_limit}}
Valore massimo della penalty.
{{builtin.condition.flap_penalty_high}}
{{condition.flap_penalty_high}}
Soglia ALTA per entrare in stato di flapping.
{{builtin.condition.flap_penalty_low}}
{{condition.flap_penalty_low}}
Soglia BASSA per uscire dallo stato di flapping.
{{builtin.condition.flap_half_life}}
{{condition.flap_half_life}}
Tempo di Half-life per il decremento esponenziale della penalty.
{{builtin.condition.flap_fa_as_dn}}
{{condition.flap_fa_as_dn}}
Indica se le situazioni di FAILING vengono contate per calcolare lo stato di flapping.
Tag associati alla condition:
TAG
Shortcut
Descrizione
{{builtin.tags.all}}
{{tags.all}}
Tutti i tag associati all'elemento di monitoraggio (separati da ',')
{{builtin.tags.<tree_name>}}
{{tags.<tree_name>}}
Tutti i tag associati all'elemento di monitoraggio (separati da ',') nel tagtree con nome tree_name.
Esempi:
{{builtin.tags.geo}} -> geo:/Global/sede1 {{builtin.tags.servizi}} -> servizi:/Posta,servizi:/Database {{builtin.tags.all}} -> geo:/Global/sede1,servizi:/Posta,servizi:/Database
Parametri email associati alla condition:
TAG
Shortcut
Descrizione
{{builtin.mail.to}}
{{mail.to}}
email, upemail
{{builtin.mail.subject}}
{{mail.subject}}
msg-upsubj, msg-downsubj
{{builtin.mail.body}}
{{mail.body}}
msg-upbody, msg-downbody
{{builtin.mail.xheaders}}
{{mail.xheaders}}
Esempio:
entables -A DEFAULT -j SYSLOG --syslog_msg "Allarme in arrivo ID {{alarmid}} generato in data {{alarmdateiso}}"
7.4.1.7. Sintassi deprecata¶
Danger
La seguente sintassi e' disponibile per retro-compatibilita' e verra' rimossa. Si consiglia di aggiornare i template utilizzati e utilizzare la sintassi descritta nel paragrafo precedente.
Questi sono i tag nel vecchio formato:
TAG
Shortcut
Descrizione
${tags['builtin:alarmid']}
${alarmid}
UUID Allarme
${tags['builtin:alarmts']}
${alarmts}
Alarm creation timestamp
${tags['builtin:alarmdateiso']}
${alarmdateiso}
Alarm creation in ISO format
${tags['builtin:rawalarm']}
${rawalarm}
Testo contenente allarme in formato json
Dati sul tenant:
TAG
Shortcut
Descrizione
${tags['builtin:tenantname']}
${tenantname}
Nome del tenant
${tags['builtin:tenantid']}
${tenantid}
UUID del tenantl
Dati sull'elemento di monitoraggio:
TAG
Shortcut
Descrizione
${tags['builtin:kind']}
${kind}
Tipo di elemento del monitoraggio
${tags['builtin:type']}
${type}
Tipo di elemento del monitoraggio (numerico)
${tags['builtin:nodename']}
${nodename}
Nome del nodo
${tags['builtin:nodedescr']}
${nodedescr}
Descrizione del nodo
${tags['builtin:ifacename']}
${ifacename}
Nome interfaccia
${tags['builtin:storagename']}
${storagename}
Nome storage
${tags['builtin:servicename']}
${servicename}
Nome servizio
${tags['builtin:devicename']}
${devicename}
Nome device
${tags['builtin:sysdescr']}
${sysdescr}
SMNP SysDescr nodo
${tags['builtin:linked_node']}
${linked_node}
Nome nodo collegato
${tags['builtin:linked_iface']}
${linked_iface}
Nome interfaccia collegata
Dati sulla condition legata all'allarme:
TAG
Shortcut
Descrizione
${tags['builtin:status']}
${status}
Stato della condition
${tags['builtin:laststatus']}
${laststatus}
Stato precedente della condition
${tags['builtin:statuslastchange']}
${statuslastchange}
Ultima variaizone di stato della condition
${tags['builtin:verbstatus']}
${verbstatus}
Verbstatus del check
${tags['builtin:priority']}
${priority}
Priorita' dell'allarme
${tags['builtin:path']}
${path}
Path della condition
${tags['builtin:maxtries']}
${maxtries}
Max tries della condition
${tags['builtin:classification']}
${classification}
Classificazione della condition
${tags['builtin:snmpval']}
${snmpval}
Valore variabile SNMP letta dalla condition
${tags['builtin:snmpvalues']}
${snmpvalues}
Valori SNMP letti per effettuare il controllo
${tags['builtin:ip4s']}
${ip4s}
Indirizzi IPv4 del nodo separati da ','
${tags['builtin:geotag']}
${geotag}
Tag del tagtree "geo"
${tags['builtin:alltags']}
${alltags}
Tutti i tag associati all'elemento di monitoraggio (separati da ',')
${tags['builtin:now']}
${now}
Timestamp orario elaborazione dell'allarme
${tags['builtin:now_iso']}
${now_iso}
Orario elaborazione allarme in formato ISO
${tags['builtin:url']}
${url}
URL della risorsa monitorata
Parametri email associati alla condition:
TAG
Shortcut
Descrizione
${tags['builtin:mail_to']}
${mail_to}
email, upemail
${tags['builtin:mail_subject']}
${mail_subject}
msg-upsubj, msg-downsubj
${tags['builtin:mail_body']}
${mail_body}
msg-upbody, msg-downbody
${tags['builtin:mail_headers']}
${mail_headers}
Esempio:
entables -A DEFAULT -j SYSLOG --syslog_msg "Allarme in arrivo ID ${alarmid} generato in data ${alarmdateiso}"
7.4.2. Alarmpath¶
Questo modulo permette di accedere alla struttura interna di un allarme e di estrapolare un qualunque campo.
Warning
Quando possibile e' sempre preferibile usare i tag Builtin poiche' permettono l'accesso ai dati dell'allarme senza preoccuparsi delle evoluzioni della "struttura dati".
La sintassi e':
{{ alarmpath.<key1> [ . <key N> ] }}
Ad esempio, ipotizzando che la struttura dell'allarme da processare sai la seguente:
{ 'condition': { 'name': 'check', 'path': 'localhost;;debug;check', 'priority': -1, 'uuid': '7b87d0fc87a340bba6a5e1d9cf03a76d' }, 'datasources': [], 'element': { 'name': 'localhost', 'parent_id': None, 'parent_name': None, 'type': 1, 'uuid': 'c3af80abb3104a2cad031b90e30efbdb' }, 'event': { 'uuid': '37f99ce859534a959f82a07eeed2c728' }, 'flow-information': [], 'mail_data': None, 'result': { 'laststatus': 100, 'status': 20, 'verbastatus': '' }, 'snmp_values': [], 'tenantid': '10a279a6ce5c4438a98f9c33c0b77cde', 'uuid': '2a0a23eaeab74b96a85b932877a77dfb' }
Sara' possibile estrarre i dati in questa maniera:
{{ alarmpath.condition.name }} -> "check" {{ alarmpath.condition.priority }} -> -1 {{ alarmpath.event.uuid }} -> "37f99ce859534a959f82a07eeed2c728"
- NOTA: Poiche' la struttura dati di un allarme potrebbe cambiare nel tempo in base alla versione di SANET, questo tag e' pensato
quasi esclusivamente per gestire allarmi particolari generati/inseriti manualmente nel sistema in condizioni particolari.
Per accedere in maniera standard ai dati di un allaerme si consiglia di utilizzare i tag forniti dal modulo "builtin".
7.4.2.1. Sintassi deprecata¶
Danger
La seguente sintassi e' disponibile per retro-compatibilita' e verra' rimossa. Si consiglia di aggiornare i template utilizzati e utilizzare la sintassi descritta nel paragrafo precedente.
Esempi:
${tags['alarmpath:condition:name']} ${tags['alarmpath:condition:priority']} ${tags['alarmpath:event:uuid']} ...
7.4.3. System¶
I simboli definiti da questo tag sono i seguenti:
Tag
Shortcut
Descrizione
{{system.hostname}}
{{hostname}}
(Full Qualified) Hostname della macchina su cui e' in esecuzione Sanet.
{{system.now}}
{{now}}
Timestamp del momento di elaborazione dell'allarme.
{{system.now_iso}}
{{now_iso}}
MOmento di elaborazione dell'allarme in formato ISO (YYYY-DD-MM HH:MM:SS).
Esempio:
Questo e' un messaggio da parte di SANET installato su {{hostname}}.
Questo e' un messaggio da parte di SANET installato su {{system.hostname}}.
7.4.3.1. Sintassi deprecata¶
Danger
La seguente sintassi e' disponibile per retro-compatibilita' e verra' rimossa. Si consiglia di aggiornare i template utilizzati e utilizzare la sintassi descritta nel paragrafo precedente.
I tag:
Tag
Shortcut
Descrizione
$tags['system:hostname']
${hostname}
(Full Qualified) Hostname della macchina su cui e' in esecuzione Sanet.
Esempio:
Questo e' un messaggio da parte di SANET installato su ${hostname}
Questo e' un messaggio da parte di SANET installato su $tags['system:hostname']
7.4.4. Digest¶
IMPORTANTE: questo tagprovider ha senso solo se usato per processare messaggi digest prodotti utilizzando il target DIGEST.
Questo tag processa i dati memorizzati l'attributo "digest_data" associato ad un messaggio, se presente, e permette di usare tag per espandere il digest in formato testuale.
I simboli definiti da questo tag sono definiti nella seguente tabella.
Note
Poiche' questo e' un tag fornito dal sistema tutti i tag definiti sono accessibili anche tramite degli shortcut:
TAG |
Shortcut |
Descrizione |
---|---|---|
{{ digest.textbrief }} |
{{ digesttextbrief }} |
Stringa di testo contenente una versione compressa del digest con le informazioni base |
{{ digest.textfull }} |
{{ digesttextfull }} |
Stringa di testo contenente il digest formattato in maniera molto verbosa. |
7.4.4.1. Esempio di utilizzo¶
Ritarda tutti gli allarmi fino alle 18:00 di oggi (o del giorno dopo)
entables -t notify -A DEFAULT -j DIGEST --digest_holduntil_next 18:00
entables -t notify -A DEFAULT -j SMTP --smtp_rcpt_to '{{ mail.to }}'
--smtp_subject '{{ mail.subject }}'
--smtp_message '{{ mail.body }} - {{ digest.textbrief }} {{ digest.textfull }}'
7.4.4.1.1. Esempio digesttextbrief¶
TENANT:site
DOWN:1
7.4.4.1.2. Esempio digesttextfull¶
============================== START DIGEST ==============================
DIGEST BRIEF
Tenant : site
First alarm time : 2015-01-16 16:58:43
First alarm path : localhost;;y;check
Total alarms seen: 6
DOWN CONDITIONS (total 1)
2015-01-16 16:58:47 , localhost , localhost;;x;check , , status=DN, changes = 2 , http://1.1.15.160:8000/web/tenantpage/7f4d9bb05cf44ce1ac432de2c3384677/node/b78ff3df8fb64a8e9c18e070a0added4
OTHER (total 1)
2015-01-16 16:58:49 , localhost , localhost;;y;check , , status=UP, changes = 4 , http://1.1.15.160:8000/web/tenantpage/7f4d9bb05cf44ce1ac432de2c3384677/node/b78ff3df8fb64a8e9c18e070a0added4
============================== END DIGEST ==============================
7.4.4.2. Digest personalizzabile¶
E' possibile creare digest completamente personalizzati sfruttando una speciale sintassi:
{% for c in digest.others %}
... testo ripetuto per ogni condition down ...
{% endfor %}
{% for c in digest.downs %}
... testo ripetuto per ogni condition non down ...
{% endfor %}
All'inteno del testo si possono usare i seguenti tag:
TAG
DESCRIPTION
{{ c.ts }}
Data della condition
{{ c.element }}
Nome elemento associato all'allarme
{{ c.condition }}
Path della condition dell'allarme
{{ c.title }}
Titolo della condition
{{ c.state }}
Stato della condition (DN, UP, ecc.)
{{ c.num_changes }}
Numero di variazioni aggregate nel digest
{{ c.url }}
URL alla pagina di sanet
Sono anche disponibili i seguenti tag:
- ::
TAG
DESCRIPTION
{{ digest.tenant }}
Nome del tenant
{{ digest.firsttime }}
Orario del primo allarme processato dal digest
{{ digest.firstpath }}
Path della condition associata al primo allarme
{{ digest.total }}
Numero totale di allarmi aggretagi dal digest
Esempio di messaggio di digest completamente personalizzato:
GENERAL SECTION
----------------
Tenant = {{ digest.tenant }}
First alarm time = {{ digest.firsttime }}
First alarm path = {{ digest.firstpath }}
Total alarms seen = {{ digest.total }}
DOWN CONDITIONS
---------------
Down Count = {{ digest.downcount }}
{% for c in digest.downs %}
ts = {{ c.ts }}
element = {{ c.element }}
condition = {{ c.condition }}
title = {{ c.title }}
state = {{ c.state }}
changes = {{ c.num_changes }}
url = {{ c.url }}
{% endfor %}
OTHERS
---------------
{% for c in digest.others %}
ts = {{ c.ts }}
element = {{ c.element }}
condition = {{ c.condition }}
title = {{ c.title }}
state = {{ c.state }}
changes = {{ c.num_changes }}
url = {{ c.url }}
{% endfor %}
7.4.4.3. Sintassi deprecata¶
Danger
La seguente sintassi e' disponibile per retro-compatibilita' e verra' rimossa. Si consiglia di aggiornare i template utilizzati e utilizzare la sintassi descritta nel paragrafo precedente.
I tag:
TAG
Shortcut
Descrizione
${tags['digest:digesttextbrief']}
${digesttextbrief}
Stringa di testo contenente una versione compressa del digest con le informazioni base
${tags['digest:digesttextbrief']}
${digesttextfull}
Stringa di testo contenente il digest formattato in maniera molto verbosa.
7.4.4.4. Esempio di utilizzo¶
Ritarda tutti gli allarmi fino alle 18:00 di oggi (o del giorno dopo)
entables -t notify -A DEFAULT -j DIGEST --digest_holduntil_next 18:00
entables -t notify -A DEFAULT -j SMTP --smtp_rcpt_to '${mail_to}'
--smtp_subject '${mail_subject}'
--smtp_message '${mail_body} - ${digesttextbrief} ${digesttextfull}'
7.4.4.5. Digest personalizzabile¶
E' possibile creare digest completamente personalizzati sfruttando una speciale sintassi:
% for c in tags['digest:digestothers']:
... testo ripetuto per ogni condition down ...
% endfor
% for c in tags['digest:digestdowns']:
... testo ripetuto per ogni condition non down ...
% endfor
All'inteno del testo si possono usare i seguenti tag:
TAG
DESCRIPTION
${c['ts']}
Data della condition
${c['element']}
Nome elemento associato all'allarme
${c['condition']}
Path della condition dell'allarme
${c['title']}
Titolo della condition
${c['state']}
Stato della condition (DN, UP, ecc.)
${c['num_changes']}
Numero di variazioni aggregate nel digest
${c['url']}
URL alla pagina di sanet
Sono anche disponibili i seguenti tag:
- ::
TAG
DESCRIPTION
${digesttenant}
Nome del tenant
${digestfirsttime}
Orario del primo allarme processato dal digest
${digestfirstpath}
Path della condition associata al primo allarme
${digesttotal}
Numero totale di allarmi aggretagi dal digest
Esempio di messaggio di digest completamente personalizzato:
GENERAL SECTION
----------------
Tenant = ${digesttenant}
First alarm time = ${digestfirsttime}
First alarm path = ${digestfirstpath}
Total alarms seen = ${digesttotal}
DOWN CONDITIONS
---------------
Down Count = ${digestdowncount}
% for c in tags['digest:digestdowns']:
ts = ${c['ts']}
element = ${c['element']}
condition = ${c['condition']}
title = ${c['title']}
state = ${c['state']}
changes = ${c['num_changes']}
url = ${c['url']}
% endfor
OTHERS
---------------
% for c in tags['digest:digestothers']:
ts = ${c['ts']}
element = ${c['element']}
condition = ${c['condition']}
title = ${c['title']}
state = ${c['state']}
changes = ${c['num_changes']}
url = ${c['url']}
% endfor
7.4.5. Notes¶
I simboli definiti da questo tag sono i seguenti:
Tag
Descrizione
{{notes.totalcount}}
Numero totale di note associate al nodo (e tutti i suoi sotto elementi) relativo all'allarme
{{notes.totallist}}
Elenco iterabile di tutte le note associate al nodo (e sotto elementi). Vedi Produrre un dettaglio personalizzato delle note.
{{notes.totaltext}}
Elenco di tutte le note associate al nodo (e sotto elementi) in formato testuale.
Il formato del {{notes.totaltext}} ( o {{notes.totaltext}} prevedere righe multiple ( una per nota ) con la seguente sintassi:
- <data> - <utente - <testo nota>
Esempio:
Ci sono {{notes.totalcount}} note associate all'elemento di questo allarme.
7.4.5.1. Produrre un dettaglio personalizzato delle note¶
E' possibile usare il simbolo {{notes.totallist}} o {{notes.totallist}} all'interno dei template per formattare in maniera personalizzata le note.
Per iterare sulle note bisogna usare la seguente sintassi:
{% for note in notes.totallist %}
{{ note.<campo> }}
{% endfo %}
I campi delle note disponibili sono:
user_name: username dell'utente associato alla nota
isodate : Data della nota in formato ISO (YYYY-MM-GG HH:MM)
text : testo della nota
7.4.5.1.1. Esempio¶
Testo del messaggio:
Ci sono {{notes.totalcount}} note. Questo e' l'elenco delle note associato all'allarme:
{% for note in notes.totallist %}
* {{ note.isodate }} - {{ note.user_name }} - {{ note.text }}
{% endfor %}
Output visibile nel messaggio:
Questo e' l'elenco delle note associato all'allarme:
* 2015-04-10 11:33 - admin - Questa e' una nota
* 2015-04-10 11:58 - admin - nota su interfaccia
7.4.5.2. Sintassi deprecata¶
Danger
La seguente sintassi e' disponibile per retro-compatibilita' e verra' rimossa. Si consiglia di aggiornare i template utilizzati e utilizzare la sintassi descritta nel paragrafo precedente.
Questi sono i tag disponibili:
Tag
Shortcut
Descrizione
${tags['notes:totalcount']}
${notestotalcount}
Numero totale di note associate al nodo (e tutti i suoi sotto elementi) relativo all'allarme
${tags['notes:totallist']}
${notestotallist}
Elenco iterabile di tutte le note associate al nodo (e sotto elementi). Vedi Produrre un dettaglio personalizzato delle note.
${tags['notes:totaltext']}
${notestotaltext}
Elenco di tutte le note associate al nodo (e sotto elementi) in formato testuale.
Per iterare sulle note bisogna usare la seguente sintassi:
% for note in notestotallist:
${ note.<campo> }
% endfor
7.4.5.2.1. Esempio¶
Testo del messaggio:
Ci sono ${notestotalcount} note. Questo e' l'elenco delle note associato all'allarme:
% for note in notestotallist:
* ${ note.isodate } - ${ note.user_name } - ${ note.text }
% endfor