# Integrazione con Strumenti di Analisi

> Come importare il CSV convertito in Excel, Power BI, SQL Server, un SIEM o un notebook Python — inclusi i settaggi di delimitatore e data che fanno funzionare tutto al primo tentativo.

---

LLMS index: [llms.txt](/llms.txt)

---

Il senso di convertire un log di debug DNS è ciò che succede dopo. CSV è stato scelto perché tutti lo leggono — ma "tutti leggono CSV" nasconde due impostazioni che decidono se l'importazione è indolore o un pomeriggio di tentativi.

## Due impostazioni che decidono tutto

**Delimitatore.** Il valore predefinito è `;`. Lascialo così per Excel nelle località che usano la virgola come separatore decimale. Passa a `,` per la maggior parte dei database e degli strumenti di data science. Qualunque cosa tu scelga, comunica la stessa cosa al lato importazione.

**Formato data.** `-OutputCulture` controlla come vengono scritti i timestamp. Per tutto ciò che viene letto da una macchina, usa `sv-SE` (o cultura invariata) così che `DateTime` venga scritto come `2026-01-20 23:00:16`:

```powershell
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -OutputCulture 'sv-SE'
```

Ogni consumatore qui sotto capisce quel formato senza bisogno di indicazioni. L'output specifico della località come `20.01.2026` verrà importato come testo o, peggio, interpretato male come mese/giorno.

## Microsoft Excel

Il modo più veloce per dare un’occhiata a un singolo log convertito.

- Con il delimitatore predefinito `;` e una località che lo aspetta, un doppio clic apre il file con le colonne corrette.
- Se tutto finisce nella colonna A, il delimitatore non corrisponde all’impostazione di Excel. Rilancia con `-Delimiter ","` oppure importa tramite **Dati → Da testo/CSV** e scegli il delimitatore lì.
- Trasforma l’intervallo in tabella (`Ctrl+T`) e crea una tabella pivot su `ClientIP`, `QuestionName` o `QuestionType`. Top client e top domini in circa un minuto.
- Per più di qualche centinaio di migliaia di righe, usa Power Query o una delle altre opzioni sotto.

I file `*_Statistic.csv` e `*_PacketStatistic.csv` sono di solito i migliori per Excel — sono pre-aggregati e rimangono piccoli. Vedi [Formati di Output](../02-output-formats/).

## Power BI

Importa i file CSV e costruisci dashboard per attività DNS, top client, trend delle query e tassi di errore.

- Punta Power Query alla *cartella* che contiene i file convertiti invece che a un singolo file. La struttura è identica tra server e giorni, quindi i file si aggiungono semplicemente.
- La colonna `ComputerName` rende possibile un report multi-server — imposta `-ComputerName` durante la conversione o non potrai filtrare per server.
- `ResponseCode` e `QuestionType` sono slicer naturali; `DateTime` diventa l’asse temporale.
- Alimentare Power BI con `*_PacketStatistic.csv` invece del file completo mantiene il modello piccolo quando ti servono solo i trend giornalieri.

## Database SQL

Carica in blocco il CSV in SQL Server, PostgreSQL o qualsiasi altro database SQL, per conservazione a lungo termine e query ripetibili.

Una guida pronta all’uso — definizione tabella, conversione, import con `SqlBulkCopy` e una query di rilevamento per attività sospette `TXT` — è documentata in [Security Analysis Workflow with SQL Server](../examples/security-analysis-sql/).

Punti da pianificare prima del primo caricamento:

- Usa `-OutputCulture 'sv-SE'` così i timestamp finiscono in una colonna `datetime2` senza trucchi di conversione.
- `Information` e `Details` possono essere lunghi; assegna loro `nvarchar(max)`.
- Indicizza ciò che interroghi davvero — tipicamente `DateTime`, `ClientIP` e `QuestionName`.
- Mantieni `-ComputerName` valorizzato così le righe restano attribuibili dopo la fusione.

## Sistemi SIEM

Splunk, Elastic, Sentinel e piattaforme simili importano il CSV per correlare con altra telemetria di sicurezza e per gli alert.

- Invia l’output compresso (`-CompressOutput`) — è circa un decimo della dimensione e la maggior parte dei collector lo decomprime da sola.
- Definisci la mappatura dei campi una volta sola; la struttura delle colonne non cambia mai tra esecuzioni o server, inclusa la colonna `ComputerName` sempre presente alla fine.
- Fai deduplicare il collector, oppure archivia i file `.log` processati. Un job di conversione che rielabora gli stessi log ruotati rimanderà altrimenti righe identiche.
- `-ContextFilter Packet` mantiene basso il volume di ingestione (e il costo della licenza) quando le note del server non fanno parte dei tuoi casi d’uso.

## Python, R e strumenti di data science

L’output strutturato è pronto per rilevamento anomalie, baseline e analisi personalizzate.

```python
import pandas as pd

df = pd.read_csv(
    r"C:\Administration\Logs\DNSServer\dns.csv",
    sep=";",
    parse_dates=["DateTime"],
)

# top 20 nomi interrogati, solo query
top = (
    df[df["Direction"] == "Rcv"]
    .groupby("QuestionName")
    .size()
    .sort_values(ascending=False)
    .head(20)
)
print(top)
```

`parse_dates` funziona subito se hai esportato con `-OutputCulture 'sv-SE'`. Da qui, pandas, scikit-learn o R gestiscono clustering, stagionalità e rilevamento outlier come al solito.

## Restare in PowerShell

Non devi uscire da PowerShell per una risposta veloce:

```powershell
$dns = Import-Csv "C:\Administration\Logs\DNSServer\dns.csv" -Delimiter ';'

# client più rumorosi
$dns | Where-Object Direction -eq 'Rcv' |
    Group-Object ClientIP |
    Sort-Object Count -Descending |
    Select-Object -First 10 Count, Name

# lookup falliti
$dns | Where-Object ResponseCode -eq 'NXDOMAIN' |
    Group-Object QuestionName |
    Sort-Object Count -Descending |
    Select-Object -First 10 Count, Name
```

`Import-Csv` legge tutto il file in memoria, quindi va bene per un blocco ruotato ma non per un export di più gigabyte — per quello ci sono i database e i percorsi SIEM.
