4. Tag disponibili¶
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:
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
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
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.node.name}} {{node.name}} Nome del nodo {{builtin.node.description}} {{node.description}} {{nodedescr}} | Descrizione del nodo {{builtin.iface.name}} {{iface.name}} Nome interfaccia {{builtin.storage.name}} {{storage.name}} Nome storage {{builtin.service.name}} {{service.name}} Nome servizio {{builtin.device.name}} {{device.name}} Nome device {{builtin.node.sysdescr}} {{node.sysdescr}} SMNP SysDescr nodo {{builtin.linked_node.name}} {{linked_node.name}} Nome nodo collegato {{builtin.linked_iface.name}} {{linked_iface.name}} Nome interfaccia collegata
4.1.4. 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.ip4s}} {{ip4s}} Indirizzi IPv4 del nodo separati da ‘,’ {{builtin.now}} {{now}} Timestamp orario elaborazione dell’allarme {{builtin.now_iso}} {{now_iso}} Orario elaborazione allarme in formato ISO {{builtin.element.url}} {{url}} URL della risorsa monitorata
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}}"
4.1.5. 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}"
4.2. Alarmpath¶
Questo modulo permette di accedere alla struttura interna di un allarme e di estrapolare un qualunque campo.
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”.
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.
${tags['alarmpath:condition:name']}
${tags['alarmpath:condition:priority']}
${tags['alarmpath:event:uuid']}
...
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}}.
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']
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. |
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 }}'
4.4.1.1. Esempio digesttextbrief¶
TENANT:site
DOWN:1
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 ==============================
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 %}
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.
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}'
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
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.
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
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
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
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