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.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