# Integration mit Analysetools

> Die konvertierte CSV in Excel, Power BI, SQL Server, ein SIEM oder ein Python-Notebook bekommen – inklusive der Trennzeichen- und Datumsformateinstellungen, die es beim ersten Versuch funktionieren lassen.

---

LLMS index: [llms.txt](/llms.txt)

---

Der Sinn der Konvertierung eines DNS-Debug-Logs liegt im, was danach passiert. CSV wurde gewählt, weil es von allem gelesen wird – aber „alles liest CSV“ verbirgt zwei Einstellungen, die entscheiden, ob der Import schmerzfrei oder ein Nachmittag voller Fummelei wird.

## Zwei Einstellungen, die alles entscheiden

**Trennzeichen.** Standard ist `;`. Behalte es für Excel in Regionen, die das Komma als Dezimaltrennzeichen verwenden. Wechsle zu `,` für die meisten Datenbanken und Data-Science-Tools. Was auch immer du wählst, sag der importierenden Seite dasselbe.

**Datumsformat.** `-OutputCulture` steuert, wie Zeitstempel geschrieben werden. Für alles, was von einer Maschine gelesen wird, nutze `sv-SE` (oder die Invariant Culture), damit `DateTime` als `2026-01-20 23:00:16` ausgegeben wird:

```powershell
Convert-DNSDebugLogFile -InputFile "C:\Logs\dns.log" -OutputCulture 'sv-SE'
```

Jeder unten genannte Verbraucher versteht dieses Format ohne Hinweis. Länderspezifische Ausgaben wie `20.01.2026` werden als Text importiert oder – noch schlimmer – als Monat/Tag falsch interpretiert.

## Microsoft Excel

Der schnellste Weg, sich eine einzelne konvertierte Logdatei anzusehen.

- Mit dem Standard-Trennzeichen `;` und einer passenden Regionseinstellung öffnet ein Doppelklick die Datei mit korrekten Spalten.
- Wenn alles in Spalte A landet, passt das Trennzeichen nicht zu deiner Excel-Einstellung. Entweder erneut mit `-Delimiter ","` ausführen oder über **Daten → Aus Text/CSV** importieren und dort das Trennzeichen auswählen.
- Mach aus dem Bereich eine Tabelle (`Strg+T`) und erstelle eine Pivot-Tabelle mit `ClientIP`, `QuestionName` oder `QuestionType`. Top-Talker und Top-Domains sind in etwa einer Minute fertig.
- Bei mehr als ein paar hunderttausend Zeilen nutze stattdessen Power Query oder eine der anderen unten genannten Optionen.

Die Dateien `*_Statistic.csv` und `*_PacketStatistic.csv` sind meist die besseren Excel-Ziele – sie sind voraggregiert und bleiben klein. Siehe [Ausgabeformate](../02-output-formats/).

## Power BI

Importiere die CSV-Dateien und erstelle Dashboards für DNS-Aktivität, Top-Clients, Abfrage-Trends und Fehlerraten.

- Richte Power Query auf den *Ordner* mit deinen konvertierten Dateien ein, nicht auf eine einzelne Datei. Das Layout ist über Server und Tage hinweg identisch, Dateien werden einfach angehängt.
- Die Spalte `ComputerName` ermöglicht Multi-Server-Berichte – setze `-ComputerName` während der Konvertierung, sonst kannst du nicht nach Server filtern.
- `ResponseCode` und `QuestionType` sind natürliche Filter; `DateTime` wird zur Zeitachse.
- Wenn du nur tägliche Trends brauchst, füttere Power BI mit `*_PacketStatistic.csv` statt der kompletten Datei, um das Modell klein zu halten.

## SQL-Datenbanken

Lade die CSV per Bulk-Load in SQL Server, PostgreSQL oder andere SQL-Datenbanken für langfristige Speicherung und wiederholbare Abfragen.

Eine einsatzbereite Schritt-für-Schritt-Anleitung – Tabellen-Definition, Konvertierung, `SqlBulkCopy`-Import und eine Erkennungsabfrage für verdächtige `TXT`-Aktivität – findest du unter [Security Analysis Workflow with SQL Server](../examples/security-analysis-sql/).

Punkte, die du vor dem ersten Laden planen solltest:

- Nutze `-OutputCulture 'sv-SE'`, damit Zeitstempel ohne Umwandlungstricks in eine `datetime2`-Spalte landen.
- `Information` und `Details` können lang sein; gib ihnen `nvarchar(max)`.
- Indexiere, was du tatsächlich abfragst – typischerweise `DateTime`, `ClientIP` und `QuestionName`.
- Halte `-ComputerName` gefüllt, damit Zeilen nach dem Zusammenführen noch zugeordnet werden können.

## SIEM-Systeme

Splunk, Elastic, Sentinel und ähnliche Plattformen nehmen die CSV auf, um sie mit anderer Sicherheitstelemetrie zu korrelieren und Alarme zu generieren.

- Versende die komprimierte Ausgabe (`-CompressOutput`) – sie ist etwa ein Zehntel der Größe und die meisten Collector entpacken sie selbst.
- Definiere die Feldzuordnung einmal; das Spaltenlayout ändert sich nie zwischen Läufen oder Servern, inklusive der immer vorhandenen abschließenden Spalte `ComputerName`.
- Lass deinen Collector Duplikate entfernen oder archiviere verarbeitete `.log`-Dateien. Ein Konvertierungsjob, der dieselben rotierten Logs erneut verarbeitet, sendet sonst identische Zeilen erneut.
- `-ContextFilter Packet` hält das Ingest-Volumen (und die Lizenzkosten) niedrig, wenn Server-Notizen nicht zu deinen Anwendungsfällen gehören.

## Python, R und Data-Science-Tools

Die strukturierte Ausgabe ist bereit für Anomalieerkennung, Baseline-Analysen und individuelle Auswertungen.

```python
import pandas as pd

df = pd.read_csv(
    r"C:\Administration\Logs\DNSServer\dns.csv",
    sep=";",
    parse_dates=["DateTime"],
)

# Top 20 abgefragte Namen, nur Anfragen
top = (
    df[df["Direction"] == "Rcv"]
    .groupby("QuestionName")
    .size()
    .sort_values(ascending=False)
    .head(20)
)
print(top)
```

`parse_dates` funktioniert direkt, wenn du mit `-OutputCulture 'sv-SE'` exportiert hast. Ab hier übernehmen pandas, scikit-learn oder R das Clustering, die Saisonalität und Ausreißererkennung wie gewohnt.

## In PowerShell bleiben

Du musst PowerShell nicht verlassen, um schnell eine Antwort zu bekommen:

```powershell
$dns = Import-Csv "C:\Administration\Logs\DNSServer\dns.csv" -Delimiter ';'

# lauteste Clients
$dns | Where-Object Direction -eq 'Rcv' |
    Group-Object ClientIP |
    Sort-Object Count -Descending |
    Select-Object -First 10 Count, Name

# fehlgeschlagene Abfragen
$dns | Where-Object ResponseCode -eq 'NXDOMAIN' |
    Group-Object QuestionName |
    Sort-Object Count -Descending |
    Select-Object -First 10 Count, Name
```

`Import-Csv` liest die ganze Datei in den Speicher, das ist also okay für ein rotiertes Chunk, aber ungeeignet für einen mehrgigabytegroßen Export – dafür sind die Datenbank- und SIEM-Wege gedacht.
