In FortiAnalyzer un report non è un documento ma una definizione: regole che, al momento della generazione, vanno a pescare nei log. Capire da dove pescano e con quali vincoli è la differenza fra un report che risponde alla domanda del cliente e dodici pagine vuote.

Report, dataset e log: cosa finisce davvero nel file

Una definizione di report ha due metà. La scheda Settings decide periodo, device, filtri e opzioni di consegna; la scheda Layout (l’editor) contiene testo, immagini, tabelle, chart e macro. La parte che tocca i log sono chart e macro: ognuno è associato a un dataset, cioè alla query SQL che estrae i dati quando lanci il report, e ogni chart richiede un tipo di log specifico. Un template non contiene dati: popola solo il Layout, i dati arrivano alla generazione.

Il vincolo che spiega metà dei report vuoti sta qui: i report usano i log Analytics, quelli indicizzati nel database SQL, e i log Archive non alimentano i report. Il database, in 7.6, è ClickHouse.

Due dettagli prima di cliccare Create New. Con gli ADOM abilitati devi essere nell’ADOM giusto: definizioni, chart e output profile sono per-ADOM, e un oggetto creato nell’ADOM sbagliato non compare nelle tendine dell’altro. E il nome del report non accetta questi caratteri:

\ / " ' < > & , | # ? % $ +

Periodo e fuso: la trappola del giorno corrente

Time Period offre le finestre relative (Previous 7 Days, Previous 14 Days, Previous 30 Days, This Week, Previous Week, Previous N Hours, This Month, This Quarter, Today, Yesterday e altre) oppure Custom con data e ora di inizio e fine. Il punto che sorprende: i filtri Previous arrivano al massimo ai dati del giorno precedente e non includono il giorno corrente. Non è un difetto, è voluto — serve a non perdere dati durante la generazione e a dare ai report schedulati un periodo sempre coerente. Conseguenza pratica: se qualcuno ti chiede “cosa è successo stamattina”, un Previous 7 Days non gliela darà. Per l’incidente in corso si guarda FortiView o Log View, il report serve per il periodo chiuso.

Time Zone di default è il fuso del FortiAnalyzer. Con FortiGate su fusi diversi i conteggi giornalieri cambiano a seconda del fuso scelto: sui report destinati a un cliente fissalo esplicitamente invece di lasciare Default, così restano confrontabili mese su mese.

Device, subnet e il bivio Single contro Multiple

In Devices scegli All Devices oppure Specify e aggiungi i dispositivi; in Subnets puoi includere o escludere sottoreti come filtro del report. Il campo Type compare solo se hai selezionato più device, e ti fa scegliere fra Single Report (Group Report), cioè un unico documento aggregato, e Multiple Reports (Per-Device), cioè un report separato per ciascun dispositivo.

La scelta dipende da chi legge: per una direzione IT che vuole la fotografia dell’azienda conviene il report singolo, per un MSP o per sedi con responsabili diversi conviene il per-device. Sappi però che il per-device moltiplica file, esecuzioni e lavoro di cache: è lo scenario in cui poi dovrai raggruppare i report per non far esplodere i tempi di generazione.

Filtri: dove si scrivono e chi vince

Nella sezione Filters della scheda Settings scegli se i log devono soddisfare tutte le condizioni oppure una qualsiasi, poi aggiungi le righe indicando Log Field, criterio di confronto e valore. Tre cose fanno perdere tempo a chiunque:

  • non puoi creare due filtri sullo stesso Log Field. Per più valori usa la virgola senza spazio, per esempio port1,port2; se il valore contiene già una virgola racchiudi ogni voce fra virgolette doppie;
  • il campo del valore, quando lo digiti a mano perché FortiAnalyzer non propone una lista, è case sensitive;
  • se un filtro sta sul report e un altro sullo stesso chart (tasto destro sul chart, Chart Properties), vince quello del chart. È la spiegazione usuale del report “filtrato” che mostra ancora tutto.

Settings e Layout condividono la stessa lista di Log Field, ma alcuni campi non sono usati nei chart: un filtro sensato a livello di report può non avere alcun effetto sul grafico che stai guardando.

La LDAP Query esiste solo nella scheda Settings: interroga un server LDAP per l’appartenenza a un gruppo e limita il report ai log degli utenti membri. Il comportamento da ricordare è che devi indicare il nome del gruppo nella definizione del filtro e che, con la query LDAP attiva, quel nome non viene confrontato con il campo group dei log — serve unicamente alla query.

Quando il report esce senza nomi utente

Per i report sugli utenti è il FortiGate a dover popolare il campo user nei log che invia. Se l’autenticazione non è attiva sulle policy, dal FortiAnalyzer usciranno solo indirizzi IP: prima di dare la colpa al report, apri un log grezzo e verifica se il campo c’è. Nelle Advanced Settings ci sono poi due opzioni che spiegano output apparentemente strani: Obfuscate User nasconde le informazioni utente nel report (sceglila in fase di definizione se il documento va a un committente con vincoli privacy) e Resolve Hostname risolve gli hostname. Infine, prima di lanciare, la colonna Config Recommendation nell’elenco dei report ti dice se i log Analytics richiesti da quel report sono davvero disponibili.