Custom
Configurazione lato Seer Box
Il formato Custom permette di creare un formato personalizzato che si adatti ai log di traffico inviati da una qualsiasi sorgente non presente fra quelle proposte da Seer Box.
Per impostarlo è sufficiente selezionare il valore Custom
nel campo Log type nello step 3 della creazione di una sorgente di traffico.
La creazione di un formato personalizzato è un'operazione avanzata che necessita di una conoscenza approfondita del formato di log identificato. Consigliamo di eseguire la configurazione solo dopo aver consultato la documentazione della sorgente.
Campo Log format
Il campo Log format consente di ricostruire, utilizzando apposite keyword, il formato di log di output della sorgente di traffico scelta, in modo tale da poter essere correttamente interpretato da Seer Box.
Le keyword disponibili ricalcano tutti i campi specifici di una transazione HTTP (richiesta e risposta) e sono caratterizzate dal simbolo %
utilizzato come primo carattere.
Keyword predefinite
Keyword | Descrizione |
---|---|
%transaction_id | ID della transazione HTTP |
%timestamp | Timestamp da definire nel campo Date/Time format |
%date | Timestamp con sola data, da definire nel campo Date/Time format |
%time | Timestamp con solo orario, da definire nel campo Date/Time format |
%timezone | Timezone, da definire nel campo Date/Time format |
%client_address | Indirizzo IP della sorgente della transazione |
%client_port | Numero di porta della sorgente della transazione |
%server_address | Indirizzo IP della destinazione della transazione |
%server_port | Numero di porta della destinazione della transazione |
%q_Host_ | Dominio dell'URL richiesto |
%path | Uri path dell'URL richiesto |
%url | URL della richiesta |
%method | Metodo della richiesta (eg. POST, GET, ...) |
%protocol | Versione HTTP della richiesta |
%query_string | Query string della richiesta |
%q_Referer_ | Header Referer della richiesta |
%status_code | Codice di risposta del server (eg. 404, 200, ...) |
%request_body | Corpo della richiesta |
%response_body | Corpo della risposta |
%request_bytes | Byte inviati nella richiesta |
%response_bytes | Byte ricevuti nella risposta |
%q_User-Agent_ | Header User-Agent della richiesta |
%q_Cookie_ | Header Cookie della richiesta |
%q_Content-Type_ | Header Content-Type della richiesta |
%r_Content-Type_ | Header Content-Type della risposta |
%q_X-Forwarded-For_ | Header X-Forwarded-For della richiesta |
Keyword personalizzate
Se un header della richiesta o risposta HTTP non fosse presente fra le keyword predefinite è possibile definirlo utilizzando la seguente sintassi:
- Nel caso si tratti di un header della richiesta:
%q_NOME-CAMPO_
(esempio:%q_Custom-Req-Field_
) - Nel caso si tratti di un header della risposta:
%r_NOME-CAMPO_
(esempio:%q_Custom-Resp-Field_
)
Tale keyword verrà processata utilizzando il nome definito nel formato.
Keyword speciali
Nel caso in cui il formato di log presentasse dei campi sconosciuti o che non debbano venire processati e analizzati è possibile ignorare la loro presenza con la speciale sintassi %ignore
.
Esempi
- Formato CLF
- Formato NCSA
- Formato non standard 1
- Formato non standard 2
Riga di log
66.249.75.237 - - [11/Sep/2022:06:42:21 +0200] "GET /robots.txt HTTP/1.1" 200 1969
Formato di log
%client_address %q_Remote-Logname_ %q_Remote-User_ [%timestamp] "%method %path %protocol" %status_code %response_bytes
Riga di log
66.249.75.237 - - [11/Sep/2022:06:42:21 +0200] "GET /robots.txt HTTP/1.1" 200 1969 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
Formato di log
%client_address %q_Remote-Logname_ %q_Remote-User_ [%timestamp] "%method %path %protocol" %status_code %response_bytes "%q_Referer_" "%q_User-Agent_"
In questo esempio non è possibile riconoscere tutti i campi del log, quindi faremo uso della keyword %ignore
per ignorarli.
Riga di log
66.249.75.237 | 11/Sep/2022:04:51:40 +0000 | GET /api/1.0/items?pageId=789 HTTP/1.1 | 200 | 144 | - | - | http://example.com/pages/viewpage.action?pageId=789 | Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36 | JSESSIONID=AE2920007DC0005E0008BE1934F5DBF; Hm_lvt_0ef9c12592473ef5637c9827ed88=1480921285,1480949630,1480985334,1481035256; Hm_lpvt_0e754a018e3ec6f9e74276d65114ef74=1481086302 | 66.249.75.237 | example.com | 10.1.2.3:80 | 0.006 | 0.006
Formato di log
%client_address | %timestamp | %method %path %protocol | %status_code | %response_bytes | %ignore | %ignore | %q_Referer_ | %q_User-Agent_ | %q_Cookie_ | %q_X-Forwarded-For_ | %q_Host_ | %ignore | %ignore | %ignore
In questo esempio non è possibile riconoscere tutti i campi del log, quindi faremo uso della keyword %ignore
per ignorarli.
Riga di log
13.66.139.0 - - [11/Sep/2022:13:57:26 +0100] "GET /index.php?option=com&view=category&Itemid=53 HTTP/1.1" 200 32653 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)" "-"
Formato di log
%client_address %ignore %ignore [%timestamp] "%method %path %protocol" %status_code %response_bytes "%ignore" "%q_User-Agent_" "%ignore"
Campo Date/Time format
Il campo Date/Time format caratterizza lo specifico formato delle keyword %timestamp
, %date
, %time
e %timezone
.
La prima può essere utilizzata nel caso in cui il timestamp sia interamente definito all'interno di un unico campo. Le restanti tre consentono invece di separare data, ora e timezone in campi diversi.
Vi sono 3 opzioni disponibili per il campo Date/Time format:
unix
- timestamp in formato UNIX.timestamp
- timestamp in formato ISO/IEC 9899:2018. Necessita la configurazione dei campi Timestamp e Time zone.datetime
- data e ora in formato ISO/IEC 9899:2018. Necessita la configurazione dei campi Date, Time e Time zone.
Campi Timestamp/Date/Time
I campi Timestamp, Date e Time permettono di configurare il formato dell'opzione specificata nel campo Date/Time format, come descritto di seguito:
Keyword | Descrizione | Esempio |
---|---|---|
%a | Nome della settimana, abbreviato | Sun |
%A | Nome della settimana | Sunday |
%b | Nome del mese, abbreviato | Mar |
%B | Nome del mese | March |
%c | Data e ora | Sun Aug 19 02:56:02 2012 |
%d | Giorno del mese (01-31) | 19 |
%H | Ora nel formato 24h (00-23) | 14 |
%I | Ora nel formato 12h (01-12) | 05 |
%j | Giorno dell'anno (001-366) | 231 |
%m | Mese in formato numerico (01-12) | 08 |
%M | Minuti (00-59) | 55 |
%p | AM o PM | PM |
%S | Secondi (00-61) | 02 |
%U | Numero della settimana, con la prima domenica come primo giorno della prima settimana (00-53) | 33 |
%w | Giorno della settimana in formato numero, con la Domenica come 0 (0-6) | 4 |
%W | Numero della settimana, con il primo lunedì come primo giorno della prima settimana (00-53) | 34 |
%x | Data | 08/19/12 |
%X | Ora | 02:50:06 |
%y | Anno, ultime due cifre (00-99) | 01 |
%Y | Anno | 2012 |
%Z | Timezone in formato testuale | CDT |
%z | Timezone in formato numerico | +0100 |
Esempi
Timestamp
11/Sep/2022:06:42:21 +0200
Format
%d/%b/%Y:%H:%M:%S %z
Campo Time zone
Il campo Time zone consente di configurare la timezone, in formato numerico come +0000
-0000
.