7.6. Appendici

7.6.1. Formato file dump

Il file di dump generato dal comando "--dump" contiene una sequenza di comandi in formato testuale per ripristinare completamente la configurazione corrente.

Il file e' diviso in "sezioni" delimitate del comando "tenant" e ogni sezione contiene comandi "template" o "rule".

Esempio:

tenant site

    template template1
Testo del template
su piu' righe
.
    rule -t mangle -N default
    rule -t mangle -P default -j CONTINUE

    rule -t correlate -N default
    rule -t correlate -P default -j CONTINUE

    rule -t notify -N default
    rule -t notify -P default -j CONTINUE

    rule -t notify -A DEFAULT -j SMTP --smtp_rcpt_to '{{mail.to}}' --smtp_message '{{mail.body}}' --smtp_xheaders '{{mail.xheaders}}' --smtp_subject '{{mail.subject}}'

exit
tenant site
    ...
    ...
    ...
exit

7.6.1.1. Righe template

I template vengono definiti dalle righe template.

Il testo del template viene riportato su piu' righe in formato dotted (Un carattere "." indica il termine del testo.

Se una riga del template contiene solo un carattere punto ".", viene espansa con due punti "..").

Esempio:

template alert-body
Questo e' il testo del template
con una riga con un punto:
..
e adesso e' finito
.

7.6.1.2. Righe rule

La sequenza e formato dei parametri delle righe rule e' identico a quello accettato a riga di comando quando si usa il comando di shell entables specificando i valori tra apici singoli (').

Esempio: il comando di aggiunta di una regola e' identico in fase di inseriemento (-A), consultazione (-L) o dump (--dump).

entables -t notify -A DEFAULT -j SMTP --smtp_message 'Questo e'"'"' un comando di shell con quoting strano'
entables -L
DEFAULT : policy CONTINUE
    1) -t notify -A DEFAULT -j SMTP --smtp_message 'Questo e'"'"' un comando di shell con quoting strano'
entables --dump
tenant AUSLROMAGNA
    ...
    ...
    rule -t notify -A DEFAULT -j SMTP --smtp_message 'Questo e'"'"' un comando di shell con quoting strano'
    ...
exit

Entables racchiude i valori dei parametri tra apici singoli (') ed eventuali caratteri speciali vengono escapati (\)

Esempio: Passo un testo multiriga come valore o usando una variabile di shell (TEXT) oppure posso passarlo in input con i caratteri di escape

TEXT=$'linea1\nlinea2'
entables -t notify -A DEFAULT -j SMTP --smtp_message "$TEXT"
entables -nL
    1) -t notify -A DEFAULT -j SMTP --smtp_message 'linea1\nlinea2'
entables -t notify -A DEFAULT -j SMTP --smtp_message 'linea1\nlinea2'      # equivalente al primo comando

7.6.2. Esempi di configurazione

7.6.2.1. Configurazione di default (sanet2-like)

Per retro-compatibilita' Sanet3 permette di associare alle condition i dati per comporre le mail da mandare:

datagroup-template debug
    condition check
        email down.email@localhost
        msg-downsubj "Soggetto down"
        msg-downbody "Body Down"

        upemail up.email@localhost
        msg-upsubj "Soggetto UP"
        msg-upbody "Body UP"
    exit
exit

Ecco come configurare il target SMTP di entables per mandare email usando i dati configurati nelle condition:

entables -F DEFAULT
entables -A DEFAULT -j SMTP --smtp_rcpt_to '${mail_to}' --smtp_subject '${mail_subject}' --smtp_message '${mail_body}'

IMPORTANTE: questa e' la configurazione impostata di default quando viene eseguita la procedura "sanetdata" e il sistema non prevede alcuna configurazione.

7.6.2.2. Note sul mittente di default

Di default, il tanrget SMTP invia e email con mittente e ed envelope sender (il "Return-Path:") a 'monitoring-daemon@localhost':

A volte e' comodo cambiare la regola di default per specificare un mittente di default diverso:

entables -F DEFAULT
entables -A DEFAULT -j SMTP --smtp_rcpt_to '${mail_to}' --smtp_subject '${mail_subject}' --smtp_message '${mail_body}'  --smtp_header_from 'mittente@miodominio' --smtp_envelope_from 'returnpath@miodominio'

7.6.2.3. Bloccare gli allarmi nel weekend

Per non ricevere gli allarmi in certe fasce orarie bisogna filtare sull'orario:

entables -A default -m times --times_range  00:00-23:59/6-7 -j DROP

7.6.2.4. Ritardare gli allarmi del weekend fino al lunedi' mattina

Bisogna usare il target "DELAY" e dire di trattenere gli allarmi fino al lunedi' successivo rispetto all'orario dell'allarme:

entables -F DEFAULT
entables -A DEFAULT -m times --times_range  00:00-23:59/6-7 -j DELAY --delay_until "monday 8:30"
entables -A DEFAULT -j SMTP --smtp_rcpt_to '${mail_to}' --smtp_subject '${mail_subject}' --smtp_message '${mail_body}'

Forse e' meglio utilizzare le catene:

entables -F WEEKEND
entables -N WEEKEND -j DROP
entables -A WEEKEND -m times --times_range  00:00-23:59/6-7 -j DELAY --delay_until "monday 8:30"
entables -A WEEKEND -j SMTP --smtp_rcpt_to weekend@labs.it --smtp_subject '${mail_subject}' --smtp_message '${mail_body}'

entables -F DEFAULT
entables -A DEFAULT -m times --times_range  00:00-23:59/6-7 -j WEEKEND
entables -A DEFAULT -j SMTP --smtp_rcpt_to '${mail_to}' --smtp_subject '${mail_subject}' --smtp_message '${mail_body}'

Schema:

allarme  -----> DEFAULT ----> mail
                  |
                  +----> WEEDEND ----> weekend@labs.it
                          ^  |
                          |  |
                          +--+