7.4. Tag disponibili

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